[Ada] updates related to -gnat95 and -gnat05 switches

Arnaud Charlet charlet@adacore.com
Tue Mar 15 15:42:00 GMT 2005


Tested on i686-linux. Committed on mainline.

Minor updates related to the handling of -gnat95 and -gnat05 switches.

2005-03-08  Robert Dewar  <dewar@adacore.com>

	* usage.adb: Add missing lines for -gnat95 and -gnat05 switches

	* sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag

	* i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95

-------------- next part --------------
Index: usage.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/usage.adb,v
retrieving revision 1.21
diff -u -p -r1.21 usage.adb
--- usage.adb	10 Feb 2005 13:56:59 -0000	1.21
+++ usage.adb	15 Mar 2005 13:56:37 -0000
@@ -26,6 +26,7 @@
 
 with Hostparm;
 with Namet;          use Namet;
+with Opt;            use Opt;
 with Osint;          use Osint;
 with Output;         use Output;
 with System.WCh_Con; use System.WCh_Con;
@@ -466,9 +467,24 @@ begin
    Write_Switch_Char ("83");
    Write_Line ("Enforce Ada 83 restrictions");
 
+   --  Line for -gnat95 switch
+
+   Write_Switch_Char ("95");
+
+   if Ada_Version_Default = Ada_95 then
+      Write_Line ("Ada 95 mode (default)");
+   else
+      Write_Line ("Enforce Ada 95 restrictions");
+   end if;
+
    --  Line for -gnat05 switch
 
    Write_Switch_Char ("05");
-   Write_Line ("Allow Ada 2005 extensions");
+
+   if Ada_Version_Default = Ada_05 then
+      Write_Line ("Ada 2005 mode (default)");
+   else
+      Write_Line ("Allow Ada 2005 extensions");
+   end if;
 
 end Usage;
Index: sem_ch7.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/sem_ch7.adb,v
retrieving revision 1.20
diff -u -p -r1.20 sem_ch7.adb
--- sem_ch7.adb	10 Feb 2005 13:56:10 -0000	1.20
+++ sem_ch7.adb	15 Mar 2005 13:56:37 -0000
@@ -1685,6 +1685,8 @@ package body Sem_Ch7 is
                                                                       (Full));
          Set_Is_Volatile       (Priv, Is_Volatile       (Full));
          Set_Treat_As_Volatile (Priv, Treat_As_Volatile (Full));
+         Set_Is_Ada_2005       (Priv, Is_Ada_2005       (Full));
+         --  Why is atomic not copied here ???
 
          if Referenced (Full) then
             Set_Referenced (Priv);
Index: i-c.adb
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ada/i-c.adb,v
retrieving revision 1.6
diff -u -p -r1.6 i-c.adb
--- i-c.adb	10 Feb 2005 13:50:25 -0000	1.6
+++ i-c.adb	15 Mar 2005 13:56:37 -0000
@@ -504,7 +504,8 @@ package body Interfaces.C is
          --  char_array. The lower bound of this array is required to be zero
          --  (RM B.3(50)) but that is of course impossible given that size_t
          --  is unsigned. According to Ada 2005 AI-258, the result is to raise
-         --  Constraint_Error.
+         --  Constraint_Error. This is also the appropriate behavior in Ada 95,
+         --  since nothing else makes sense.
 
          if Item'Length = 0 then
             raise Constraint_Error;
@@ -593,7 +594,8 @@ package body Interfaces.C is
          --  wchar_array. The lower bound of this array is required to be zero
          --  (RM B.3(50)) but that is of course impossible given that size_t
          --  is unsigned. According to Ada 2005 AI-258, the result is to raise
-         --  Constraint_Error.
+         --  Constraint_Error. This is also the appropriate behavior in Ada 95,
+         --  since nothing else makes sense.
 
          if Item'Length = 0 then
             raise Constraint_Error;
@@ -680,7 +682,8 @@ package body Interfaces.C is
          --  char16_array. The lower bound of this array is required to be zero
          --  (RM B.3(50)) but that is of course impossible given that size_t
          --  is unsigned. According to Ada 2005 AI-258, the result is to raise
-         --  Constraint_Error.
+         --  Constraint_Error. This is also the appropriate behavior in Ada 95,
+         --  since nothing else makes sense.
 
          if Item'Length = 0 then
             raise Constraint_Error;


More information about the Gcc-patches mailing list