From: Eric Botcazou Date: Wed, 16 Dec 2020 14:18:13 +0000 (+0100) Subject: [Ada] Fix internal consistency error with Duration and 32-bit target file X-Git-Tag: basepoints/gcc-13~8044 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=224ae1c7737a7ea307cd80475351fdb5ea25b641;p=thirdparty%2Fgcc.git [Ada] Fix internal consistency error with Duration and 32-bit target file gcc/ada/ * gnat1drv.adb (Adjust_Global_Switches): Force a 32-bit Duration type if the maximum integer size is lower than 64 bits. --- diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb index 0318194e0ddd..4bdac5efd5ee 100644 --- a/gcc/ada/gnat1drv.adb +++ b/gcc/ada/gnat1drv.adb @@ -819,6 +819,12 @@ procedure Gnat1drv is Ttypes.Standard_Long_Long_Integer_Size; end if; + -- Forcefully use a 32-bit Duration with only 32-bit integer types + + if Ttypes.System_Max_Integer_Size < 64 then + Targparm.Duration_32_Bits_On_Target := True; + end if; + -- Finally capture adjusted value of Suppress_Options as the initial -- value for Scope_Suppress, which will be modified as we move from -- scope to scope (by Suppress/Unsuppress/Overflow_Checks pragmas).