[LLVMdev] Strange Multiple Inheritance Errors Using LLVM 2.7
Chris Lattner
clattner at apple.com
Thu Mar 25 09:33:02 PDT 2010
On Mar 25, 2010, at 8:18 AM, John Criswell wrote:
> Dear All,
>
> I'm currently upgrading SAFECode to the LLVM 2.7 API. I'm getting some
> strange errors in LLVM Passes that use analysis groups and multiple
> inheritance.
Hey John,
This is almost certainly due to the "eliminate rtti" work. You probably need to implement "getAdjustedAnalysisPointer" methods in your passes, see BasicAliasAnalysis or BasicCallGraph as examples.
-Chris
>
> To create analysis groups in LLVM 2.6, I would first create a base class
> for the analysis group and then another class that inherited from both
> ModulePass and the analysis group base class. That worked in LLVM 2.6,
> but now in LLVM 2.7 I'm getting strange behavior. In particular, I'm
> seeing the wrong functions called when virtual methods of my passes are
> called. For example, when a SAFECode pass would call the getDSGraph()
> method of the PoolAllocateSimple pass, the releaseMemory() method would
> be called instead.
>
> Has anyone else seen this really bizarre behavior or know what might be
> causing it? Eliminating multiple inheritance seems to fix the problem,
> but it seems to introduce other problems when chaining analysis passes
> of the same group together.
>
> I see this behavior both on Mac OS X and Linux.
>
> -- John T.
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list