[LLVMdev] isa<UnaryInstruction> borked in 2.1
Chris Lattner
sabre at nondot.org
Fri Dec 7 20:38:57 PST 2007
On Dec 7, 2007, at 9:44 AM, ST wrote:
> Hi
>
> I just had some code which filtered via isa<UnaryInstruction>.
> Strangely
> enough not only the instructions which inherited UnaryInstructions
> but also:
> GetElemPtrInst, SwitchInst , xor, shl
> where true on isa<UnaryInstruction>. While the first two seem to be
> at least
> semantically ok the latter seem somehow wrong?
Yeah, that's really wrong.
> I didn't find the place where the isa_impl templates where resolved
> to the
> real thing, so i didn't dare to file a bug report... but i would
> happy if
> somebody could tell me... and yes i have looked at Casting.h.
This is implemented with the 'classof' method on the class. Since it
isn't implemented for UnaryInstruction, it is accepting anything that
isa<Instruction>, which is very very wrong.
Thanks for pointing this out, please try this patch:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056054.html
-Chris
More information about the llvm-dev
mailing list