]> granicus.if.org Git - clang/commitdiff
don't poke at TranslationUnit directly
authorChris Lattner <sabre@nondot.org>
Sat, 28 Mar 2009 03:29:40 +0000 (03:29 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 28 Mar 2009 03:29:40 +0000 (03:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67900 91177308-0d34-0410-b5e6-96231b3b80d8

tools/clang-cc/AnalysisConsumer.cpp

index f19ff1787ebe5b8d9dd23fdda842d95d96251031..4594a71492912c81109532c996d265938b86e71c 100644 (file)
@@ -460,10 +460,14 @@ void AnalysisConsumer::HandleTranslationUnit(TranslationUnit& TU) {
       (*I)(mgr);  
   }
 
-  if (!ObjCImplementationActions.empty())
-    for (TranslationUnit::iterator I = TU.begin(), E = TU.end(); I!=E; ++I)
+  if (!ObjCImplementationActions.empty()) {
+    TranslationUnitDecl *TUD = TU.getContext().getTranslationUnitDecl();
+    
+    for (DeclContext::decl_iterator I = TUD->decls_begin(),E = TUD->decls_end();
+         I != E; ++I)
       if (ObjCImplementationDecl* ID = dyn_cast<ObjCImplementationDecl>(*I))
         HandleCode(ID, 0, ObjCImplementationActions);
+  }
   
   // Delete the PathDiagnosticClient here just in case the AnalysisConsumer
   // object doesn't get released.  This will cause any side-effects in the