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)

Reply via email to