OSDN Git Service

2005-11-14 Javier Miranda <miranda@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Nov 2005 13:58:31 +0000 (13:58 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Nov 2005 13:58:31 +0000 (13:58 +0000)
* exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
Build_Stream_Procedure): Add the null-excluding attribute to the first
formal.
This has no semantic meaning under Ada95 mode but it is a
requirement under Ada05 mode.

* par-ch3.adb (P_Access_Definition): Addition of warning message if
the null exclusion is used under Ada95 mode
(P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
(P_Access_Definition): Remove assertion that forbids the use of
the null-exclusion feature in Ada95.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106977 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/exp_strm.adb
gcc/ada/par-ch3.adb

index f6e5d5c..84b321e 100644 (file)
@@ -1447,11 +1447,15 @@ package body Exp_Strm is
       Profile : List_Id;
 
    begin
+      --  (Ada 2005: AI-441): Set the null-excluding attribute because it has
+      --  no semantic meaning in Ada 95 but it is a requirement in Ada2005.
+
       Profile := New_List (
         Make_Parameter_Specification (Loc,
           Defining_Identifier => Make_Defining_Identifier (Loc, Name_S),
           Parameter_Type      =>
           Make_Access_Definition (Loc,
+             Null_Exclusion_Present => True,
              Subtype_Mark => New_Reference_To (
                Class_Wide_Type (RTE (RE_Root_Stream_Type)), Loc))));
 
@@ -1483,6 +1487,9 @@ package body Exp_Strm is
    begin
       --  Construct function specification
 
+      --  (Ada 2005: AI-441): Set the null-excluding attribute because it has
+      --  no semantic meaning in Ada 95 but it is a requirement in Ada2005.
+
       Spec :=
         Make_Function_Specification (Loc,
           Defining_Unit_Name => Fnam,
@@ -1492,6 +1499,7 @@ package body Exp_Strm is
               Defining_Identifier => Make_Defining_Identifier (Loc, Name_S),
               Parameter_Type =>
                 Make_Access_Definition (Loc,
+                  Null_Exclusion_Present => True,
                   Subtype_Mark => New_Reference_To (
                     Class_Wide_Type (RTE (RE_Root_Stream_Type)), Loc)))),
 
@@ -1523,6 +1531,9 @@ package body Exp_Strm is
    begin
       --  Construct procedure specification
 
+      --  (Ada 2005: AI-441): Set the null-excluding attribute because it has
+      --  no semantic meaning in Ada 95 but it is a requirement in Ada2005.
+
       Spec :=
         Make_Procedure_Specification (Loc,
           Defining_Unit_Name => Pnam,
@@ -1532,6 +1543,7 @@ package body Exp_Strm is
               Defining_Identifier => Make_Defining_Identifier (Loc, Name_S),
               Parameter_Type =>
                 Make_Access_Definition (Loc,
+                  Null_Exclusion_Present => True,
                   Subtype_Mark => New_Reference_To (
                     Class_Wide_Type (RTE (RE_Root_Stream_Type)), Loc))),
 
index d4e84a5..037b4e6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2005 Free Software Foundation, Inc.          --
+--          Copyright (C) 1992-2005, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -914,10 +914,13 @@ package body Ch3 is
          return False;
 
       else
+         --  Ada 2005 (AI-441): The qualifier has no semantic meaning in Ada 95
+         --  (all access Parameters Are "not null" in Ada 95).
+
          if Ada_Version < Ada_05 then
             Error_Msg_SP
-              ("null-excluding access is an Ada 2005 extension");
-            Error_Msg_SP ("\unit must be compiled with -gnat05 switch");
+              ("null-excluding access is an Ada 2005 extension?");
+            Error_Msg_SP ("\unit should be compiled with -gnat05 switch?");
          end if;
 
          Scan; --  past NOT
@@ -3813,11 +3816,6 @@ package body Ch3 is
       --  Ada 95
 
       else
-         --  Ada 2005 (AI-254): The null-exclusion present is never present
-         --  in Ada 83 and Ada 95
-
-         pragma Assert (Null_Exclusion_Present = False);
-
          Set_Null_Exclusion_Present (Def_Node, False);
          Set_Subtype_Mark (Def_Node, P_Subtype_Mark);
          No_Constraint;