diff options
Diffstat (limited to 'clang/lib/GR')
83 files changed, 207 insertions, 92 deletions
diff --git a/clang/lib/GR/AggExprVisitor.cpp b/clang/lib/GR/AggExprVisitor.cpp index b8ec92ff810..7f873bc14d5 100644 --- a/clang/lib/GR/AggExprVisitor.cpp +++ b/clang/lib/GR/AggExprVisitor.cpp @@ -16,6 +16,7 @@ #include "clang/AST/StmtVisitor.h" using namespace clang; +using namespace GR; namespace { /// AggExprVisitor is designed after AggExprEmitter of the CodeGen module. It diff --git a/clang/lib/GR/AnalysisConsumer.cpp b/clang/lib/GR/AnalysisConsumer.cpp index 850a4407427..0b2845119ab 100644 --- a/clang/lib/GR/AnalysisConsumer.cpp +++ b/clang/lib/GR/AnalysisConsumer.cpp @@ -43,6 +43,7 @@ #include "llvm/ADT/OwningPtr.h" using namespace clang; +using namespace GR; static ExplodedNode::Auditor* CreateUbiViz(); @@ -473,7 +474,7 @@ static void ActionWarnSizeofPointer(AnalysisConsumer &C, AnalysisManager &mgr, // AnalysisConsumer creation. //===----------------------------------------------------------------------===// -ASTConsumer* clang::CreateAnalysisConsumer(const Preprocessor& pp, +ASTConsumer* GR::CreateAnalysisConsumer(const Preprocessor& pp, const std::string& OutDir, const AnalyzerOptions& Opts) { llvm::OwningPtr<AnalysisConsumer> C(new AnalysisConsumer(pp, OutDir, Opts)); diff --git a/clang/lib/GR/AnalysisManager.cpp b/clang/lib/GR/AnalysisManager.cpp index 736cf1d7b18..b0942e1bb6a 100644 --- a/clang/lib/GR/AnalysisManager.cpp +++ b/clang/lib/GR/AnalysisManager.cpp @@ -12,6 +12,7 @@ #include "clang/Index/Indexer.h" using namespace clang; +using namespace GR; AnalysisContext * AnalysisManager::getAnalysisContextInAnotherTU(const Decl *D) { diff --git a/clang/lib/GR/AnalyzerStatsChecker.cpp b/clang/lib/GR/AnalyzerStatsChecker.cpp index 2aa1515bf37..cc9fcb7a472 100644 --- a/clang/lib/GR/AnalyzerStatsChecker.cpp +++ b/clang/lib/GR/AnalyzerStatsChecker.cpp @@ -20,6 +20,7 @@ #include "llvm/ADT/SmallPtrSet.h" using namespace clang; +using namespace GR; namespace { class AnalyzerStatsChecker : public CheckerVisitor<AnalyzerStatsChecker> { @@ -37,7 +38,7 @@ void *AnalyzerStatsChecker::getTag() { return &x; } -void clang::RegisterAnalyzerStatsChecker(GRExprEngine &Eng) { +void GR::RegisterAnalyzerStatsChecker(GRExprEngine &Eng) { Eng.registerCheck(new AnalyzerStatsChecker()); } diff --git a/clang/lib/GR/BasicConstraintManager.cpp b/clang/lib/GR/BasicConstraintManager.cpp index 01669681515..ac289b89c2e 100644 --- a/clang/lib/GR/BasicConstraintManager.cpp +++ b/clang/lib/GR/BasicConstraintManager.cpp @@ -19,6 +19,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; namespace { class ConstNotEq {}; } @@ -31,6 +32,7 @@ static int ConstEqIndex = 0; static int ConstNotEqIndex = 0; namespace clang { +namespace GR { template<> struct GRStateTrait<ConstNotEq> : public GRStatePartialTrait<ConstNotEqTy> { static inline void* GDMIndex() { return &ConstNotEqIndex; } @@ -41,6 +43,7 @@ struct GRStateTrait<ConstEq> : public GRStatePartialTrait<ConstEqTy> { static inline void* GDMIndex() { return &ConstEqIndex; } }; } +} namespace { // BasicConstraintManager only tracks equality and inequality constraints of @@ -95,7 +98,7 @@ public: } // end anonymous namespace -ConstraintManager* clang::CreateBasicConstraintManager(GRStateManager& statemgr, +ConstraintManager* GR::CreateBasicConstraintManager(GRStateManager& statemgr, GRSubEngine &subengine) { return new BasicConstraintManager(statemgr, subengine); } diff --git a/clang/lib/GR/BasicStore.cpp b/clang/lib/GR/BasicStore.cpp index e9e85b9bd17..2a673e24966 100644 --- a/clang/lib/GR/BasicStore.cpp +++ b/clang/lib/GR/BasicStore.cpp @@ -19,6 +19,7 @@ #include "llvm/ADT/ImmutableMap.h" using namespace clang; +using namespace GR; typedef llvm::ImmutableMap<const MemRegion*,SVal> BindingsTy; @@ -103,7 +104,7 @@ private: } // end anonymous namespace -StoreManager* clang::CreateBasicStoreManager(GRStateManager& StMgr) { +StoreManager* GR::CreateBasicStoreManager(GRStateManager& StMgr) { return new BasicStoreManager(StMgr); } diff --git a/clang/lib/GR/BasicValueFactory.cpp b/clang/lib/GR/BasicValueFactory.cpp index 93528167054..6e94a2a91e1 100644 --- a/clang/lib/GR/BasicValueFactory.cpp +++ b/clang/lib/GR/BasicValueFactory.cpp @@ -16,6 +16,7 @@ #include "clang/GR/PathSensitive/BasicValueFactory.h" using namespace clang; +using namespace GR; void CompoundValData::Profile(llvm::FoldingSetNodeID& ID, QualType T, llvm::ImmutableList<SVal> L) { diff --git a/clang/lib/GR/BugReporter.cpp b/clang/lib/GR/BugReporter.cpp index 41381d7bb46..432182313b1 100644 --- a/clang/lib/GR/BugReporter.cpp +++ b/clang/lib/GR/BugReporter.cpp @@ -30,6 +30,7 @@ #include <queue> using namespace clang; +using namespace GR; BugReporterVisitor::~BugReporterVisitor() {} BugReporterContext::~BugReporterContext() { diff --git a/clang/lib/GR/BugReporterVisitors.cpp b/clang/lib/GR/BugReporterVisitors.cpp index 66410064809..f56d0538325 100644 --- a/clang/lib/GR/BugReporterVisitors.cpp +++ b/clang/lib/GR/BugReporterVisitors.cpp @@ -20,12 +20,13 @@ #include "clang/GR/PathSensitive/GRState.h" using namespace clang; +using namespace GR; //===----------------------------------------------------------------------===// // Utility functions. //===----------------------------------------------------------------------===// -const Stmt *clang::bugreporter::GetDerefExpr(const ExplodedNode *N) { +const Stmt *bugreporter::GetDerefExpr(const ExplodedNode *N) { // Pattern match for a few useful cases (do something smarter later): // a[0], p->f, *p const Stmt *S = N->getLocationAs<PostStmt>()->getStmt(); @@ -46,16 +47,14 @@ const Stmt *clang::bugreporter::GetDerefExpr(const ExplodedNode *N) { return NULL; } -const Stmt* -clang::bugreporter::GetDenomExpr(const ExplodedNode *N) { +const Stmt *bugreporter::GetDenomExpr(const ExplodedNode *N) { const Stmt *S = N->getLocationAs<PreStmt>()->getStmt(); if (const BinaryOperator *BE = dyn_cast<BinaryOperator>(S)) return BE->getRHS(); return NULL; } -const Stmt* -clang::bugreporter::GetCalleeExpr(const ExplodedNode *N) { +const Stmt *bugreporter::GetCalleeExpr(const ExplodedNode *N) { // Callee is checked as a PreVisit to the CallExpr. const Stmt *S = N->getLocationAs<PreStmt>()->getStmt(); if (const CallExpr *CE = dyn_cast<CallExpr>(S)) @@ -63,8 +62,7 @@ clang::bugreporter::GetCalleeExpr(const ExplodedNode *N) { return NULL; } -const Stmt* -clang::bugreporter::GetRetValExpr(const ExplodedNode *N) { +const Stmt *bugreporter::GetRetValExpr(const ExplodedNode *N) { const Stmt *S = N->getLocationAs<PostStmt>()->getStmt(); if (const ReturnStmt *RS = dyn_cast<ReturnStmt>(S)) return RS->getRetValue(); @@ -306,9 +304,9 @@ static void registerTrackConstraint(BugReporterContext& BRC, BRC.addVisitor(new TrackConstraintBRVisitor(Constraint, Assumption)); } -void clang::bugreporter::registerTrackNullOrUndefValue(BugReporterContext& BRC, - const void *data, - const ExplodedNode* N) { +void bugreporter::registerTrackNullOrUndefValue(BugReporterContext& BRC, + const void *data, + const ExplodedNode* N) { const Stmt *S = static_cast<const Stmt*>(data); @@ -354,9 +352,9 @@ void clang::bugreporter::registerTrackNullOrUndefValue(BugReporterContext& BRC, } } -void clang::bugreporter::registerFindLastStore(BugReporterContext& BRC, - const void *data, - const ExplodedNode* N) { +void bugreporter::registerFindLastStore(BugReporterContext& BRC, + const void *data, + const ExplodedNode* N) { const MemRegion *R = static_cast<const MemRegion*>(data); @@ -417,12 +415,12 @@ public: }; } // end anonymous namespace -void clang::bugreporter::registerNilReceiverVisitor(BugReporterContext &BRC) { +void bugreporter::registerNilReceiverVisitor(BugReporterContext &BRC) { BRC.addVisitor(new NilReceiverVisitor()); } // Registers every VarDecl inside a Stmt with a last store vistor. -void clang::bugreporter::registerVarDeclsLastStore(BugReporterContext &BRC, +void bugreporter::registerVarDeclsLastStore(BugReporterContext &BRC, const void *stmt, const ExplodedNode *N) { const Stmt *S = static_cast<const Stmt *>(stmt); diff --git a/clang/lib/GR/CFRefCount.cpp b/clang/lib/GR/CFRefCount.cpp index 211c2659614..55d11a57b43 100644 --- a/clang/lib/GR/CFRefCount.cpp +++ b/clang/lib/GR/CFRefCount.cpp @@ -34,6 +34,7 @@ #include <stdarg.h> using namespace clang; +using namespace GR; using llvm::StringRef; using llvm::StrInStrNoCase; @@ -396,6 +397,7 @@ void RefVal::print(llvm::raw_ostream& Out) const { typedef llvm::ImmutableMap<SymbolRef, RefVal> RefBindings; namespace clang { +namespace GR { template<> struct GRStateTrait<RefBindings> : public GRStatePartialTrait<RefBindings> { static void* GDMIndex() { @@ -404,6 +406,7 @@ namespace clang { } }; } +} //===----------------------------------------------------------------------===// // Summaries @@ -1576,6 +1579,7 @@ namespace { class AutoreleasePoolContents {}; } namespace { class AutoreleaseStack {}; } namespace clang { +namespace GR { template<> struct GRStateTrait<AutoreleaseStack> : public GRStatePartialTrait<ARStack> { static inline void* GDMIndex() { return &AutoRBIndex; } @@ -1585,6 +1589,7 @@ template<> struct GRStateTrait<AutoreleasePoolContents> : public GRStatePartialTrait<ARPoolContents> { static inline void* GDMIndex() { return &AutoRCIndex; } }; +} // end GR namespace } // end clang namespace static SymbolRef GetCurrentAutoreleasePool(const GRState* state) { @@ -3489,7 +3494,7 @@ void CFRefCount::RegisterChecks(GRExprEngine& Eng) { Eng.registerCheck(new RetainReleaseChecker(this)); } -GRTransferFuncs* clang::MakeCFRefCountTF(ASTContext& Ctx, bool GCEnabled, +GRTransferFuncs* GR::MakeCFRefCountTF(ASTContext& Ctx, bool GCEnabled, const LangOptions& lopts) { return new CFRefCount(Ctx, GCEnabled, lopts); } diff --git a/clang/lib/GR/Checker.cpp b/clang/lib/GR/Checker.cpp index 00976dbcedd..521d9e2b7db 100644 --- a/clang/lib/GR/Checker.cpp +++ b/clang/lib/GR/Checker.cpp @@ -14,6 +14,7 @@ #include "clang/GR/PathSensitive/Checker.h" using namespace clang; +using namespace GR; Checker::~Checker() {} diff --git a/clang/lib/GR/CheckerHelpers.cpp b/clang/lib/GR/CheckerHelpers.cpp index 3819ed30ab2..23144a300e2 100644 --- a/clang/lib/GR/CheckerHelpers.cpp +++ b/clang/lib/GR/CheckerHelpers.cpp @@ -15,7 +15,7 @@ #include "clang/AST/Expr.h" // Recursively find any substatements containing macros -bool clang::containsMacro(const Stmt *S) { +bool clang::GR::containsMacro(const Stmt *S) { if (S->getLocStart().isMacroID()) return true; @@ -32,7 +32,7 @@ bool clang::containsMacro(const Stmt *S) { } // Recursively find any substatements containing enum constants -bool clang::containsEnum(const Stmt *S) { +bool clang::GR::containsEnum(const Stmt *S) { const DeclRefExpr *DR = dyn_cast<DeclRefExpr>(S); if (DR && isa<EnumConstantDecl>(DR->getDecl())) @@ -48,7 +48,7 @@ bool clang::containsEnum(const Stmt *S) { } // Recursively find any substatements containing static vars -bool clang::containsStaticLocal(const Stmt *S) { +bool clang::GR::containsStaticLocal(const Stmt *S) { const DeclRefExpr *DR = dyn_cast<DeclRefExpr>(S); if (DR) @@ -66,7 +66,7 @@ bool clang::containsStaticLocal(const Stmt *S) { } // Recursively find any substatements containing __builtin_offsetof -bool clang::containsBuiltinOffsetOf(const Stmt *S) { +bool clang::GR::containsBuiltinOffsetOf(const Stmt *S) { if (isa<OffsetOfExpr>(S)) return true; diff --git a/clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp b/clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp index 281d74f926c..d9cfd3cac84 100644 --- a/clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp +++ b/clang/lib/GR/Checkers/AdjustedReturnValueChecker.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class AdjustedReturnValueChecker : @@ -34,7 +35,7 @@ public: }; } -void clang::RegisterAdjustedReturnValueChecker(GRExprEngine &Eng) { +void GR::RegisterAdjustedReturnValueChecker(GRExprEngine &Eng) { Eng.registerCheck(new AdjustedReturnValueChecker()); } diff --git a/clang/lib/GR/Checkers/ArrayBoundChecker.cpp b/clang/lib/GR/Checkers/ArrayBoundChecker.cpp index a36e13e4fe6..f97adf3d145 100644 --- a/clang/lib/GR/Checkers/ArrayBoundChecker.cpp +++ b/clang/lib/GR/Checkers/ArrayBoundChecker.cpp @@ -18,6 +18,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class ArrayBoundChecker : @@ -30,7 +31,7 @@ public: }; } -void clang::RegisterArrayBoundChecker(GRExprEngine &Eng) { +void GR::RegisterArrayBoundChecker(GRExprEngine &Eng) { Eng.registerCheck(new ArrayBoundChecker()); } diff --git a/clang/lib/GR/Checkers/AttrNonNullChecker.cpp b/clang/lib/GR/Checkers/AttrNonNullChecker.cpp index 5be12783bd8..baf209e3c86 100644 --- a/clang/lib/GR/Checkers/AttrNonNullChecker.cpp +++ b/clang/lib/GR/Checkers/AttrNonNullChecker.cpp @@ -17,6 +17,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class AttrNonNullChecker @@ -32,7 +33,7 @@ public: }; } // end anonymous namespace -void clang::RegisterAttrNonNullChecker(GRExprEngine &Eng) { +void GR::RegisterAttrNonNullChecker(GRExprEngine &Eng) { Eng.registerCheck(new AttrNonNullChecker()); } diff --git a/clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp index dc536957047..93c8babde13 100644 --- a/clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp +++ b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.cpp @@ -29,6 +29,7 @@ #include "clang/AST/ASTContext.h" using namespace clang; +using namespace GR; namespace { class APIMisuse : public BugType { @@ -510,7 +511,7 @@ void ClassReleaseChecker::PreVisitObjCMessageExpr(CheckerContext &C, // Check registration. //===----------------------------------------------------------------------===// -void clang::RegisterAppleChecks(GRExprEngine& Eng, const Decl &D) { +void GR::RegisterAppleChecks(GRExprEngine& Eng, const Decl &D) { Eng.registerCheck(new NilArgChecker()); Eng.registerCheck(new CFNumberCreateChecker()); RegisterNSErrorChecks(Eng.getBugReporter(), Eng, D); diff --git a/clang/lib/GR/Checkers/BasicObjCFoundationChecks.h b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.h index 6ad850b9735..7fdccdcacb8 100644 --- a/clang/lib/GR/Checkers/BasicObjCFoundationChecks.h +++ b/clang/lib/GR/Checkers/BasicObjCFoundationChecks.h @@ -13,19 +13,24 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_ANALYSIS_BASICOBJCFOUNDATIONCHECKS -#define LLVM_CLANG_ANALYSIS_BASICOBJCFOUNDATIONCHECKS +#ifndef LLVM_CLANG_GR_BASICOBJCFOUNDATIONCHECKS +#define LLVM_CLANG_GR_BASICOBJCFOUNDATIONCHECKS namespace clang { class ASTContext; -class BugReporter; class Decl; + +namespace GR { + +class BugReporter; class GRExprEngine; void RegisterNSErrorChecks(BugReporter& BR, GRExprEngine &Eng, const Decl &D); void RegisterNSAutoreleasePoolChecks(GRExprEngine &Eng); +} // end GR namespace + } // end clang namespace #endif diff --git a/clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp b/clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp index 08fcbd6f4ef..dc55a65ff5a 100644 --- a/clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp +++ b/clang/lib/GR/Checkers/BuiltinFunctionChecker.cpp @@ -16,6 +16,7 @@ #include "clang/Basic/Builtins.h" using namespace clang; +using namespace GR; namespace { @@ -27,7 +28,7 @@ public: } -void clang::RegisterBuiltinFunctionChecker(GRExprEngine &Eng) { +void GR::RegisterBuiltinFunctionChecker(GRExprEngine &Eng) { Eng.registerCheck(new BuiltinFunctionChecker()); } diff --git a/clang/lib/GR/Checkers/CStringChecker.cpp b/clang/lib/GR/Checkers/CStringChecker.cpp index db4d86f0e3b..da0bba37416 100644 --- a/clang/lib/GR/Checkers/CStringChecker.cpp +++ b/clang/lib/GR/Checkers/CStringChecker.cpp @@ -19,6 +19,7 @@ #include "llvm/ADT/StringSwitch.h" using namespace clang; +using namespace GR; namespace { class CStringChecker : public CheckerVisitor<CStringChecker> { @@ -99,14 +100,16 @@ public: } //end anonymous namespace namespace clang { +namespace GR { template <> struct GRStateTrait<CStringLength> : public GRStatePartialTrait<CStringLength::EntryMap> { static void *GDMIndex() { return CStringChecker::getTag(); } }; } +} -void clang::RegisterCStringChecker(GRExprEngine &Eng) { +void GR::RegisterCStringChecker(GRExprEngine &Eng) { Eng.registerCheck(new CStringChecker()); } diff --git a/clang/lib/GR/Checkers/CallAndMessageChecker.cpp b/clang/lib/GR/Checkers/CallAndMessageChecker.cpp index e68569ce7e8..8b8f75faf68 100644 --- a/clang/lib/GR/Checkers/CallAndMessageChecker.cpp +++ b/clang/lib/GR/Checkers/CallAndMessageChecker.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class CallAndMessageChecker @@ -61,7 +62,7 @@ private: }; } // end anonymous namespace -void clang::RegisterCallAndMessageChecker(GRExprEngine &Eng) { +void GR::RegisterCallAndMessageChecker(GRExprEngine &Eng) { Eng.registerCheck(new CallAndMessageChecker()); } diff --git a/clang/lib/GR/Checkers/CastSizeChecker.cpp b/clang/lib/GR/Checkers/CastSizeChecker.cpp index 1248d12c911..bcbb89441f4 100644 --- a/clang/lib/GR/Checkers/CastSizeChecker.cpp +++ b/clang/lib/GR/Checkers/CastSizeChecker.cpp @@ -17,6 +17,7 @@ #include "GRExprEngineInternalChecks.h" using namespace clang; +using namespace GR; namespace { class CastSizeChecker : public CheckerVisitor<CastSizeChecker> { @@ -85,6 +86,6 @@ void CastSizeChecker::PreVisitCastExpr(CheckerContext &C, const CastExpr *CE) { } -void clang::RegisterCastSizeChecker(GRExprEngine &Eng) { +void GR::RegisterCastSizeChecker(GRExprEngine &Eng) { Eng.registerCheck(new CastSizeChecker()); } diff --git a/clang/lib/GR/Checkers/CastToStructChecker.cpp b/clang/lib/GR/Checkers/CastToStructChecker.cpp index 2a010b210b0..0bcba284b86 100644 --- a/clang/lib/GR/Checkers/CastToStructChecker.cpp +++ b/clang/lib/GR/Checkers/CastToStructChecker.cpp @@ -18,6 +18,7 @@ #include "GRExprEngineInternalChecks.h" using namespace clang; +using namespace GR; namespace { class CastToStructChecker @@ -73,6 +74,6 @@ void CastToStructChecker::PreVisitCastExpr(CheckerContext &C, } } -void clang::RegisterCastToStructChecker(GRExprEngine &Eng) { +void GR::RegisterCastToStructChecker(GRExprEngine &Eng) { Eng.registerCheck(new CastToStructChecker()); } diff --git a/clang/lib/GR/Checkers/CheckDeadStores.cpp b/clang/lib/GR/Checkers/CheckDeadStores.cpp index 7e90781bd30..44fdb3afbba 100644 --- a/clang/lib/GR/Checkers/CheckDeadStores.cpp +++ b/clang/lib/GR/Checkers/CheckDeadStores.cpp @@ -24,6 +24,7 @@ #include "llvm/ADT/SmallPtrSet.h" using namespace clang; +using namespace GR; namespace { @@ -280,7 +281,7 @@ public: } // end anonymous namespace -void clang::CheckDeadStores(CFG &cfg, LiveVariables &L, ParentMap &pmap, +void GR::CheckDeadStores(CFG &cfg, LiveVariables &L, ParentMap &pmap, BugReporter& BR) { FindEscaped FS(&cfg); FS.getCFG().VisitBlockStmts(FS); diff --git a/clang/lib/GR/Checkers/CheckObjCDealloc.cpp b/clang/lib/GR/Checkers/CheckObjCDealloc.cpp index c3d511ba025..f8ec7f6edab 100644 --- a/clang/lib/GR/Checkers/CheckObjCDealloc.cpp +++ b/clang/lib/GR/Checkers/CheckObjCDealloc.cpp @@ -23,6 +23,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; static bool scan_dealloc(Stmt* S, Selector Dealloc) { @@ -93,8 +94,8 @@ static bool scan_ivar_release(Stmt* S, ObjCIvarDecl* ID, return false; } -void clang::CheckObjCDealloc(const ObjCImplementationDecl* D, - const LangOptions& LOpts, BugReporter& BR) { +void GR::CheckObjCDealloc(const ObjCImplementationDecl* D, + const LangOptions& LOpts, BugReporter& BR) { assert (LOpts.getGCMode() != LangOptions::GCOnly); diff --git a/clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp b/clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp index 2b83d13e759..b2be375f107 100644 --- a/clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp +++ b/clang/lib/GR/Checkers/CheckObjCInstMethSignature.cpp @@ -24,6 +24,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; static bool AreTypesCompatible(QualType Derived, QualType Ancestor, ASTContext& C) { @@ -69,8 +70,8 @@ static void CompareReturnTypes(const ObjCMethodDecl *MethDerived, } } -void clang::CheckObjCInstMethSignature(const ObjCImplementationDecl* ID, - BugReporter& BR) { +void GR::CheckObjCInstMethSignature(const ObjCImplementationDecl* ID, + BugReporter& BR) { const ObjCInterfaceDecl* D = ID->getClassInterface(); const ObjCInterfaceDecl* C = D->getSuperClass(); diff --git a/clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp b/clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp index bdf18ca7608..ea658e39844 100644 --- a/clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp +++ b/clang/lib/GR/Checkers/CheckSecuritySyntaxOnly.cpp @@ -18,6 +18,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; static bool isArc4RandomAvailable(const ASTContext &Ctx) { const llvm::Triple &T = Ctx.Target.getTriple(); @@ -496,7 +497,7 @@ void WalkAST::CheckUncheckedReturnValue(CallExpr *CE) { // Entry point for check. //===----------------------------------------------------------------------===// -void clang::CheckSecuritySyntaxOnly(const Decl *D, BugReporter &BR) { +void GR::CheckSecuritySyntaxOnly(const Decl *D, BugReporter &BR) { WalkAST walker(BR); walker.Visit(D->getBody()); } diff --git a/clang/lib/GR/Checkers/CheckSizeofPointer.cpp b/clang/lib/GR/Checkers/CheckSizeofPointer.cpp index 4cf5eb70069..696dce2941d 100644 --- a/clang/lib/GR/Checkers/CheckSizeofPointer.cpp +++ b/clang/lib/GR/Checkers/CheckSizeofPointer.cpp @@ -17,6 +17,7 @@ #include "clang/GR/Checkers/LocalCheckers.h" using namespace clang; +using namespace GR; namespace { class WalkAST : public StmtVisitor<WalkAST> { @@ -65,7 +66,7 @@ void WalkAST::VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E) { } } -void clang::CheckSizeofPointer(const Decl *D, BugReporter &BR) { +void GR::CheckSizeofPointer(const Decl *D, BugReporter &BR) { WalkAST walker(BR); walker.Visit(D->getBody()); } diff --git a/clang/lib/GR/Checkers/ChrootChecker.cpp b/clang/lib/GR/Checkers/ChrootChecker.cpp index 2108094ae11..f93ee7b9416 100644 --- a/clang/lib/GR/Checkers/ChrootChecker.cpp +++ b/clang/lib/GR/Checkers/ChrootChecker.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/SymbolManager.h" #include "llvm/ADT/ImmutableMap.h" using namespace clang; +using namespace GR; namespace { @@ -58,7 +59,7 @@ private: } // end anonymous namespace -void clang::RegisterChrootChecker(GRExprEngine &Eng) { +void GR::RegisterChrootChecker(GRExprEngine &Eng) { Eng.registerCheck(new ChrootChecker()); } diff --git a/clang/lib/GR/Checkers/DereferenceChecker.cpp b/clang/lib/GR/Checkers/DereferenceChecker.cpp index 72c88b1a3c7..62b1f86fb48 100644 --- a/clang/lib/GR/Checkers/DereferenceChecker.cpp +++ b/clang/lib/GR/Checkers/DereferenceChecker.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class DereferenceChecker : public Checker { @@ -42,12 +43,12 @@ public: }; } // end anonymous namespace -void clang::RegisterDereferenceChecker(GRExprEngine &Eng) { +void GR::RegisterDereferenceChecker(GRExprEngine &Eng) { Eng.registerCheck(new DereferenceChecker()); } std::pair<ExplodedNode * const *, ExplodedNode * const *> -clang::GetImplicitNullDereferences(GRExprEngine &Eng) { +GR::GetImplicitNullDereferences(GRExprEngine &Eng) { DereferenceChecker *checker = Eng.getChecker<DereferenceChecker>(); if (!checker) return std::make_pair((ExplodedNode * const *) 0, diff --git a/clang/lib/GR/Checkers/DivZeroChecker.cpp b/clang/lib/GR/Checkers/DivZeroChecker.cpp index e76d84672f7..a4cb1a4a130 100644 --- a/clang/lib/GR/Checkers/DivZeroChecker.cpp +++ b/clang/lib/GR/Checkers/DivZeroChecker.cpp @@ -17,6 +17,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class DivZeroChecker : public CheckerVisitor<DivZeroChecker> { @@ -28,7 +29,7 @@ public: }; } // end anonymous namespace -void clang::RegisterDivZeroChecker(GRExprEngine &Eng) { +void GR::RegisterDivZeroChecker(GRExprEngine &Eng) { Eng.registerCheck(new DivZeroChecker()); } diff --git a/clang/lib/GR/Checkers/FixedAddressChecker.cpp b/clang/lib/GR/Checkers/FixedAddressChecker.cpp index ede6b555d48..4c7086f4f1e 100644 --- a/clang/lib/GR/Checkers/FixedAddressChecker.cpp +++ b/clang/lib/GR/Checkers/FixedAddressChecker.cpp @@ -18,6 +18,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class FixedAddressChecker @@ -66,6 +67,6 @@ void FixedAddressChecker::PreVisitBinaryOperator(CheckerContext &C, } } -void clang::RegisterFixedAddressChecker(GRExprEngine &Eng) { +void GR::RegisterFixedAddressChecker(GRExprEngine &Eng) { Eng.registerCheck(new FixedAddressChecker()); } diff --git a/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp index f1acc65d769..fd9bf5dd520 100644 --- a/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp +++ b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.cpp @@ -17,8 +17,9 @@ #include "clang/GR/Checkers/LocalCheckers.h" using namespace clang; +using namespace GR; -void clang::RegisterExperimentalChecks(GRExprEngine &Eng) { +void GR::RegisterExperimentalChecks(GRExprEngine &Eng) { // These are checks that never belong as internal checks // within GRExprEngine. RegisterCStringChecker(Eng); @@ -29,7 +30,7 @@ void clang::RegisterExperimentalChecks(GRExprEngine &Eng) { RegisterUnreachableCodeChecker(Eng); } -void clang::RegisterExperimentalInternalChecks(GRExprEngine &Eng) { +void GR::RegisterExperimentalInternalChecks(GRExprEngine &Eng) { // These are internal checks that should eventually migrate to // RegisterInternalChecks() once they have been further tested. diff --git a/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h index 3380031e020..54a61256590 100644 --- a/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h +++ b/clang/lib/GR/Checkers/GRExprEngineExperimentalChecks.h @@ -12,11 +12,13 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_GREXPRENGINE_EXPERIMENTAL_CHECKS -#define LLVM_CLANG_GREXPRENGINE_EXPERIMENTAL_CHECKS +#ifndef LLVM_CLANG_GR_GREXPRENGINE_EXPERIMENTAL_CHECKS +#define LLVM_CLANG_GR_GREXPRENGINE_EXPERIMENTAL_CHECKS namespace clang { +namespace GR { + class GRExprEngine; void RegisterAnalyzerStatsChecker(GRExprEngine &Eng); @@ -28,5 +30,8 @@ void RegisterPthreadLockChecker(GRExprEngine &Eng); void RegisterStreamChecker(GRExprEngine &Eng); void RegisterUnreachableCodeChecker(GRExprEngine &Eng); +} // end GR namespace + } // end clang namespace + #endif diff --git a/clang/lib/GR/Checkers/GRExprEngineInternalChecks.h b/clang/lib/GR/Checkers/GRExprEngineInternalChecks.h index 740a914cfcd..cba419a9b60 100644 --- a/clang/lib/GR/Checkers/GRExprEngineInternalChecks.h +++ b/clang/lib/GR/Checkers/GRExprEngineInternalChecks.h @@ -12,11 +12,13 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_GREXPRENGINE_INTERNAL_CHECKS -#define LLVM_CLANG_GREXPRENGINE_INTERNAL_CHECKS +#ifndef LLVM_CLANG_GR_GREXPRENGINE_INTERNAL_CHECKS +#define LLVM_CLANG_GR_GREXPRENGINE_INTERNAL_CHECKS namespace clang { +namespace GR { + class GRExprEngine; // Foundational checks that handle basic semantics. @@ -49,5 +51,8 @@ void RegisterMacOSXAPIChecker(GRExprEngine &Eng); void RegisterOSAtomicChecker(GRExprEngine &Eng); void RegisterUnixAPIChecker(GRExprEngine &Eng); +} // end GR namespace + } // end clang namespace + #endif diff --git a/clang/lib/GR/Checkers/IdempotentOperationChecker.cpp b/clang/lib/GR/Checkers/IdempotentOperationChecker.cpp index e6f0e5de06f..b28edc3b12d 100644 --- a/clang/lib/GR/Checkers/IdempotentOperationChecker.cpp +++ b/clang/lib/GR/Checkers/IdempotentOperationChecker.cpp @@ -58,6 +58,7 @@ #include <deque> using namespace clang; +using namespace GR; namespace { class IdempotentOperationChecker @@ -129,7 +130,7 @@ void *IdempotentOperationChecker::getTag() { return &x; } -void clang::RegisterIdempotentOperationChecker(GRExprEngine &Eng) { +void GR::RegisterIdempotentOperationChecker(GRExprEngine &Eng) { Eng.registerCheck(new IdempotentOperationChecker()); } diff --git a/clang/lib/GR/Checkers/LLVMConventionsChecker.cpp b/clang/lib/GR/Checkers/LLVMConventionsChecker.cpp index e97074e5425..655e7565165 100644 --- a/clang/lib/GR/Checkers/LLVMConventionsChecker.cpp +++ b/clang/lib/GR/Checkers/LLVMConventionsChecker.cpp @@ -20,6 +20,7 @@ #include "llvm/ADT/StringRef.h" using namespace clang; +using namespace GR; //===----------------------------------------------------------------------===// // Generic type checking routines. @@ -305,7 +306,7 @@ static void ScanCodeDecls(DeclContext *DC, BugReporter &BR) { } } -void clang::CheckLLVMConventions(TranslationUnitDecl &TU, +void GR::CheckLLVMConventions(TranslationUnitDecl &TU, BugReporter &BR) { ScanCodeDecls(&TU, BR); } diff --git a/clang/lib/GR/Checkers/MacOSXAPIChecker.cpp b/clang/lib/GR/Checkers/MacOSXAPIChecker.cpp index c798cb291f4..316e37a40f4 100644 --- a/clang/lib/GR/Checkers/MacOSXAPIChecker.cpp +++ b/clang/lib/GR/Checkers/MacOSXAPIChecker.cpp @@ -25,6 +25,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; namespace { class MacOSXAPIChecker : public CheckerVisitor<MacOSXAPIChecker> { @@ -44,7 +45,7 @@ public: }; } //end anonymous namespace -void clang::RegisterMacOSXAPIChecker(GRExprEngine &Eng) { +void GR::RegisterMacOSXAPIChecker(GRExprEngine &Eng) { if (Eng.getContext().Target.getTriple().getVendor() == llvm::Triple::Apple) Eng.registerCheck(new MacOSXAPIChecker()); } diff --git a/clang/lib/GR/Checkers/MallocChecker.cpp b/clang/lib/GR/Checkers/MallocChecker.cpp index 367ac245c14..cd5f636e961 100644 --- a/clang/lib/GR/Checkers/MallocChecker.cpp +++ b/clang/lib/GR/Checkers/MallocChecker.cpp @@ -20,6 +20,7 @@ #include "clang/GR/PathSensitive/SymbolManager.h" #include "llvm/ADT/ImmutableMap.h" using namespace clang; +using namespace GR; namespace { @@ -116,14 +117,16 @@ private: typedef llvm::ImmutableMap<SymbolRef, RefState> RegionStateTy; namespace clang { +namespace GR { template <> struct GRStateTrait<RegionState> : public GRStatePartialTrait<RegionStateTy> { static void *GDMIndex() { return MallocChecker::getTag(); } }; } +} -void clang::RegisterMallocChecker(GRExprEngine &Eng) { +void GR::RegisterMallocChecker(GRExprEngine &Eng) { Eng.registerCheck(new MallocChecker()); } diff --git a/clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp b/clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp index d8225a7e4e7..d6701c7142c 100644 --- a/clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp +++ b/clang/lib/GR/Checkers/NSAutoreleasePoolChecker.cpp @@ -23,6 +23,7 @@ #include "clang/AST/Decl.h" using namespace clang; +using namespace GR; namespace { class NSAutoreleasePoolChecker @@ -44,7 +45,7 @@ public: } // end anonymous namespace -void clang::RegisterNSAutoreleasePoolChecks(GRExprEngine &Eng) { +void GR::RegisterNSAutoreleasePoolChecks(GRExprEngine &Eng) { ASTContext &Ctx = Eng.getContext(); if (Ctx.getLangOptions().getGCMode() != LangOptions::NonGC) { Eng.registerCheck(new NSAutoreleasePoolChecker(GetNullarySelector("release", diff --git a/clang/lib/GR/Checkers/NSErrorChecker.cpp b/clang/lib/GR/Checkers/NSErrorChecker.cpp index 73caf774bfc..44715bf9f94 100644 --- a/clang/lib/GR/Checkers/NSErrorChecker.cpp +++ b/clang/lib/GR/Checkers/NSErrorChecker.cpp @@ -25,6 +25,7 @@ #include "llvm/ADT/SmallVector.h" using namespace clang; +using namespace GR; namespace { class NSErrorChecker : public BugType { @@ -62,7 +63,7 @@ public: } // end anonymous namespace -void clang::RegisterNSErrorChecks(BugReporter& BR, GRExprEngine &Eng, +void GR::RegisterNSErrorChecks(BugReporter& BR, GRExprEngine &Eng, const Decl &D) { BR.Register(new NSErrorChecker(D, true, Eng)); BR.Register(new NSErrorChecker(D, false, Eng)); diff --git a/clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp b/clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp index fdd2849719f..739460f781d 100644 --- a/clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp +++ b/clang/lib/GR/Checkers/NoReturnFunctionChecker.cpp @@ -17,6 +17,7 @@ #include "llvm/ADT/StringSwitch.h" using namespace clang; +using namespace GR; namespace { @@ -28,7 +29,7 @@ public: } -void clang::RegisterNoReturnFunctionChecker(GRExprEngine &Eng) { +void GR::RegisterNoReturnFunctionChecker(GRExprEngine &Eng) { Eng.registerCheck(new NoReturnFunctionChecker()); } diff --git a/clang/lib/GR/Checkers/OSAtomicChecker.cpp b/clang/lib/GR/Checkers/OSAtomicChecker.cpp index 36b5335d88a..7df7a9eec04 100644 --- a/clang/lib/GR/Checkers/OSAtomicChecker.cpp +++ b/clang/lib/GR/Checkers/OSAtomicChecker.cpp @@ -16,6 +16,7 @@ #include "clang/Basic/Builtins.h" using namespace clang; +using namespace GR; namespace { @@ -30,7 +31,7 @@ private: } -void clang::RegisterOSAtomicChecker(GRExprEngine &Eng) { +void GR::RegisterOSAtomicChecker(GRExprEngine &Eng) { Eng.registerCheck(new OSAtomicChecker()); } diff --git a/clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp b/clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp index c95df4ef4b9..a3938627b1f 100644 --- a/clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp +++ b/clang/lib/GR/Checkers/ObjCAtSyncChecker.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class ObjCAtSyncChecker : public CheckerVisitor<ObjCAtSyncChecker> { @@ -32,7 +33,7 @@ public: }; } // end anonymous namespace -void clang::RegisterObjCAtSyncChecker(GRExprEngine &Eng) { +void GR::RegisterObjCAtSyncChecker(GRExprEngine &Eng) { // @synchronized is an Objective-C 2 feature. if (Eng.getContext().getLangOptions().ObjC2) Eng.registerCheck(new ObjCAtSyncChecker()); diff --git a/clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp b/clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp index e3f5d565e72..611914fbc00 100644 --- a/clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp +++ b/clang/lib/GR/Checkers/ObjCUnusedIVarsChecker.cpp @@ -23,6 +23,7 @@ #include "clang/Basic/SourceManager.h" using namespace clang; +using namespace GR; enum IVarState { Unused, Used }; typedef llvm::DenseMap<const ObjCIvarDecl*,IVarState> IvarUsageMap; @@ -97,7 +98,7 @@ static void Scan(IvarUsageMap &M, const DeclContext *C, const FileID FID, } } -void clang::CheckObjCUnusedIvar(const ObjCImplementationDecl *D, +void GR::CheckObjCUnusedIvar(const ObjCImplementationDecl *D, BugReporter &BR) { const ObjCInterfaceDecl* ID = D->getClassInterface(); diff --git a/clang/lib/GR/Checkers/PointerArithChecker.cpp b/clang/lib/GR/Checkers/PointerArithChecker.cpp index 0517140da32..485144a1421 100644 --- a/clang/lib/GR/Checkers/PointerArithChecker.cpp +++ b/clang/lib/GR/Checkers/PointerArithChecker.cpp @@ -17,6 +17,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class PointerArithChecker @@ -66,6 +67,6 @@ void PointerArithChecker::PreVisitBinaryOperator(CheckerContext &C, } } -void clang::RegisterPointerArithChecker(GRExprEngine &Eng) { +void GR::RegisterPointerArithChecker(GRExprEngine &Eng) { Eng.registerCheck(new PointerArithChecker()); } diff --git a/clang/lib/GR/Checkers/PointerSubChecker.cpp b/clang/lib/GR/Checkers/PointerSubChecker.cpp index 24f839dca12..44e3d9f0090 100644 --- a/clang/lib/GR/Checkers/PointerSubChecker.cpp +++ b/clang/lib/GR/Checkers/PointerSubChecker.cpp @@ -18,6 +18,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class PointerSubChecker @@ -73,6 +74,6 @@ void PointerSubChecker::PreVisitBinaryOperator(CheckerContext &C, } } -void clang::RegisterPointerSubChecker(GRExprEngine &Eng) { +void GR::RegisterPointerSubChecker(GRExprEngine &Eng) { Eng.registerCheck(new PointerSubChecker()); } diff --git a/clang/lib/GR/Checkers/PthreadLockChecker.cpp b/clang/lib/GR/Checkers/PthreadLockChecker.cpp index 32f2f57b456..d880b066bc8 100644 --- a/clang/lib/GR/Checkers/PthreadLockChecker.cpp +++ b/clang/lib/GR/Checkers/PthreadLockChecker.cpp @@ -19,6 +19,7 @@ #include "llvm/ADT/ImmutableSet.h" using namespace clang; +using namespace GR; namespace { class PthreadLockChecker @@ -44,13 +45,15 @@ public: // GDM Entry for tracking lock state. namespace { class LockSet {}; } namespace clang { +namespace GR { template <> struct GRStateTrait<LockSet> : public GRStatePartialTrait<llvm::ImmutableSet<const MemRegion*> > { static void* GDMIndex() { return PthreadLockChecker::getTag(); } }; +} // end GR namespace } // end clang namespace -void clang::RegisterPthreadLockChecker(GRExprEngine &Eng) { +void GR::RegisterPthreadLockChecker(GRExprEngine &Eng) { Eng.registerCheck(new PthreadLockChecker()); } diff --git a/clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp b/clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp index a2a9473b2c2..98b4ea544d7 100644 --- a/clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp +++ b/clang/lib/GR/Checkers/ReturnPointerRangeChecker.cpp @@ -18,6 +18,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class ReturnPointerRangeChecker : @@ -30,7 +31,7 @@ public: }; } -void clang::RegisterReturnPointerRangeChecker(GRExprEngine &Eng) { +void GR::RegisterReturnPointerRangeChecker(GRExprEngine &Eng) { Eng.registerCheck(new ReturnPointerRangeChecker()); } diff --git a/clang/lib/GR/Checkers/ReturnUndefChecker.cpp b/clang/lib/GR/Checkers/ReturnUndefChecker.cpp index f5e417a1f7e..addae5b1c01 100644 --- a/clang/lib/GR/Checkers/ReturnUndefChecker.cpp +++ b/clang/lib/GR/Checkers/ReturnUndefChecker.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class ReturnUndefChecker : @@ -31,7 +32,7 @@ public: }; } -void clang::RegisterReturnUndefChecker(GRExprEngine &Eng) { +void GR::RegisterReturnUndefChecker(GRExprEngine &Eng) { Eng.registerCheck(new ReturnUndefChecker()); } diff --git a/clang/lib/GR/Checkers/StackAddrLeakChecker.cpp b/clang/lib/GR/Checkers/StackAddrLeakChecker.cpp index 1852e24fa59..87f5819cf7e 100644 --- a/clang/lib/GR/Checkers/StackAddrLeakChecker.cpp +++ b/clang/lib/GR/Checkers/StackAddrLeakChecker.cpp @@ -19,6 +19,7 @@ #include "clang/Basic/SourceManager.h" #include "llvm/ADT/SmallString.h" using namespace clang; +using namespace GR; namespace { class StackAddrLeakChecker : public CheckerVisitor<StackAddrLeakChecker> { @@ -40,7 +41,7 @@ private: }; } -void clang::RegisterStackAddrLeakChecker(GRExprEngine &Eng) { +void GR::RegisterStackAddrLeakChecker(GRExprEngine &Eng) { Eng.registerCheck(new StackAddrLeakChecker()); } diff --git a/clang/lib/GR/Checkers/StreamChecker.cpp b/clang/lib/GR/Checkers/StreamChecker.cpp index dc7bd629332..01186b52dfc 100644 --- a/clang/lib/GR/Checkers/StreamChecker.cpp +++ b/clang/lib/GR/Checkers/StreamChecker.cpp @@ -20,6 +20,7 @@ #include "llvm/ADT/ImmutableMap.h" using namespace clang; +using namespace GR; namespace { @@ -104,14 +105,16 @@ private: } // end anonymous namespace namespace clang { +namespace GR { template <> struct GRStateTrait<StreamState> : public GRStatePartialTrait<llvm::ImmutableMap<SymbolRef, StreamState> > { static void *GDMIndex() { return StreamChecker::getTag(); } }; } +} -void clang::RegisterStreamChecker(GRExprEngine &Eng) { +void GR::RegisterStreamChecker(GRExprEngine &Eng) { Eng.registerCheck(new StreamChecker()); } diff --git a/clang/lib/GR/Checkers/UndefBranchChecker.cpp b/clang/lib/GR/Checkers/UndefBranchChecker.cpp index ebeb7a429da..fa3dfa59351 100644 --- a/clang/lib/GR/Checkers/UndefBranchChecker.cpp +++ b/clang/lib/GR/Checkers/UndefBranchChecker.cpp @@ -17,6 +17,7 @@ #include "clang/GR/PathSensitive/Checker.h" using namespace clang; +using namespace GR; namespace { @@ -55,7 +56,7 @@ public: } -void clang::RegisterUndefBranchChecker(GRExprEngine &Eng) { +void GR::RegisterUndefBranchChecker(GRExprEngine &Eng) { Eng.registerCheck(new UndefBranchChecker()); } diff --git a/clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp b/clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp index 78b83944075..8a1c285c173 100644 --- a/clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp +++ b/clang/lib/GR/Checkers/UndefCapturedBlockVarChecker.cpp @@ -18,6 +18,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; namespace { class UndefCapturedBlockVarChecker @@ -31,7 +32,7 @@ public: }; } // end anonymous namespace -void clang::RegisterUndefCapturedBlockVarChecker(GRExprEngine &Eng) { +void GR::RegisterUndefCapturedBlockVarChecker(GRExprEngine &Eng) { Eng.registerCheck(new UndefCapturedBlockVarChecker()); } diff --git a/clang/lib/GR/Checkers/UndefResultChecker.cpp b/clang/lib/GR/Checkers/UndefResultChecker.cpp index df3ad3e9f88..f4d30354e83 100644 --- a/clang/lib/GR/Checkers/UndefResultChecker.cpp +++ b/clang/lib/GR/Checkers/UndefResultChecker.cpp @@ -18,6 +18,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class UndefResultChecker @@ -32,7 +33,7 @@ public: }; } // end anonymous namespace -void clang::RegisterUndefResultChecker(GRExprEngine &Eng) { +void GR::RegisterUndefResultChecker(GRExprEngine &Eng) { Eng.registerCheck(new UndefResultChecker()); } diff --git a/clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp b/clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp index 8ef3986b8d3..8946de39981 100644 --- a/clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp +++ b/clang/lib/GR/Checkers/UndefinedArraySubscriptChecker.cpp @@ -17,6 +17,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class UndefinedArraySubscriptChecker @@ -33,7 +34,7 @@ public: }; } // end anonymous namespace -void clang::RegisterUndefinedArraySubscriptChecker(GRExprEngine &Eng) { +void GR::RegisterUndefinedArraySubscriptChecker(GRExprEngine &Eng) { Eng.registerCheck(new UndefinedArraySubscriptChecker()); } diff --git a/clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp b/clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp index 4273f0cf315..b1eb38704bc 100644 --- a/clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp +++ b/clang/lib/GR/Checkers/UndefinedAssignmentChecker.cpp @@ -17,6 +17,7 @@ #include "clang/GR/PathSensitive/CheckerVisitor.h" using namespace clang; +using namespace GR; namespace { class UndefinedAssignmentChecker @@ -30,7 +31,7 @@ public: }; } -void clang::RegisterUndefinedAssignmentChecker(GRExprEngine &Eng){ +void GR::RegisterUndefinedAssignmentChecker(GRExprEngine &Eng){ Eng.registerCheck(new UndefinedAssignmentChecker()); } diff --git a/clang/lib/GR/Checkers/UnixAPIChecker.cpp b/clang/lib/GR/Checkers/UnixAPIChecker.cpp index 4f1b25f4d85..f4c75f76ab6 100644 --- a/clang/lib/GR/Checkers/UnixAPIChecker.cpp +++ b/clang/lib/GR/Checkers/UnixAPIChecker.cpp @@ -21,6 +21,7 @@ #include <fcntl.h> using namespace clang; +using namespace GR; using llvm::Optional; namespace { @@ -45,7 +46,7 @@ public: }; } //end anonymous namespace -void clang::RegisterUnixAPIChecker(GRExprEngine &Eng) { +void GR::RegisterUnixAPIChecker(GRExprEngine &Eng) { Eng.registerCheck(new UnixAPIChecker()); } diff --git a/clang/lib/GR/Checkers/UnreachableCodeChecker.cpp b/clang/lib/GR/Checkers/UnreachableCodeChecker.cpp index 5f8b229ccb3..0ab97c27d9c 100644 --- a/clang/lib/GR/Checkers/UnreachableCodeChecker.cpp +++ b/clang/lib/GR/Checkers/UnreachableCodeChecker.cpp @@ -29,6 +29,7 @@ #define DEFAULT_CFGBLOCKS 256 using namespace clang; +using namespace GR; namespace { class UnreachableCodeChecker : public Checker { @@ -53,7 +54,7 @@ void *UnreachableCodeChecker::getTag() { return &x; } -void clang::RegisterUnreachableCodeChecker(GRExprEngine &Eng) { +void GR::RegisterUnreachableCodeChecker(GRExprEngine &Eng) { Eng.registerCheck(new UnreachableCodeChecker()); } diff --git a/clang/lib/GR/Checkers/VLASizeChecker.cpp b/clang/lib/GR/Checkers/VLASizeChecker.cpp index 8c4d903c1a1..d4e9d353398 100644 --- a/clang/lib/GR/Checkers/VLASizeChecker.cpp +++ b/clang/lib/GR/Checkers/VLASizeChecker.cpp @@ -21,6 +21,7 @@ #include "clang/GR/PathSensitive/GRExprEngine.h" using namespace clang; +using namespace GR; namespace { class VLASizeChecker : public CheckerVisitor<VLASizeChecker> { @@ -34,7 +35,7 @@ public: }; } // end anonymous namespace -void clang::RegisterVLASizeChecker(GRExprEngine &Eng) { +void GR::RegisterVLASizeChecker(GRExprEngine &Eng) { Eng.registerCheck(new VLASizeChecker()); } diff --git a/clang/lib/GR/Environment.cpp b/clang/lib/GR/Environment.cpp index 5846d6aceed..74ac7f285f4 100644 --- a/clang/lib/GR/Environment.cpp +++ b/clang/lib/GR/Environment.cpp @@ -16,6 +16,7 @@ #include "clang/GR/PathSensitive/GRState.h" using namespace clang; +using namespace GR; SVal Environment::lookupExpr(const Stmt* E) const { const SVal* X = ExprBindings.lookup(E); diff --git a/clang/lib/GR/ExplodedGraph.cpp b/clang/lib/GR/ExplodedGraph.cpp index 6890ebf2fc7..fc46813edc3 100644 --- a/clang/lib/GR/ExplodedGraph.cpp +++ b/clang/lib/GR/ExplodedGraph.cpp @@ -21,6 +21,7 @@ #include <vector> using namespace clang; +using namespace GR; //===----------------------------------------------------------------------===// // Node auditing. diff --git a/clang/lib/GR/FlatStore.cpp b/clang/lib/GR/FlatStore.cpp index 6e70f61be61..d4bd4b83c8f 100644 --- a/clang/lib/GR/FlatStore.cpp +++ b/clang/lib/GR/FlatStore.cpp @@ -12,6 +12,7 @@ #include "llvm/Support/ErrorHandling.h" using namespace clang; +using namespace GR; using llvm::Interval; // The actual store type. @@ -83,7 +84,7 @@ private: }; } // end anonymous namespace -StoreManager *clang::CreateFlatStoreManager(GRStateManager &StMgr) { +StoreManager *GR::CreateFlatStoreManager(GRStateManager &StMgr) { return new FlatStoreManager(StMgr); } diff --git a/clang/lib/GR/FrontendActions.cpp b/clang/lib/GR/FrontendActions.cpp index e3ef60b512e..2097657ca3d 100644 --- a/clang/lib/GR/FrontendActions.cpp +++ b/clang/lib/GR/FrontendActions.cpp @@ -11,6 +11,7 @@ #include "clang/Frontend/CompilerInstance.h" #include "clang/GR/AnalysisConsumer.h" using namespace clang; +using namespace GR; ASTConsumer *AnalysisAction::CreateASTConsumer(CompilerInstance &CI, llvm::StringRef InFile) { diff --git a/clang/lib/GR/GRBlockCounter.cpp b/clang/lib/GR/GRBlockCounter.cpp index 6a1991750df..8a026b1ed4b 100644 --- a/clang/lib/GR/GRBlockCounter.cpp +++ b/clang/lib/GR/GRBlockCounter.cpp @@ -17,6 +17,7 @@ #include "llvm/ADT/ImmutableMap.h" using namespace clang; +using namespace GR; namespace { diff --git a/clang/lib/GR/GRCXXExprEngine.cpp b/clang/lib/GR/GRCXXExprEngine.cpp index 73b8b271ae0..24629551793 100644 --- a/clang/lib/GR/GRCXXExprEngine.cpp +++ b/clang/lib/GR/GRCXXExprEngine.cpp @@ -16,6 +16,7 @@ #include "clang/AST/DeclCXX.h" using namespace clang; +using namespace GR; namespace { class CallExprWLItem { diff --git a/clang/lib/GR/GRCoreEngine.cpp b/clang/lib/GR/GRCoreEngine.cpp index 9f34e89d9ec..092cb460aef 100644 --- a/clang/lib/GR/GRCoreEngine.cpp +++ b/clang/lib/GR/GRCoreEngine.cpp @@ -25,12 +25,15 @@ using llvm::cast; using llvm::isa; using namespace clang; +using namespace GR; // This should be removed in the future. namespace clang { +namespace GR { GRTransferFuncs* MakeCFRefCountTF(ASTContext& Ctx, bool GCEnabled, const LangOptions& lopts); } +} //===----------------------------------------------------------------------===// // Worklist classes for exploration of reachable states. diff --git a/clang/lib/GR/GRExprEngine.cpp b/clang/lib/GR/GRExprEngine.cpp index 8743f71efe3..d6086c76e64 100644 --- a/clang/lib/GR/GRExprEngine.cpp +++ b/clang/lib/GR/GRExprEngine.cpp @@ -37,6 +37,7 @@ #endif using namespace clang; +using namespace GR; using llvm::dyn_cast; using llvm::dyn_cast_or_null; using llvm::cast; diff --git a/clang/lib/GR/GRState.cpp b/clang/lib/GR/GRState.cpp index 164cd8c9669..993fa1a9cb4 100644 --- a/clang/lib/GR/GRState.cpp +++ b/clang/lib/GR/GRState.cpp @@ -19,6 +19,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; // Give the vtable for ConstraintManager somewhere to live. // FIXME: Move this elsewhere. diff --git a/clang/lib/GR/HTMLDiagnostics.cpp b/clang/lib/GR/HTMLDiagnostics.cpp index 0db63c70e2b..0c059ffd1f4 100644 --- a/clang/lib/GR/HTMLDiagnostics.cpp +++ b/clang/lib/GR/HTMLDiagnostics.cpp @@ -26,6 +26,7 @@ #include "llvm/Support/Path.h" using namespace clang; +using namespace GR; //===----------------------------------------------------------------------===// // Boilerplate. @@ -77,7 +78,7 @@ HTMLDiagnostics::HTMLDiagnostics(const std::string& prefix, } PathDiagnosticClient* -clang::createHTMLDiagnosticClient(const std::string& prefix, +GR::createHTMLDiagnosticClient(const std::string& prefix, const Preprocessor &PP) { return new HTMLDiagnostics(prefix, PP); } diff --git a/clang/lib/GR/ManagerRegistry.cpp b/clang/lib/GR/ManagerRegistry.cpp index b1920e1aab5..ab3a0a1ae99 100644 --- a/clang/lib/GR/ManagerRegistry.cpp +++ b/clang/lib/GR/ManagerRegistry.cpp @@ -14,6 +14,7 @@ #include "clang/GR/ManagerRegistry.h" using namespace clang; +using namespace GR; StoreManagerCreator ManagerRegistry::StoreMgrCreator = 0; diff --git a/clang/lib/GR/MemRegion.cpp b/clang/lib/GR/MemRegion.cpp index a1dee535f28..1ae9ccfda52 100644 --- a/clang/lib/GR/MemRegion.cpp +++ b/clang/lib/GR/MemRegion.cpp @@ -22,6 +22,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; //===----------------------------------------------------------------------===// // MemRegion Construction. diff --git a/clang/lib/GR/PathDiagnostic.cpp b/clang/lib/GR/PathDiagnostic.cpp index 17106434236..b496560f3cf 100644 --- a/clang/lib/GR/PathDiagnostic.cpp +++ b/clang/lib/GR/PathDiagnostic.cpp @@ -20,6 +20,7 @@ #include "llvm/Support/Casting.h" using namespace clang; +using namespace GR; using llvm::dyn_cast; using llvm::isa; diff --git a/clang/lib/GR/PlistDiagnostics.cpp b/clang/lib/GR/PlistDiagnostics.cpp index 5b91f6e78ec..35a46bfeede 100644 --- a/clang/lib/GR/PlistDiagnostics.cpp +++ b/clang/lib/GR/PlistDiagnostics.cpp @@ -21,6 +21,7 @@ #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallVector.h" using namespace clang; +using namespace GR; using llvm::cast; typedef llvm::DenseMap<FileID, unsigned> FIDMap; @@ -97,7 +98,7 @@ PlistDiagnostics::PlistDiagnostics(const std::string& output, : OutputFile(output), LangOpts(LO), SubPD(subPD), flushed(false) {} PathDiagnosticClient* -clang::createPlistDiagnosticClient(const std::string& s, const Preprocessor &PP, +GR::createPlistDiagnosticClient(const std::string& s, const Preprocessor &PP, PathDiagnosticClient *subPD) { return new PlistDiagnostics(s, PP.getLangOptions(), subPD); } diff --git a/clang/lib/GR/RangeConstraintManager.cpp b/clang/lib/GR/RangeConstraintManager.cpp index 423777e28d2..378cb6e30f0 100644 --- a/clang/lib/GR/RangeConstraintManager.cpp +++ b/clang/lib/GR/RangeConstraintManager.cpp @@ -23,6 +23,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; namespace { class ConstraintRange {}; } static int ConstraintRangeIndex = 0; @@ -194,12 +195,14 @@ public: typedef llvm::ImmutableMap<SymbolRef,RangeSet> ConstraintRangeTy; namespace clang { +namespace GR { template<> struct GRStateTrait<ConstraintRange> : public GRStatePartialTrait<ConstraintRangeTy> { static inline void* GDMIndex() { return &ConstraintRangeIndex; } }; } +} namespace { class RangeConstraintManager : public SimpleConstraintManager{ @@ -251,8 +254,8 @@ private: } // end anonymous namespace -ConstraintManager* clang::CreateRangeConstraintManager(GRStateManager&, - GRSubEngine &subeng) { +ConstraintManager* GR::CreateRangeConstraintManager(GRStateManager&, + GRSubEngine &subeng) { return new RangeConstraintManager(subeng); } diff --git a/clang/lib/GR/RegionStore.cpp b/clang/lib/GR/RegionStore.cpp index a310b191813..f2c47377d96 100644 --- a/clang/lib/GR/RegionStore.cpp +++ b/clang/lib/GR/RegionStore.cpp @@ -29,6 +29,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; using llvm::Optional; //===----------------------------------------------------------------------===// @@ -403,12 +404,12 @@ public: // Part of public interface to class. // RegionStore creation. //===----------------------------------------------------------------------===// -StoreManager *clang::CreateRegionStoreManager(GRStateManager& StMgr) { +StoreManager *GR::CreateRegionStoreManager(GRStateManager& StMgr) { RegionStoreFeatures F = maximal_features_tag(); return new RegionStoreManager(StMgr, F); } -StoreManager *clang::CreateFieldsOnlyRegionStoreManager(GRStateManager &StMgr) { +StoreManager *GR::CreateFieldsOnlyRegionStoreManager(GRStateManager &StMgr) { RegionStoreFeatures F = minimal_features_tag(); F.enableFields(true); return new RegionStoreManager(StMgr, F); diff --git a/clang/lib/GR/SValBuilder.cpp b/clang/lib/GR/SValBuilder.cpp index 95829c2eab1..daff8ddec60 100644 --- a/clang/lib/GR/SValBuilder.cpp +++ b/clang/lib/GR/SValBuilder.cpp @@ -19,6 +19,7 @@ #include "clang/GR/PathSensitive/BasicValueFactory.h" using namespace clang; +using namespace GR; //===----------------------------------------------------------------------===// // Basic SVal creation. diff --git a/clang/lib/GR/SVals.cpp b/clang/lib/GR/SVals.cpp index deccc4b6656..6040d5e1d5d 100644 --- a/clang/lib/GR/SVals.cpp +++ b/clang/lib/GR/SVals.cpp @@ -16,6 +16,7 @@ #include "clang/Basic/IdentifierTable.h" using namespace clang; +using namespace GR; using llvm::dyn_cast; using llvm::cast; using llvm::APSInt; diff --git a/clang/lib/GR/SimpleConstraintManager.cpp b/clang/lib/GR/SimpleConstraintManager.cpp index 7c246e4d279..991d0e87e4f 100644 --- a/clang/lib/GR/SimpleConstraintManager.cpp +++ b/clang/lib/GR/SimpleConstraintManager.cpp @@ -19,6 +19,8 @@ namespace clang { +namespace GR { + SimpleConstraintManager::~SimpleConstraintManager() {} bool SimpleConstraintManager::canReasonAbout(SVal X) const { @@ -296,4 +298,6 @@ const GRState *SimpleConstraintManager::assumeSymRel(const GRState *state, } // end switch } -} // end of namespace clang +} // end of namespace GR + +} // end of namespace clang diff --git a/clang/lib/GR/SimpleConstraintManager.h b/clang/lib/GR/SimpleConstraintManager.h index 45742ebd7d0..442f0ca9f7c 100644 --- a/clang/lib/GR/SimpleConstraintManager.h +++ b/clang/lib/GR/SimpleConstraintManager.h @@ -11,14 +11,16 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CLANG_ANALYSIS_SIMPLE_CONSTRAINT_MANAGER_H -#define LLVM_CLANG_ANALYSIS_SIMPLE_CONSTRAINT_MANAGER_H +#ifndef LLVM_CLANG_GR_SIMPLE_CONSTRAINT_MANAGER_H +#define LLVM_CLANG_GR_SIMPLE_CONSTRAINT_MANAGER_H #include "clang/GR/PathSensitive/ConstraintManager.h" #include "clang/GR/PathSensitive/GRState.h" namespace clang { +namespace GR { + class SimpleConstraintManager : public ConstraintManager { GRSubEngine &SU; public: @@ -84,6 +86,8 @@ protected: const GRState *assumeAux(const GRState *state, NonLoc Cond, bool Assumption); }; -} // end clang namespace +} // end GR namespace + +} // end clang namespace #endif diff --git a/clang/lib/GR/SimpleSValBuilder.cpp b/clang/lib/GR/SimpleSValBuilder.cpp index 1beb0550e91..03f8e3076ce 100644 --- a/clang/lib/GR/SimpleSValBuilder.cpp +++ b/clang/lib/GR/SimpleSValBuilder.cpp @@ -15,6 +15,7 @@ #include "clang/GR/PathSensitive/GRState.h" using namespace clang; +using namespace GR; namespace { class SimpleSValBuilder : public SValBuilder { @@ -46,7 +47,7 @@ public: }; } // end anonymous namespace -SValBuilder *clang::createSimpleSValBuilder(llvm::BumpPtrAllocator &alloc, +SValBuilder *GR::createSimpleSValBuilder(llvm::BumpPtrAllocator &alloc, ASTContext &context, GRStateManager &stateMgr) { return new SimpleSValBuilder(alloc, context, stateMgr); diff --git a/clang/lib/GR/Store.cpp b/clang/lib/GR/Store.cpp index df13ab42efd..99c06e47452 100644 --- a/clang/lib/GR/Store.cpp +++ b/clang/lib/GR/Store.cpp @@ -16,6 +16,7 @@ #include "clang/AST/CharUnits.h" using namespace clang; +using namespace GR; StoreManager::StoreManager(GRStateManager &stateMgr) : svalBuilder(stateMgr.getSValBuilder()), StateMgr(stateMgr), diff --git a/clang/lib/GR/SymbolManager.cpp b/clang/lib/GR/SymbolManager.cpp index 8dcdb144145..95df3077ca5 100644 --- a/clang/lib/GR/SymbolManager.cpp +++ b/clang/lib/GR/SymbolManager.cpp @@ -18,6 +18,7 @@ #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; void SymExpr::dump() const { dumpToStream(llvm::errs()); diff --git a/clang/lib/GR/TextPathDiagnostics.cpp b/clang/lib/GR/TextPathDiagnostics.cpp index 343b21102b6..c7a9f561d8a 100644 --- a/clang/lib/GR/TextPathDiagnostics.cpp +++ b/clang/lib/GR/TextPathDiagnostics.cpp @@ -16,6 +16,7 @@ #include "clang/Lex/Preprocessor.h" #include "llvm/Support/raw_ostream.h" using namespace clang; +using namespace GR; using namespace llvm; namespace { @@ -47,7 +48,7 @@ public: } // end anonymous namespace PathDiagnosticClient* -clang::createTextPathDiagnosticClient(const std::string& out, +GR::createTextPathDiagnosticClient(const std::string& out, const Preprocessor &PP) { return new TextPathDiagnostics(out, PP.getDiagnostics()); } |