0

匹配函数指针的查询是什么,例如,在以下代码中:

int foo(struct A *a, int b)
{
    return a->x->y(b);
}

y是要匹配的函数指针。

4

1 回答 1

1

最后,这是调用函数指针的答案。主要困难是使用查询来检测函数指针的类型。所以我添加了ignoringParens(functionType())遍历匹配器来解决这个问题。一个简单的用法是functionType()行不通的。

match callExpr(hasDescendant(memberExpr(hasType(pointerType(pointee(ignoringParens(functionType()))))).bind("member")))
于 2018-06-20T22:37:10.377 回答