Hi I encounter a weird behavior on AST matchers and I'd like to ear what U think of it. Let get a test file
void f() { int a, b, c, d; a = 1; b = 2; c = 3; d = 4; } Then query the decl matcher: functionDecl(hasName("f"),hasBody(hasDescendant(binaryOperator(hasOperatorName("=")).bind("binop")))) I got only the first assignmen t (was expecting to get all of them). I tried to add the findAll matcher but got an error. functionDecl(hasName("f"),hasBody(hasDescendant(findAll(binaryOperator(hasOperatorName("=")).bind("binop"))))) Here is the clang-query output: clang-query> match functionDecl(hasName("f"),hasBody(hasDescendant(binaryOperator(hasOperatorName("=")).bind("binop")))) Match #1: /tmp/test.c:5:3: note: "binop" binds here a = 1; ^~~~~ /tmp/test.c:1:1: note: "root" binds here void f() ^~~~~~~~ 1 match. clang-query> match functionDecl(hasName("f"),hasBody(hasDescendant(findAll(binaryOperator(hasOperatorName("=")).bind("binop"))))) 1:2: Error parsing argument 2 for matcher functionDecl. 1:28: Error parsing argument 1 for matcher hasBody. 1:36: Error parsing argument 1 for matcher hasDescendant. 1:50: Matcher not found: findAll clang-query> Thanks for any help Rémi
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users