http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59622
--- Comment #16 from Jan Hubicka <hubicka at ucw dot cz> --- > So, do we want something like this? For incompatible return type or argument > types punt, unless it is the __builtin_unreachable/__cxa_pure_virtual case > which can be handled the same, and similarly punt for inplace if the call > flags > would change? Punting on methods with wrong return/parameter types seems resonable. We probably could/should warn here, since it almost definitely means ODR volation. I would definitely try some code with warning on - type compatibility is splipperly, but testing in sense of useless_ssa_conversion should pass for all valid programs. Handling unreacahble/cxa_pure_virtual separately seems sane, too. I am not too happy about giving up with inplace folding given that we forget to fold statements later, but that is probably for indepenedent PR/patch. So this approach is fine for me. Thanks for looking into this! Honza