مؤشرات دالة المطابقة في Clang-Query

0

ما هو الاستعلام لمطابقة مؤشر دالة ، على سبيل المثال ، في التعليمات البرمجية التالية:

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

y هو مؤشر الدالة التي يجب مطابقتها.

1 إجابة

1
افضل جواب

أخيرًا ، هذه هي الإجابة على استدعاء مؤشر دالة. كانت الصعوبة الرئيسية هي الكشف عن نوع مؤشرات الوظائف باستخدام الاستعلام. لذا أضفت ignoringParens(functionType()) مطابقة الاجتياز لحل المشكلة. استخدام بسيط functionType() لن يعمل.

match callExpr(hasDescendant(memberExpr(hasType(pointerType(pointee(ignoringParens(functionType()))))).bind("member")))
:مؤلف
فوق
قائمة طعام