https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112958
Bug ID: 112958 Summary: [14 regression] s-exnllf.ads etc. don't compile on 32-bit FreeBSD/x86 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: andreast at gcc dot gnu.org, dkm at gcc dot gnu.org Target Milestone: --- Host: x86_64-unknown-freebsd14.0 Target: x86_64-unknown-freebsd14.0 Build: x86_64-unknown-freebsd14.0 On current trunk, at least libgnat sources don't compile on 32-bit FreeBSD/x86: s-exnllf.ads:38:04: warning: in instantiation at s-dorepr.adb:82 [enabled by def ault] s-exnllf.ads:38:04: warning: in instantiation at s-exponr.adb:54 [enabled by def ault] s-exnllf.ads:38:04: warning: "Temp" overlays smaller object [enabled by default] s-exnllf.ads:38:04: warning: program execution may be erroneous [enabled by defa ult] s-exnllf.ads:38:04: warning: size of "Temp" is 96 [enabled by default] s-exnllf.ads:38:04: warning: size of "Rep64" is 64 [enabled by default] make[9]: *** [../gcc-interface/Makefile:306: s-exnllf.o] Error 1 -imgllf.ads:49:04: warning: in instantiation at s-dorepr.adb:82 [enabled by def ault] s-imgllf.ads:49:04: warning: in instantiation at s-imager.adb:61 [enabled by def ault] s-imgllf.ads:49:04: warning: "Temp" overlays smaller object [enabled by default] s-imgllf.ads:49:04: warning: program execution may be erroneous [enabled by defa ult] s-imgllf.ads:49:04: warning: size of "Temp" is 96 [enabled by default] s-imgllf.ads:49:04: warning: size of "Rep64" is 64 [enabled by default] make[9]: *** [../gcc-interface/Makefile:309: s-imgllf.o] Error 1 I suspect this is due to to FreeBSD/x86's unusual long double format in the 32-bit case: i386/freebsd.h has #define TARGET_96_ROUND_53_LONG_DOUBLE (!TARGET_64BIT)