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

Rafael EspĂ­ndola rafael.espindola at gmail.com
Tue Oct 23 05:33:06 PDT 2012


> That sounds like quite an involved patch, since (if I understand things correctly) you'd have to do this during the ABI-fixing stage, which would require determining that the devirtualisation pass did devirtualise the call. As an intermediate step to avoid the crash and get the regression test completing, albeit failing, how about a patch to avoid devirtualising destructors on ARM: would that be ok?

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.

> Cheers,
> Dave

Cheers,
Rafael




More information about the cfe-dev mailing list