diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-09-13 17:21:33 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-09-13 17:21:33 +0000 |
commit | e289d81369914678db386f6aa86faf8f178e245d (patch) | |
tree | 5fb05e9bbab057038b28cf6e4e87696f1c8cc8de /lib/StaticAnalyzer | |
parent | 8c7f4bca64d5128311ce50449ae9d2048c2ffea4 (diff) |
Switch LangOptions over to a .def file that describes header of the
language options. Use that .def file to declare the LangOptions class
and initialize all of its members, eliminating a source of annoying
initialization bugs.
AST serialization changes are next up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139605 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/StaticAnalyzer')
4 files changed, 11 insertions, 11 deletions
diff --git a/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp b/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp index 48f5c8ba01..cb6c1c6280 100644 --- a/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp +++ b/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp @@ -99,7 +99,7 @@ static bool scan_ivar_release(Stmt *S, ObjCIvarDecl *ID, static void checkObjCDealloc(const ObjCImplementationDecl *D, const LangOptions& LOpts, BugReporter& BR) { - assert (LOpts.getGCMode() != LangOptions::GCOnly); + assert (LOpts.getGC() != LangOptions::GCOnly); ASTContext &Ctx = BR.getContext(); const ObjCInterfaceDecl *ID = D->getClassInterface(); @@ -168,7 +168,7 @@ static void checkObjCDealloc(const ObjCImplementationDecl *D, if (!MD) { // No dealloc found. - const char* name = LOpts.getGCMode() == LangOptions::NonGC + const char* name = LOpts.getGC() == LangOptions::NonGC ? "missing -dealloc" : "missing -dealloc (Hybrid MM, non-GC)"; @@ -183,7 +183,7 @@ static void checkObjCDealloc(const ObjCImplementationDecl *D, // dealloc found. Scan for missing [super dealloc]. if (MD->getBody() && !scan_dealloc(MD->getBody(), S)) { - const char* name = LOpts.getGCMode() == LangOptions::NonGC + const char* name = LOpts.getGC() == LangOptions::NonGC ? "missing [super dealloc]" : "missing [super dealloc] (Hybrid MM, non-GC)"; @@ -240,7 +240,7 @@ static void checkObjCDealloc(const ObjCImplementationDecl *D, llvm::raw_string_ostream os(buf); if (requiresRelease) { - name = LOpts.getGCMode() == LangOptions::NonGC + name = LOpts.getGC() == LangOptions::NonGC ? "missing ivar release (leak)" : "missing ivar release (Hybrid MM, non-GC)"; @@ -248,7 +248,7 @@ static void checkObjCDealloc(const ObjCImplementationDecl *D, << "' instance variable was retained by a synthesized property but " "wasn't released in 'dealloc'"; } else { - name = LOpts.getGCMode() == LangOptions::NonGC + name = LOpts.getGC() == LangOptions::NonGC ? "extra ivar release (use-after-release)" : "extra ivar release (Hybrid MM, non-GC)"; @@ -272,7 +272,7 @@ class ObjCDeallocChecker : public Checker< public: void checkASTDecl(const ObjCImplementationDecl *D, AnalysisManager& mgr, BugReporter &BR) const { - if (mgr.getLangOptions().getGCMode() == LangOptions::GCOnly) + if (mgr.getLangOptions().getGC() == LangOptions::GCOnly) return; checkObjCDealloc(cast<ObjCImplementationDecl>(D), mgr.getLangOptions(), BR); } diff --git a/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp b/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp index db5312ddf6..b3b2f31a68 100644 --- a/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp @@ -75,6 +75,6 @@ void NSAutoreleasePoolChecker::checkPreObjCMessage(ObjCMessage msg, } void ento::registerNSAutoreleasePoolChecker(CheckerManager &mgr) { - if (mgr.getLangOptions().getGCMode() != LangOptions::NonGC) + if (mgr.getLangOptions().getGC() != LangOptions::NonGC) mgr.registerChecker<NSAutoreleasePoolChecker>(); } diff --git a/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp b/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp index cf06f54c70..97151337a7 100644 --- a/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp +++ b/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp @@ -1772,7 +1772,7 @@ void CFRefReport::addGCModeDescription(const LangOptions &LOpts, bool GCEnabled) { const char *GCModeDescription = 0; - switch (LOpts.getGCMode()) { + switch (LOpts.getGC()) { case LangOptions::GCOnly: assert(GCEnabled); GCModeDescription = "Code is compiled to only use garbage collection"; @@ -2354,7 +2354,7 @@ public: return leakWithinFunctionGC.get(); } else { if (!leakWithinFunction) { - if (LOpts.getGCMode() == LangOptions::HybridGC) { + if (LOpts.getGC() == LangOptions::HybridGC) { leakWithinFunction.reset(new LeakWithinFunction("Leak of object when " "not using garbage " "collection (GC) in " @@ -2376,7 +2376,7 @@ public: return leakAtReturnGC.get(); } else { if (!leakAtReturn) { - if (LOpts.getGCMode() == LangOptions::HybridGC) { + if (LOpts.getGC() == LangOptions::HybridGC) { leakAtReturn.reset(new LeakAtReturn("Leak of returned object when " "not using garbage collection " "(GC) in dual GC/non-GC code")); diff --git a/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp b/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp index 69a87fbd21..76ca477794 100644 --- a/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp +++ b/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp @@ -336,7 +336,7 @@ static void ActionExprEngine(AnalysisConsumer &C, AnalysisManager &mgr, static void RunPathSensitiveChecks(AnalysisConsumer &C, AnalysisManager &mgr, Decl *D) { - switch (mgr.getLangOptions().getGCMode()) { + switch (mgr.getLangOptions().getGC()) { default: llvm_unreachable("Invalid GC mode."); case LangOptions::NonGC: |