https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61245
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |c++ --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- For some reason we create a temporary, probably because the very specific ANNOTATE is inside a cleanup_point: if (<<cleanup_point ANNOTATE_EXPR <SoA<3>::size ((struct SoA *) soa) > i, ivdep>>>) goto <D.28269>; else goto <D.28267>; that is, the wrapped expressions has side-effects. We should build the ANNOTATE_EXPR outside of that cleanup. C++ FE support issue.