[llvm-commits] [llvm] r96576 - /llvm/trunk/tools/opt/opt.cpp

Benjamin Kramer benny.kra at googlemail.com
Thu Feb 18 04:57:06 PST 2010


Author: d0k
Date: Thu Feb 18 06:57:05 2010
New Revision: 96576

URL: http://llvm.org/viewvc/llvm-project?rev=96576&view=rev
Log:
Avoid a dangling pointer dereference, PassManager::add can delete the Pass.

Modified:
    llvm/trunk/tools/opt/opt.cpp

Modified: llvm/trunk/tools/opt/opt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=96576&r1=96575&r2=96576&view=diff

==============================================================================
--- llvm/trunk/tools/opt/opt.cpp (original)
+++ llvm/trunk/tools/opt/opt.cpp Thu Feb 18 06:57:05 2010
@@ -475,10 +475,11 @@
       errs() << argv[0] << ": cannot create pass: "
              << PassInf->getPassName() << "\n";
     if (P) {
+      PassKind Kind = P->getPassKind();
       addPass(Passes, P);
 
       if (AnalyzeOnly) {
-        switch (P->getPassKind()) {
+        switch (Kind) {
         case PT_BasicBlock:
           Passes.add(new BasicBlockPassPrinter(PassInf));
           break;





More information about the llvm-commits mailing list