https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98389
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #4) > The demangler does the right, although confusing thing. Because the Itanium > ABI says that g is __float128: > ::= f # float > ::= d # double > ::= e # long double, __float80 > ::= g # __float128 So if we had a time machine we could mangle double-double as 'u8__ibm128' and then 'g' could be used for __float128 aka __ieee128, and the demangled names would not be wildly confusing. But there's no way to do that now. You just have to know that when compiler errors talk about __float128 they mean __ieee128 and when linker errors talk about __float128 they mean __ibm128.