reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Declarations

tools/clang/include/clang/ASTMatchers/ASTMatchers.h
  380 extern const internal::VariadicDynCastAllOfMatcher<Decl, RecordDecl> recordDecl;

References

tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp
  468   REGISTER_MATCHER(recordDecl);
tools/clang/lib/StaticAnalyzer/Checkers/PointerIterationChecker.cpp
   69                                recordDecl(hasName("std::unordered_set")
tools/clang/tools/extra/clang-include-fixer/find-all-symbols/FindAllSymbols.cpp
  159   auto CRecords = recordDecl(CommonFilter, ExternCMatcher, isDefinition());
tools/clang/tools/extra/clang-reorder-fields/ReorderFieldsAction.cpp
   39       match(recordDecl(hasName(RecordName), isDefinition()).bind("recordDecl"),
tools/clang/tools/extra/clang-tidy/abseil/FasterStrsplitDelimiterCheck.cpp
   70       cxxConstructExpr(hasType(recordDecl(hasName("::absl::string_view"))),
   78                    hasType(recordDecl(hasName("::absl::ByAnyChar"))),
tools/clang/tools/extra/clang-tidy/android/CloexecAccept4Check.cpp
   22       hasType(pointsTo(recordDecl(isStruct(), hasName("sockaddr"))));
tools/clang/tools/extra/clang-tidy/android/CloexecAcceptCheck.cpp
   21       hasType(pointsTo(recordDecl(isStruct(), hasName("sockaddr"))));
tools/clang/tools/extra/clang-tidy/bugprone/DanglingHandleCheck.cpp
   78                   recordType(hasDeclaration(recordDecl(isASequence())))))))),
   82                                 recordType(hasDeclaration(recordDecl(
  157                                        recordType(hasDeclaration(recordDecl(
tools/clang/tools/extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp
  556       hasType(hasUnqualifiedDesugaredType(recordType(hasDeclaration(recordDecl(
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/InterfacesGlobalInitCheck.cpp
   24                                    recordDecl())),        // Class scope.
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeMemberInitCheck.cpp
  292               hasType(recordDecl(has(fieldDecl()),
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/ProTypeUnionAccessCheck.cpp
   24       memberExpr(hasObjectExpression(hasType(recordDecl(isUnion()))))
tools/clang/tools/extra/clang-tidy/llvm/TwineLocalCheck.cpp
   22       qualType(hasDeclaration(recordDecl(hasName("::llvm::Twine"))));
tools/clang/tools/extra/clang-tidy/misc/UnconventionalAssignOperatorCheck.cpp
   35                     hasName("operator="), ofClass(recordDecl().bind("class")))
tools/clang/tools/extra/clang-tidy/modernize/AvoidCArraysCheck.cpp
   55                                hasParent(recordDecl(isExternCContext())))),
tools/clang/tools/extra/clang-tidy/modernize/ReplaceAutoPtrCheck.cpp
   91   auto AutoPtrDecl = recordDecl(hasName("auto_ptr"), isFromStdNamespace());
tools/clang/tools/extra/clang-tidy/modernize/UseAutoCheck.cpp
  215       hasDeclContext(recordDecl(hasStdContainerName(), isFromStdNamespace())));
tools/clang/tools/extra/clang-tidy/modernize/UseDefaultMemberInitCheck.cpp
  215                                         hasParent(recordDecl(isUnion()))))),
tools/clang/tools/extra/clang-tidy/performance/FasterStringFindCheck.cpp
   78                   recordDecl(hasAnyName(SmallVector<StringRef, 4>(
tools/clang/tools/extra/clang-tidy/readability/RedundantMemberInitCheck.cpp
   42                                  unless(forField(hasParent(recordDecl(isUnion())))))
tools/clang/tools/extra/clang-tidy/readability/RedundantSmartptrGetCheck.cpp
   34   return recordDecl(hasAnyName("::std::unique_ptr", "::std::shared_ptr"));
   39   const auto QuacksLikeASmartptr = recordDecl(
   40       recordDecl().bind("duck_typing"),
   62       recordDecl(Smartptr, has(cxxConversionDecl(returns(booleanType()))))));
tools/clang/unittests/AST/ASTContextParentMapTest.cpp
   30                      cxxMethodDecl(hasParent(recordDecl(hasName("C"))))));
tools/clang/unittests/AST/ASTImporterTest.cpp
 1124              recordDecl(has(classTemplateDecl()),
 1868       FirstDeclMatcher<RecordDecl>().match(FromTU0, recordDecl(hasName("X")));
 1870       FirstDeclMatcher<RecordDecl>().match(FromTU1, recordDecl(hasName("X")));
 1878             DeclCounter<RecordDecl>().match(ToTU, recordDecl(hasName("X"))));
 1901       FirstDeclMatcher<RecordDecl>().match(FromTU0, recordDecl(hasName("X")));
 1903       FirstDeclMatcher<RecordDecl>().match(FromTU1, recordDecl(hasName("X")));
 1911             DeclCounter<RecordDecl>().match(ToTU, recordDecl(hasName("X"))));
 2932              recordDecl(hasFieldOrder({"b", "a"})));
 3241       FirstDeclMatcher<RecordDecl>().match(FromTU, recordDecl(hasName("A")));
 3254       R0, recordDecl(has(fieldDecl(hasName("next"))))));
 3256       R1, recordDecl(has(fieldDecl(hasName("next"))))));
 3667   auto Pattern = recordDecl(hasName("X"), unless(isImplicit()));
 3685   auto Pattern = recordDecl(hasName("X"), unless(isImplicit()));
 3703   auto Pattern = recordDecl(hasName("X"), unless(isImplicit()));
 4338       FirstDeclMatcher<RecordDecl>().match(ToTU, recordDecl(hasName("Foo")));
 4340       FirstDeclMatcher<RecordDecl>().match(ToTU, recordDecl(hasName("A")));
 4376       FirstDeclMatcher<RecordDecl>().match(ToTU, recordDecl(hasName("A")));
 4378       FirstDeclMatcher<RecordDecl>().match(ToTU, recordDecl(hasName("B")));
 4386                                         hasParent(recordDecl(hasName("A"))))));
 4391                                         hasParent(recordDecl(hasName("B"))))));
