https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107080
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2022-09-29 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Here is a reduced testcase: ``` template<typename T, typename T1> int f (T x, T1 y) throw () { return 3; } int main () { return (f (0.0f64x, 0.0f64x) + f (0.0f64x, 0.0L)) != 6; } ``` This ICEs and with release checking it produces an assembler error: ``` /tmp/ccJDRaEi.s: Assembler messages: /tmp/ccJDRaEi.s:93: Error: symbol `_Z1fIeeEiT_T0_' is already defined ``` I can only assume the issue is _Float64x is not treated the same as long double for type comparison but is treated the same for mangling (which is why I marked it as an ABI issue).