[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