Hi, I've written a CallGraphSCCPass that compiles successfully, but when I try to run it with opt, it fails: Symbol not found: __ZTIN4llvm16CallGraphSCCPassE If I simply change the pass to be a FunctionPass or a ModulePass, opt can run it just fine. I'm on Mac OS X, so I thought perhaps I was running into bug #2771 [1], but I'm getting the same error on Ubuntu Linux: undefined symbol: _ZTIN4llvm16CallGraphSCCPassE As before, the Linux environment has no problems running a FunctionPass or ModulePass. It's only CallGraphSCCPass that gives me trouble. This is with a plain-vanilla install of the LLVM 2.7 release. Is there something special about LLVM's handling of CallGraphSCCPass that would explain this error? Thanks, Trevor [1] http://llvm.org/bugs/show_bug.cgi?id=2771
Hi Trevor,> I've written a CallGraphSCCPass that compiles successfully, but when I > try to run it with opt, it fails: > > Symbol not found: __ZTIN4llvm16CallGraphSCCPassE$ c++filt _ZTIN4llvm16CallGraphSCCPassE typeinfo for llvm::CallGraphSCCPass LLVM TOT has RTTI turned off as far as I know (not sure about 2.7). Are you making use of RTTI? Ciao, Duncan.
On Jul 12, 2010, at 11:37 PM, Duncan Sands wrote:> $ c++filt _ZTIN4llvm16CallGraphSCCPassE > typeinfo for llvm::CallGraphSCCPass > > LLVM TOT has RTTI turned off as far as I know (not sure about 2.7). > Are you > making use of RTTI?I'm not explicitly using it, although my pass was using Boost, a portion of which requires RTTI, so I had enabled RTTI in my pass's Makefile. I have now disabled RTTI in my pass, and I even rebuilt LLVM with RTTI enabled (REQUIRES_RTTI=1), but I'm still getting the same error. Any other suggestions? Thanks, Trevor P.S. What does TOT stand for?
On Jul 12, 2010, at 11:37 PM, Duncan Sands wrote:> $ c++filt _ZTIN4llvm16CallGraphSCCPassE > typeinfo for llvm::CallGraphSCCPass > > LLVM TOT has RTTI turned off as far as I know (not sure about 2.7). > Are you > making use of RTTI?My pass uses exceptions, and that turned out to be the problem. Rebuilding LLVM with exception handling support (REQUIRES_EH=1) fixed it. Not sure why this was only an issue with CallGraphSCCPass, though. Thanks, Trevor