https://llvm.org/bugs/show_bug.cgi?id=26613
Bug ID: 26613 Summary: recordDecl(unless(isDefinition())) is not the inverse of recordDecl(isDefinition()) Product: clang Version: unspecified Hardware: PC OS: Linux Status: NEW Severity: release blocker Priority: P Component: -New Bugs Assignee: unassignedclangb...@nondot.org Reporter: legal...@xmission.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified The expectation is that recordDecl(unless(isDefinition())) should only match declarations of struct/class/union that does not contain a body. However, this doesn't work. Example: clanger> cat ../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp // RUN: %check_clang_tidy %s readability-redundant-fwd-decl %t class Foo; class Foo; // CHECK-MESSAGES: :[[@LINE-1]]:1: warning: redundant forward declaration [readability-redundant-fwd-decl] class Bar { public: int i; }; class Bar; ~/dev/build clanger> bin/clang-query ../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp -- -std=c++11 clang-query> match recordDecl(isDefinition()) Match #1: /home/richard/dev/build/../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp:7:1: note: "root" binds here class Bar { ^~~~~~~~~~~ 1 match. clang-query> match recordDecl(unless(isDefinition())) Match #1: /home/richard/dev/build/../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp:3:1: note: "root" binds here class Foo; ^~~~~~~~~ Match #2: /home/richard/dev/build/../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp:4:1: note: "root" binds here class Foo; ^~~~~~~~~ Match #3: /home/richard/dev/build/../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp:7:1: note: "root" binds here class Bar { ^~~~~~~~~ Match #4: /home/richard/dev/build/../llvm/tools/clang/tools/extra/test/clang-tidy/readability-redundant-fwd-decl.cpp:12:1: note: "root" binds here class Bar; ^~~~~~~~~ 4 matches. clang-query> -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs