Lines Matching full:clang
25 #include "clang/AST/AST.h"
26 #include "clang/AST/ASTConsumer.h"
27 #include "clang/AST/Attr.h"
28 #include "clang/AST/CXXInheritance.h"
29 #include "clang/AST/RecursiveASTVisitor.h"
30 #include "clang/AST/TypeLoc.h"
31 #include "clang/Basic/SourceManager.h"
32 #include "clang/Basic/SourceLocation.h"
43 : public clang::RecursiveASTVisitor<FindBadConstructsConsumer>,
46 FindBadConstructsConsumer(clang::CompilerInstance& instance,
49 void Traverse(clang::ASTContext& context);
52 bool TraverseDecl(clang::Decl* decl);
53 bool VisitTagDecl(clang::TagDecl* tag_decl);
54 bool VisitVarDecl(clang::VarDecl* var_decl);
55 bool VisitTemplateSpecializationType(clang::TemplateSpecializationType* spec);
56 bool VisitCallExpr(clang::CallExpr* call_expr);
59 void CheckChromeClass(clang::SourceLocation record_location,
60 clang::CXXRecordDecl* record) override;
61 void CheckChromeEnum(clang::SourceLocation enum_location,
62 clang::EnumDecl* enum_decl) override;
68 void CheckCtorDtorWeight(clang::SourceLocation record_location,
69 clang::CXXRecordDecl* record);
71 bool InTestingNamespace(const clang::Decl* record);
72 bool IsMethodInBannedOrTestingNamespace(const clang::CXXMethodDecl* method);
80 clang::SourceLocation loc,
83 void CheckVirtualMethods(clang::SourceLocation record_location,
84 clang::CXXRecordDecl* record,
86 void CheckVirtualSpecifiers(const clang::CXXMethodDecl* method);
87 void CheckVirtualBodies(const clang::CXXMethodDecl* method);
89 void CountType(const clang::Type* type,
95 const clang::CXXRecordDecl* record,
96 clang::SourceLocation& loc);
97 bool IsRefCounted(const clang::CXXBaseSpecifier* base,
98 clang::CXXBasePath& path);
99 static bool HasPublicDtorCallback(const clang::CXXBaseSpecifier* base,
100 clang::CXXBasePath& path,
102 void PrintInheritanceChain(const clang::CXXBasePath& path);
104 void CheckRefCountedDtors(clang::SourceLocation record_location,
105 clang::CXXRecordDecl* record);
107 void CheckWeakPtrFactoryMembers(clang::SourceLocation record_location,
108 clang::CXXRecordDecl* record);
109 void CheckVarDecl(clang::VarDecl* decl);
111 void ParseFunctionTemplates(clang::TranslationUnitDecl* decl);