[cfe-dev] devirtualisation appears to crash clang on covariant functions on ARM

David Tweed david.tweed at arm.com
Tue Oct 23 06:11:14 PDT 2012


|I was under the impression that you could build the cast at the end of
| CodeGenFunction::EmitCXXMemberCallExpr. Instead of
|
| return EmitCXXMemberCall...
|
| you would have
|
| foo =  return EmitCXXMemberCall
|if (needs cast)
|  foo = cast foo;
|return foo;
|
|wouldn't that work? I will let John comment about the option of
|disabling devirtualization of destructorns on ARM.

Ah, this looks like a slightly smaller task than I thought. I'll see if I can figure out some more of the steps in implementing this.

I'm actually picking up bits and pieces about the clang implementation starting from a base of zero knowledge; I'm basically an LLVM person who has the goal of fixing the historically failing regression tests (both LLVM and clang) on the ARM platform.

Thanks for the insight about the code,
Cheers,
Dave







More information about the cfe-dev mailing list