https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104427
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jsm28 at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Matthias Kretz (Vir) from comment #4) > I can certainly take a look, but so far my GCC internals experience ends > with the C++ front-end. This ICEs in the pass where front-end trees are > transformed into GIMPLE, right? So it would be a pass that is not shared > with the FORTRAN front-end, which surely doesn't have this problem? But in > principle, the two front-ends would have to produce equivalent GIMPLE for > C++: __builtin_assoc_barrier(x + y) - y > FORTRAN: (x + y) - y > right? The issue is somewhere in the C frontend which uses EXCESS_PRECISION_EXPR which it fails to properly lower (in C frontend or c-family code) when the __builtin_assoc_barrier is processed. I don't know the details there, Joseph might. There might be similar issues with C_MAYBE_CONST_EXPR.