https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87634
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2018-10-18 Ever confirmed|0 |1 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- If that is possible then we cannot optimize the dynamic_cast<>. Certainly GCC thinks that bar() clobbers what *a points to but it could possibly thread the case when the dynamic cast fails (but that's too complex for the threader to figure out as profitable).