From 224ae1c7737a7ea307cd80475351fdb5ea25b641 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Wed, 16 Dec 2020 15:18:13 +0100 Subject: [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. --- gcc/ada/gnat1drv.adb | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gcc') diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb index 0318194..4bdac5e 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). -- cgit v1.1