summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-15 16:19:12 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-15 16:19:12 +0000
commit68fa183e21f353a336f5d6343ce64b57179e7df1 (patch)
tree0922a90c50185c9ebfde2dc85f0649ff0055d342 /gcc
parent1bd3f33a0b7d708333e4771d9cfe12ad4b6db070 (diff)
downloadgcc-68fa183e21f353a336f5d6343ce64b57179e7df1.tar.gz
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 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96511 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/i-c.adb9
-rw-r--r--gcc/ada/sem_ch7.adb2
-rw-r--r--gcc/ada/usage.adb18
3 files changed, 25 insertions, 4 deletions
diff --git a/gcc/ada/i-c.adb b/gcc/ada/i-c.adb
index da8e3146f66..250344977b5 100644
--- a/gcc/ada/i-c.adb
+++ b/gcc/ada/i-c.adb
@@ -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;
diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb
index b56917d4bad..cf1cc2f5025 100644
--- a/gcc/ada/sem_ch7.adb
+++ b/gcc/ada/sem_ch7.adb
@@ -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);
diff --git a/gcc/ada/usage.adb b/gcc/ada/usage.adb
index 4441490ac0c..64bb0b1c892 100644
--- a/gcc/ada/usage.adb
+++ b/gcc/ada/usage.adb
@@ -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;