diff mbox series

[Ada] Clarify error for unsupported ELIMINATED overflow mode

Message ID 20210617143310.GA9239@adacore.com
State New
Headers show
Series [Ada] Clarify error for unsupported ELIMINATED overflow mode | expand

Commit Message

Pierre-Marie de Rodat June 17, 2021, 2:33 p.m. UTC
The ELIMINATED overflow checking mode, enabled either by a pragma or a
command line switch, requires Long_Long_Integer'Size to 64 (because of
the assumptions in the System.Bignums library). GNAT emitted a cryptic
error when this requirement was not satisfied, e.g. when using a target
configuration file with a characteristics of a non-GNAT compiler.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

	* sem_prag.adb (Get_Overflow_Mode): Reword error message.
	* switch-c.adb (Get_Overflow_Mode): Likewise.
diff mbox series

Patch

diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -20418,7 +20418,8 @@  package body Sem_Prag is
                elsif Chars (Argx) = Name_Eliminated then
                   if Ttypes.Standard_Long_Long_Integer_Size /= 64 then
                      Error_Pragma_Arg
-                       ("Eliminated not implemented on this target", Argx);
+                       ("Eliminated requires Long_Long_Integer'Size = 64",
+                        Argx);
                   else
                      return Eliminated;
                   end if;


diff --git a/gcc/ada/switch-c.adb b/gcc/ada/switch-c.adb
--- a/gcc/ada/switch-c.adb
+++ b/gcc/ada/switch-c.adb
@@ -112,7 +112,7 @@  package body Switch.C is
 
          when '3' =>
             if Standard_Long_Long_Integer_Size /= 64 then
-               Bad_Switch ("-gnato3 not implemented for this configuration");
+               Bad_Switch ("-gnato3 requires Long_Long_Integer'Size = 64");
             else
                return Eliminated;
             end if;