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;