tools/clang/unittests/AST/SourceLocationTest.cpp
   39   EXPECT_FALSE(Verifier.match("int i;", recordDecl()));
tools/clang/unittests/AST/StructuralEquivalenceTest.cpp
  717       FirstDeclMatcher<RecordDecl>().match(TU, recordDecl(hasName("X")));
  719       FirstDeclMatcher<RecordDecl>().match(TU1, recordDecl(hasName("X")));
  752       FirstDeclMatcher<RecordDecl>().match(ToTU, recordDecl(hasName("A")));
tools/clang/unittests/ASTMatchers/ASTMatchersInternalTest.cpp
   24     DeclarationMatcher HasEmptyName = recordDecl(hasName(""));
   31       DeclarationMatcher HasEmptyName = recordDecl(matchesName(""));
   55   DeclarationMatcher HasClassB = just(has(recordDecl(hasName("B")).bind("b")));
   78       polymorphicHas(recordDecl(hasName("B")).bind("b"));
   90       polymorphicHas(recordDecl(hasName("B")));
  188                       recordDecl(hasName("X"), isExpansionInMainFile())));
  189   EXPECT_TRUE(notMatches("", recordDecl(isExpansionInMainFile())));
  193                                    recordDecl(isExpansionInMainFile()), false,
  201       "#include \"other\"\n", recordDecl(isExpansionInSystemHeader()), true,
  204                                    recordDecl(isExpansionInSystemHeader()),
  207                          recordDecl(isExpansionInSystemHeader())));
  208   EXPECT_TRUE(notMatches("", recordDecl(isExpansionInSystemHeader())));
  219       recordDecl(isExpansionInFileMatching("b.*"), hasName("B")), true,
  225       recordDecl(isExpansionInFileMatching("f.*"), hasName("X")), false,
