-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Description
Bugzilla Link | 1366 |
Resolution | DUPLICATE |
Resolved on | Feb 22, 2010 12:50 |
Version | trunk |
OS | Linux |
Reporter | LLVM Bugzilla Contributor |
Extended Description
The following piece of code:
#include "llvm/Pass.h"
#include "llvm/Analysis/Dominators.h"
#include "llvm/Analysis/PostDominators.h"
using namespace llvm;
class PathExpressions : public FunctionPass {
public:
virtual void getAnalsisUsage(AnalysisUsage &AU) const {
AU.addRequired<DominatorTree>();
AU.addRequired<PostDominatorTree>();
}
virtual bool runOnFunction(Function &F) {
DominatorTree &DT = getAnalysis<DominatorTree>();
PostDominatorTree &PDT = getAnalysis<PostDominatorTree>();
return false;
}
};
namespace {
RegisterPass P("pathexpr", "Compute path expressions.");
} // End of anonymous namespace
when compiled as a loadable module triggers an assertion:
opt -load=out.so -disable-output -disable-verify -debug-pass=Details -pathexpr
anybc.bc
Pass Arguments: -pathexpr
Target Data Layout
ModulePass Manager
FunctionPass Manager
Compute path expressions.
-- Compute path expressions.
0x114f2b0 Executing Pass 'Function Pass Manager' on Module 'anybc.bc...
0xe32bf0 Executing Pass 'Compute path expressions.' on Function
'control_printf...
opt: /work/projects/llvm/include/llvm/PassAnalysisSupport.h:191: AnalysisType&
llvm::Pass::getAnalysisID(const llvm::PassInfo*) const [with AnalysisType =
llvm::DominatorTree]: Assertion `ResultPass && "getAnalysis*() called on an
analysis that was not " "'required' by pass!"' failed.
opt((anonymous namespace)::PrintStackTrace()+0x17)[0xa20ba7]
opt((anonymous namespace)::SignalHandler(int)+0x10e)[0xa20e76]
Domagoj