[LLVMdev] Undefined behavior in Operator class?

Caldarale, Charles R Chuck.Caldarale at unisys.com
Sun Oct 7 09:32:49 PDT 2012


> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Sean Silva
> Subject: Re: [LLVMdev] Undefined behavior in Operator class?

> > > In this function, the `this` pointer is not pointing at an Operator
> > > object. That's undefined behavior, right?

> > Yes.

> Well then I guess the next step is how to fix it.

I tried removing the method and rebuilding.  The resulting compilation errors were easily fixed by changing the few occurrences in:
	include/llvm/Support/PatternMatch.h
	lib/Analysis/BasicAliasAnalysis.cpp
	lib/Analysis/ScalarEvolution.cpp
	lib/Analysis/ValueTracking.cpp
	lib/CodeGen/ScheduleDAGInstrs.cpp
	lib/CodeGen/SelectionDAG/FastISel.cpp
to use the static variant of Operator::getOpcode().  (This was with 3.1; trunk may be different.)

I suppose one could also modify the non-static method to invoke the static one, passing "this" as the argument, but that just doesn't feel right...

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY MATERIAL and is thus for use only by the intended recipient. If you received this in error, please contact the sender and delete the e-mail and its attachments from all computers.





More information about the llvm-dev mailing list