tools/clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
   34                                         recordDecl(hasName("T")))))))));
   39                                         recordDecl(hasName("T"))))),
   45                                         recordDecl(hasName("T"))))),
   51   DeclarationMatcher HasClassX = recordDecl(has(recordDecl(hasName("X"))));
   51   DeclarationMatcher HasClassX = recordDecl(has(recordDecl(hasName("X"))));
   56     recordDecl(hasName("Y"), has(recordDecl(hasName("X"))));
   56     recordDecl(hasName("Y"), has(recordDecl(hasName("X"))));
   65     recordDecl(
   66       has(recordDecl(
   67         has(recordDecl(hasName("X"))),
   68         has(recordDecl(hasName("Y"))),
   70       has(recordDecl(
   71         has(recordDecl(hasName("A"))),
   72         has(recordDecl(hasName("B"))),
  123     recordDecl(
  125         has(recordDecl(
  127             has(recordDecl(
  129             has(recordDecl(
  132         has(recordDecl(
  135             has(recordDecl(
  137             has(recordDecl(
  166     recordDecl(
  168       has(recordDecl(hasName("Z"))),
  170         has(recordDecl(hasName("Y")))));
  176     namedDecl(hasName("Foo"), unless(recordDecl()));
  192     recordDecl(
  193       hasDescendant(recordDecl(hasName("X"))),
  207     recordDecl(
  208       hasDescendant(recordDecl(has(recordDecl(hasName("Y"))),
  208       hasDescendant(recordDecl(has(recordDecl(hasName("Y"))),
  230     recordDecl(
  231       hasDescendant(recordDecl(hasDescendant(recordDecl(hasName("Y"))),
  231       hasDescendant(recordDecl(hasDescendant(recordDecl(hasName("Y"))),
  301     recordDecl(anyOf(hasName("X"), hasName("Y"), hasName("Z"), hasName("U")));
  306     recordDecl(anyOf(hasName("X"), hasName("Y"), hasName("Z"), hasName("U"),
  484                cxxRecordDecl(isDerivedFrom(recordDecl(hasName("Some"))))));
  491     cxxRecordDecl(hasName("B"), isDerivedFrom(recordDecl(hasName("A"))))));
  499                     isDirectlyDerivedFrom(recordDecl(hasName("A"))))));
  560     cxxRecordDecl(isDerivedFrom(recordDecl(hasName("X")).bind("test")))));
  688   DeclarationMatcher ClassX = has(recordDecl(hasName("::X")).bind("x"));
  697     recordDecl(hasName("A"), has(recordDecl(hasName("B")).bind("b"))));
  697     recordDecl(hasName("A"), has(recordDecl(hasName("B")).bind("b"))));
  731   DeclarationMatcher ClassX = recordDecl(hasName("X")).bind("x");
  735       recordDecl(hasName("A"), hasDescendant(ClassX)),
  736       recordDecl(hasName("B"), hasDescendant(ClassX)))),
  857     sizeOfExpr(hasArgumentOfType(hasDeclaration(recordDecl(hasName("A")))))));
  859     hasArgumentOfType(hasDeclaration(recordDecl(hasName("string")))))));
  985     hasType(references(recordDecl(hasName("X")))));
 1388                       recordDecl(hasName("a::b::C"))));
 1390                       recordDecl(hasName("::a::b::C"))));
 1392                       recordDecl(hasName("b::C"))));
 1394                       recordDecl(hasName("C"))));
 1396                          recordDecl(hasName("c::b::C"))));
 1398                          recordDecl(hasName("a::c::C"))));
 1400                          recordDecl(hasName("a::b::A"))));
 1402                          recordDecl(hasName("::C"))));
 1404                          recordDecl(hasName("::b::C"))));
 1406                          recordDecl(hasName("z::a::b::C"))));
 1408                          recordDecl(hasName("a+b::C"))));
 1410                          recordDecl(hasName("C"))));
 1416             recordDecl(hasName("A::B::C"))));
 1419             recordDecl(hasName("::A::B::C"))));
 1422             recordDecl(hasName("B::C"))));
 1425             recordDecl(hasName("C"))));
 1428                recordDecl(hasName("c::B::C"))));
 1431                recordDecl(hasName("A::c::C"))));
 1434                recordDecl(hasName("A::B::A"))));
 1437                recordDecl(hasName("::C"))));
 1440                recordDecl(hasName("::B::C"))));
 1442                          recordDecl(hasName("z::A::B::C"))));
 1445                recordDecl(hasName("A+B::C"))));
 1450   EXPECT_TRUE(matches(code, recordDecl(hasName("a::b::C"))));
 1451   EXPECT_TRUE(matches(code, recordDecl(hasName("a::C"))));
 1452   EXPECT_TRUE(matches(code, recordDecl(hasName("::a::b::C"))));
 1453   EXPECT_TRUE(matches(code, recordDecl(hasName("::a::C"))));
 1459     matches(code, recordDecl(hasName("a::(anonymous namespace)::C"))));
 1460   EXPECT_TRUE(matches(code, recordDecl(hasName("a::C"))));
 1462     matches(code, recordDecl(hasName("::a::(anonymous namespace)::C"))));
 1463   EXPECT_TRUE(matches(code, recordDecl(hasName("::a::C"))));
 1468                       recordDecl(hasName("A::(anonymous class)::C"))));
 1470                       recordDecl(hasName("::A::(anonymous class)::C"))));
 1472                        recordDecl(hasName("::A::C"))));
 1474                       recordDecl(hasName("A::(anonymous struct)::C"))));
 1476                       recordDecl(hasName("::A::(anonymous struct)::C"))));
 1478                        recordDecl(hasName("::A::C"))));
 1497   EXPECT_TRUE(matches(Code, recordDecl(hasAnyName("XX", "a::b::C"))));
 1498   EXPECT_TRUE(matches(Code, recordDecl(hasAnyName("a::b::C", "XX"))));
 1499   EXPECT_TRUE(matches(Code, recordDecl(hasAnyName("XX::C", "a::b::C"))));
 1500   EXPECT_TRUE(matches(Code, recordDecl(hasAnyName("XX", "C"))));
 1502   EXPECT_TRUE(notMatches(Code, recordDecl(hasAnyName("::C", "::b::C"))));
 1504     matches(Code, recordDecl(hasAnyName("::C", "::b::C", "::a::b::C"))));
 1507   EXPECT_TRUE(matches(Code, recordDecl(hasAnyName(Names))));
 1512     recordDecl(hasName("A"), isDefinition());
 1716     memberExpr(hasObjectExpression(hasType(recordDecl(hasName("X")))))));
 1722     memberExpr(hasObjectExpression(hasType(recordDecl(hasName("X")))))));
 1726       hasType(pointsTo(recordDecl(hasName("X"))))))));
 1739       memberExpr(hasObjectExpression(hasType(recordDecl(hasName("X")))))));
 1743                           hasType(recordDecl(hasName("X")))))));
 1754       hasType(pointsTo(recordDecl(hasName("S"))))))));
 1758       hasType(pointsTo(recordDecl(hasName("S"))))))));
 1818     recordDecl(eachOf(has(fieldDecl(hasName("a")).bind("v")),
 1826     recordDecl(eachOf(has(fieldDecl(hasName("a")).bind("v")),
 1831     recordDecl(eachOf(has(fieldDecl(hasName("a")).bind("v")),
 1836     recordDecl(eachOf(has(fieldDecl(hasName("a")).bind("v")),
 1851       fieldDecl(hasType(recordDecl(hasName("A"))))))));
 1857     functionDecl(hasParameter(0, hasType(recordDecl(hasName("A")))),
 1866       fieldDecl(hasType(recordDecl(hasName("A"))))))));
 2300     decl(allOf(recordDecl(hasName("::X::Y")).bind("record"),
 2304                          decl(allOf(recordDecl(hasName("::X")).bind("record"),
 2311     recordDecl(
 2317     recordDecl(
 2365         varDecl(hasType(recordDecl(hasName("StringRef")))).bind("var")))),
 2381         varDecl(hasType(recordDecl(hasName("StringRef")))).bind("var")))),
tools/clang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp
   83   DeclarationMatcher ClassMatcher(recordDecl());
   90   DeclarationMatcher ClassX = recordDecl(recordDecl(hasName("X")));
   90   DeclarationMatcher ClassX = recordDecl(recordDecl(hasName("X")));
  166                       friendDecl(hasType(recordDecl(hasName("X"))))));
  245     cxxMemberCallExpr(on(hasType(recordDecl(hasName("Y")))));
  264     cxxMemberCallExpr(on(hasType(pointsTo(recordDecl(hasName("Y"))))));
  370     cxxMemberCallExpr(thisPointerType(recordDecl(hasName("Y"))));
  402         cxxMemberCallExpr(thisPointerType(recordDecl(hasName("Y"))))))));
 1082                       initListExpr(hasType(recordDecl(hasName("B"))))));
 1259                       varDecl(hasType(recordDecl(hasName("X"))))));
 1447                       recordType(hasDeclaration(recordDecl(hasName("S"))))));
 1449                          recordType(hasDeclaration(recordDecl(hasName("S"))))));
 1506     specifiesType(hasDeclaration(recordDecl(hasName("A")))));
 1578     "class X { class Y {}; };", recordDecl(hasName("::X::Y")).bind(""),
tools/clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
   35     cxxRecordDecl(hasName("B"), isDerivedFrom(recordDecl()))));
   45     recordDecl(hasDeclContext(namespaceDecl(hasName("M"))))));
   52     recordDecl(hasDeclContext(namespaceDecl(hasName("N"))))));
   59                       recordDecl(hasDeclContext(namespaceDecl(
  124       expr(hasType(pointsTo(recordDecl(hasName("X")))),
  135     expr(hasType(pointsTo(recordDecl(hasName("X")))),
  147   TypeMatcher TypeA = hasDeclaration(recordDecl(hasName("A")));
  160     recordDecl(hasName("A"), has(recordDecl(hasName("B")))));
  160     recordDecl(hasName("A"), has(recordDecl(hasName("B")))));
  301   TypeMatcher ClassX = hasDeclaration(recordDecl(hasName("X")));
  313   TypeMatcher ClassX = hasDeclaration(recordDecl(hasName("X")));
  324   DeclarationMatcher ClassX = recordDecl(hasName("X"));
  333   DeclarationMatcher ClassX = recordDecl(hasName("X"));
  749     cxxMethodDecl(hasParameter(0, hasType(recordDecl(hasName("X")))))));
  752     cxxMethodDecl(hasParameter(0, hasType(recordDecl(hasName("X")))))));
  755                         0, hasType(pointsTo(recordDecl(hasName("X"))))))));
  758                         0, hasType(references(recordDecl(hasName("X"))))))));
  764     cxxMethodDecl(hasAnyParameter(hasType(recordDecl(hasName("X")))))));
  767     cxxMethodDecl(hasAnyParameter(hasType(recordDecl(hasName("X")))))));
  781                         recordDecl(hasName("Y")))))));
  787     cxxMethodDecl(hasAnyParameter(hasType(recordDecl(hasName("X")))))));
  793                            hasType(pointsTo(recordDecl(hasName("X"))))))));
 1027     forField(hasType(recordDecl(hasName("Baz"))))))));
 1033     forField(hasType(recordDecl(hasName("Bar"))))))));
 1330     recordDecl(hasName("C"), hasDescendant(callExpr(
 1896                                        recordDecl(hasName("C"), forEach(fieldDecl(hasName("x")).bind("x"))),
 1902                                        recordDecl(hasName("C"), forEach(fieldDecl().bind("f"))),
 1909     recordDecl(hasName("C"),
 1910                forEach(recordDecl(forEach(fieldDecl().bind("f"))))),
 1916                                        recordDecl(hasName("C"),
 1922   DeclarationMatcher m = recordDecl(
 1926     recordDecl(hasName("A"), anyOf(m, forEachDescendant(m))),
 1934     recordDecl(hasName("A"), allOf(hasDescendant(m), anyOf(m, anything()))),
 1942     recordDecl(hasName("C"), forEachDescendant(fieldDecl().bind("f"))),
 1950     recordDecl(hasName("C"), forEachDescendant(recordDecl(
 1950     recordDecl(hasName("C"), forEachDescendant(recordDecl(
 1966     "class X { int a; };", recordDecl(decl().bind("x"), has(fieldDecl())),
 1992     recordDecl(
 1993       recordDecl().bind("x"), hasName("::X"),
 1994       anyOf(forEachDescendant(recordDecl(hasName("Y"))), anything())),
 1997     "class X {};", recordDecl(recordDecl().bind("x"), hasName("::X"),
 1997     "class X {};", recordDecl(recordDecl().bind("x"), hasName("::X"),
 2012     recordDecl(decl().bind("x"),
 2046     functionDecl(decl().bind("x"), hasAncestor(recordDecl(hasName("::A")))),
 2053     ifStmt(stmt().bind("x"), hasAncestor(recordDecl(hasName("::A")))),
 2057     recordDecl(hasName("::A"), decl().bind("x"), unless(hasName("fooble"))),
 2069     recordDecl(hasName("C"), forEachDescendant(decl().bind("decl"))),
 2073     recordDecl(hasName("C"), forEachDescendant(decl().bind("decl"))),
 2080     recordDecl(hasName("::A"), findAll(recordDecl(hasName("::A")).bind("v"))),
 2080     recordDecl(hasName("::A"), findAll(recordDecl(hasName("::A")).bind("v"))),
 2087     recordDecl(hasName("::A"), findAll(fieldDecl().bind("v"))),
 2094     recordDecl(hasName("::A"),
 2095                findAll(decl(anyOf(recordDecl(hasName("::A")).bind("v"),
 2101     recordDecl(hasName("::A"), findAll(recordDecl(isDefinition()).bind("v"))),
 2101     recordDecl(hasName("::A"), findAll(recordDecl(isDefinition()).bind("v"))),
 2108     recordDecl(hasName("C"), hasAncestor(recordDecl(hasName("A"))))));
 2108     recordDecl(hasName("C"), hasAncestor(recordDecl(hasName("A"))))));
 2114     recordDecl(hasName("C"), hasAncestor(recordDecl(hasName("X"))))));
 2114     recordDecl(hasName("C"), hasAncestor(recordDecl(hasName("X"))))));
 2120     varDecl(hasName("c"), hasType(recordDecl(hasName("C"),
 2121                                              hasAncestor(recordDecl(hasName("A"))))))));
 2139     fieldDecl(hasAncestor(recordDecl(hasAncestor(recordDecl().bind("r"))))),
 2139     fieldDecl(hasAncestor(recordDecl(hasAncestor(recordDecl().bind("r"))))),
 2148         hasDescendant(recordDecl(isDefinition(),
 2149                                  hasAncestor(recordDecl())))
 2174               hasAncestor(recordDecl(hasName("A"))))));
 2182         hasAncestor(recordDecl(hasName("A")))))))));
 2282                compoundStmt(hasParent(recordDecl()))));
 2485     "class X { class Y {}; };", recordDecl(hasName("::X")).bind("X"),
 2487       "X", decl(hasDescendant(recordDecl(hasName("X::Y")).bind("Y"))),
 2490     "class X { class Y {}; };", recordDecl(hasName("::X")).bind("X"),
 2492       "X", decl(hasDescendant(recordDecl(hasName("X::Z")).bind("Z"))),
 2509     "class X { class Y {}; };", recordDecl(hasName("::X")).bind("X"),
 2511       "X", recordDecl(has(recordDecl(hasName("X::Y")).bind("Y"))), "Y")));
 2511       "X", recordDecl(has(recordDecl(hasName("X::Y")).bind("Y"))), "Y")));
 2513     "class X { class Y {}; };", recordDecl(hasName("::X")).bind("X"),
 2515       "X", recordDecl(has(recordDecl(hasName("X::Z")).bind("Z"))), "Z")));
 2515       "X", recordDecl(has(recordDecl(hasName("X::Z")).bind("Z"))), "Z")));
tools/clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp
  217                      specifiesType(hasDeclaration(recordDecl(hasName("A")))))))
  372   D = recordDecl(
tools/clang/unittests/ASTMatchers/Dynamic/VariantValueTest.cpp
   56   Value = VariantMatcher::SingleMatcher(recordDecl());
   83   Value = VariantMatcher::SingleMatcher(recordDecl());
  150                                                       recordDecl(hasName("X"))))