2011-08-04 Javier Miranda <miranda@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Aug 2011 08:52:52 +0000 (08:52 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Aug 2011 08:52:52 +0000 (08:52 +0000)
* exp_strm.adb (Build_Array_Input_Function): if the array type is
constrained, do not attempt to build a subtype of it.

2011-08-04  Yannick Moy  <moy@adacore.com>

* errout.ads Change comments: remove 'R'M as an example where quotes
are needed; add ALFA as another case where quotes are not needed
* erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
case where quotes are not needed.
* sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
Remove all occurrences of 'A'L'F'A

2011-08-04  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb: check legality of invariant pragma.

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

14 files changed:
gcc/ada/ChangeLog
gcc/ada/errout.ads
gcc/ada/erroutc.adb
gcc/ada/exp_strm.adb
gcc/ada/sem_ch11.adb
gcc/ada/sem_ch13.adb
gcc/ada/sem_ch2.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_ch4.adb
gcc/ada/sem_ch5.adb
gcc/ada/sem_ch6.adb
gcc/ada/sem_ch9.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_res.adb

index 179b12e..278186f 100644 (file)
@@ -1,3 +1,22 @@
+2011-08-04  Javier Miranda  <miranda@adacore.com>
+
+       * exp_strm.adb (Build_Array_Input_Function): if the array type is
+       constrained, do not attempt to build a subtype of it.
+
+2011-08-04  Yannick Moy  <moy@adacore.com>
+
+       * errout.ads Change comments: remove 'R'M as an example where quotes
+       are needed; add ALFA as another case where quotes are not needed
+       * erroutc.adb (Set_Msg_Insertion_Reserved_Word): add ALFA as another
+       case where quotes are not needed.
+       * sem_ch11.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb,
+       sem_ch5.adb, sem_ch6.adb, sem_ch9.adb, sem_prag.adb, sem_res.adb:
+       Remove all occurrences of 'A'L'F'A
+
+2011-08-04  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_ch13.adb: check legality of invariant pragma.
+
 2011-08-04  Eric Botcazou  <ebotcazou@adacore.com>
 
        * bindgen.adb: Add comments.
index 2e850f8..ef3dcc4 100644 (file)
@@ -319,8 +319,8 @@ package Errout is
    --      Precedes a character which is placed literally into the message.
    --      Used to insert characters into messages that are one of the
    --      insertion characters defined here. Also useful in inserting
-   --      sequences of upper case letters (e.g. RM) which are not to be
-   --      treated as keywords.
+   --      sequences of upper case letters which are not to be treated as
+   --      keywords.
 
    --    Insertion character \ (Backslash: continuation message)
    --      Indicates that the message is a continuation of a message
@@ -494,7 +494,9 @@ package Errout is
 
    --  Note: a special exception is that RM is never treated as a keyword
    --  but instead is copied literally into the message, this avoids the
-   --  need for writing 'R'M for all reference manual quotes.
+   --  need for writing 'R'M for all reference manual quotes. A similar
+   --  exception is applied to the occurrence of the string ALFA used in
+   --  error messages about the ALFA subset of Ada.
 
    --  In the case of names, the default mode for the error text processor
    --  is to surround the name by quotation marks automatically. The case
index 4c450f6..4ea4a16 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2010, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2011, 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- --
@@ -21,7 +21,7 @@
 -- GNAT was originally developed  by the GNAT team at  New York University. --
 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
 --                                                                          --
-------------------------------------------------------------------------------
+-------------------------------------------R-----------------------------------
 
 --  Warning! Error messages can be generated during Gigi processing by direct
 --  calls to error message routines, so it is essential that the processing
@@ -955,7 +955,12 @@ package body Erroutc is
       if Name_Len = 2 and then Name_Buffer (1 .. 2) = "RM" then
          Set_Msg_Name_Buffer;
 
-      --  Not RM: case appropriately and add surrounding quotes
+      --  We make a similar exception for ALFA
+
+      elsif Name_Len = 4 and then Name_Buffer (1 .. 4) = "ALFA" then
+         Set_Msg_Name_Buffer;
+
+      --  Neither RM nor ALFA: case appropriately and add surrounding quotes
 
       else
          Set_Casing (Keyword_Casing (Flag_Source), All_Lower_Case);
index 28e97c5..d3d4751 100644 (file)
@@ -195,15 +195,14 @@ package body Exp_Strm is
          Next_Index (Indx);
       end loop;
 
-      --  If the first subtype is constrained, use it directly. Otherwise
-      --  build a subtype indication with the proper bounds.
+      --  If the type is constrained, use it directly. Otherwise build a
+      --  subtype indication with the proper bounds.
 
-      if Is_Constrained (Stream_Base_Type (Typ)) then
+      if Is_Constrained (Typ) then
          Odecl :=
            Make_Object_Declaration (Loc,
              Defining_Identifier => Make_Defining_Identifier (Loc, Name_V),
-             Object_Definition   =>
-               New_Occurrence_Of (Stream_Base_Type (Typ), Loc));
+             Object_Definition   => New_Occurrence_Of (Typ, Loc));
       else
          Odecl :=
            Make_Object_Declaration (Loc,
index 4ae09e1..cf7f50e 100644 (file)
@@ -434,7 +434,7 @@ package body Sem_Ch11 is
       P              : Node_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("raise statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("raise statement is not in ALFA", N);
       Check_SPARK_Restriction ("raise statement is not allowed", N);
       Check_Unreachable_Code (N);
 
index c9f78fa..3351cde 100644 (file)
@@ -1163,6 +1163,15 @@ package body Sem_Ch13 is
                when Aspect_Invariant      |
                     Aspect_Type_Invariant =>
 
+                  --  Check placement legality
+
+                  if not Nkind_In (N, N_Private_Type_Declaration,
+                                      N_Private_Extension_Declaration)
+                  then
+                     Error_Msg_N
+                       ("invariant aspect must apply to a private type", N);
+                  end if;
+
                   --  Construct the pragma
 
                   Aitem :=
index d6db4d9..d439396 100644 (file)
@@ -81,7 +81,7 @@ package body Sem_Ch2 is
            and then Is_Object (Entity (N))
            and then not Is_In_ALFA (Entity (N))
          then
-            Mark_Non_ALFA_Subprogram ("object is not in 'A'L'F'A", N);
+            Mark_Non_ALFA_Subprogram ("object is not in ALFA", N);
          end if;
       end if;
    end Analyze_Identifier;
index 4cf4c0b..988db9a 100644 (file)
@@ -3053,9 +3053,9 @@ package body Sem_Ch3 is
       --  not aliased.
 
       if not Is_In_ALFA (T) then
-         Mark_Non_ALFA_Subprogram ("object type is not in 'A'L'F'A", N);
+         Mark_Non_ALFA_Subprogram ("object type is not in ALFA", N);
       elsif Aliased_Present (N) then
-         Mark_Non_ALFA_Subprogram ("ALIASED is not in 'A'L'F'A", N);
+         Mark_Non_ALFA_Subprogram ("ALIASED is not in ALFA", N);
       else
          Set_Is_In_ALFA (Id);
       end if;
index 44cda40..6aa3ae9 100644 (file)
@@ -350,7 +350,7 @@ package body Sem_Ch4 is
 
    procedure Analyze_Aggregate (N : Node_Id) is
    begin
-      Mark_Non_ALFA_Subprogram ("aggregate is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("aggregate is not in ALFA", N);
 
       if No (Etype (N)) then
          Set_Etype (N, Any_Composite);
@@ -371,7 +371,7 @@ package body Sem_Ch4 is
       C        : Node_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("allocator is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("allocator is not in ALFA", N);
       Check_SPARK_Restriction ("allocator is not allowed", N);
 
       --  Deal with allocator restrictions
@@ -989,9 +989,9 @@ package body Sem_Ch4 is
          --  ALFA, then the call is not in ALFA.
 
          if not Is_Subprogram (Nam_Ent) then
-            Mark_Non_ALFA_Subprogram ("indirect call is not in 'A'L'F'A", N);
+            Mark_Non_ALFA_Subprogram ("indirect call is not in ALFA", N);
          elsif not Is_In_ALFA (Nam_Ent) then
-            Mark_Non_ALFA_Subprogram ("call to subprogram not in 'A'L'F'A", N);
+            Mark_Non_ALFA_Subprogram ("call to subprogram not in ALFA", N);
          end if;
 
          Analyze_One_Call (N, Nam_Ent, True, Success);
@@ -1370,7 +1370,7 @@ package body Sem_Ch4 is
       L  : Node_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("concatenation is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("concatenation is not in ALFA", N);
 
       Candidate_Type := Empty;
 
@@ -1541,7 +1541,7 @@ package body Sem_Ch4 is
 
       if Present (Else_Expr) and then not In_Pre_Post_Expression then
          Mark_Non_ALFA_Subprogram
-           ("this form of conditional expression is not in 'A'L'F'A", N);
+           ("this form of conditional expression is not in ALFA", N);
       end if;
 
       if Comes_From_Source (N) then
@@ -1740,7 +1740,7 @@ package body Sem_Ch4 is
    --  Start of processing for Analyze_Explicit_Dereference
 
    begin
-      Mark_Non_ALFA_Subprogram ("explicit dereference is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("explicit dereference is not in ALFA", N);
       Check_SPARK_Restriction ("explicit dereference is not allowed", N);
 
       Analyze (P);
@@ -2623,7 +2623,7 @@ package body Sem_Ch4 is
 
    procedure Analyze_Null (N : Node_Id) is
    begin
-      Mark_Non_ALFA_Subprogram ("null is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("null is not in ALFA", N);
       Check_SPARK_Restriction ("null is not allowed", N);
 
       Set_Etype (N, Any_Access);
@@ -3255,7 +3255,7 @@ package body Sem_Ch4 is
       T    : Entity_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("qualified expression is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("qualified expression is not in ALFA", N);
 
       Analyze_Expression (Expr);
 
@@ -3315,7 +3315,7 @@ package body Sem_Ch4 is
       Iterator : Node_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("quantified expression is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("quantified expression is not in ALFA", N);
       Check_SPARK_Restriction ("quantified expression is not allowed", N);
 
       Set_Etype  (Ent,  Standard_Void_Type);
@@ -3481,7 +3481,7 @@ package body Sem_Ch4 is
       Acc_Type : Entity_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("reference is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("reference is not in ALFA", N);
 
       Analyze (P);
 
@@ -4347,7 +4347,7 @@ package body Sem_Ch4 is
    --  Start of processing for Analyze_Slice
 
    begin
-      Mark_Non_ALFA_Subprogram ("slice is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("slice is not in ALFA", N);
       Check_SPARK_Restriction ("slice is not allowed", N);
 
       Analyze (P);
@@ -4418,7 +4418,7 @@ package body Sem_Ch4 is
 
       if not (Is_Scalar_Type (Etype (Expr)) and then Is_Scalar_Type (T)) then
          Mark_Non_ALFA_Subprogram
-           ("only type conversion between scalar types is in 'A'L'F'A", N);
+           ("only type conversion between scalar types is in ALFA", N);
       end if;
 
       --  Only remaining step is validity checks on the argument. These
@@ -4531,7 +4531,7 @@ package body Sem_Ch4 is
    procedure Analyze_Unchecked_Type_Conversion (N : Node_Id) is
    begin
       Mark_Non_ALFA_Subprogram
-        ("unchecked type conversion is not in 'A'L'F'A", N);
+        ("unchecked type conversion is not in ALFA", N);
       Find_Type (Subtype_Mark (N));
       Analyze_Expression (Expression (N));
       Set_Etype (N, Entity (Subtype_Mark (N)));
index 8936daa..afd338d 100644 (file)
@@ -1114,7 +1114,7 @@ package body Sem_Ch5 is
         and then List_Length (Alternatives (N)) = 1
       then
          Mark_Non_ALFA_Subprogram
-           ("OTHERS as unique case alternative is not in 'A'L'F'A", N);
+           ("OTHERS as unique case alternative is not in ALFA", N);
          Check_SPARK_Restriction
            ("OTHERS as unique case alternative is not allowed", N);
       end if;
@@ -1198,7 +1198,7 @@ package body Sem_Ch5 is
             if Has_Loop_In_Inner_Open_Scopes (U_Name) then
                Mark_Non_ALFA_Subprogram
                  ("exit label must name the closest enclosing loop"
-                   & " in 'A'L'F'A", N);
+                   & " in ALFA", N);
                Check_SPARK_Restriction
                  ("exit label must name the closest enclosing loop", N);
             end if;
@@ -1247,7 +1247,7 @@ package body Sem_Ch5 is
          if Nkind (Parent (N)) /= N_Loop_Statement then
             Mark_Non_ALFA_Subprogram
               ("exit with when clause must be directly in loop"
-                & " in 'A'L'F'A", N);
+                & " in ALFA", N);
             Check_SPARK_Restriction
               ("exit with when clause must be directly in loop", N);
          end if;
@@ -1256,18 +1256,18 @@ package body Sem_Ch5 is
          if Nkind (Parent (N)) /= N_If_Statement then
             if Nkind (Parent (N)) = N_Elsif_Part then
                Mark_Non_ALFA_Subprogram
-                 ("exit must be in IF without ELSIF in 'A'L'F'A", N);
+                 ("exit must be in IF without ELSIF in ALFA", N);
                Check_SPARK_Restriction
                  ("exit must be in IF without ELSIF", N);
             else
                Mark_Non_ALFA_Subprogram
-                 ("exit must be directly in IF in 'A'L'F'A", N);
+                 ("exit must be directly in IF in ALFA", N);
                Check_SPARK_Restriction ("exit must be directly in IF", N);
             end if;
 
          elsif Nkind (Parent (Parent (N))) /= N_Loop_Statement then
             Mark_Non_ALFA_Subprogram
-              ("exit must be in IF directly in loop in 'A'L'F'A", N);
+              ("exit must be in IF directly in loop in ALFA", N);
             Check_SPARK_Restriction
               ("exit must be in IF directly in loop", N);
 
@@ -1276,7 +1276,7 @@ package body Sem_Ch5 is
 
          elsif Present (Else_Statements (Parent (N))) then
             Mark_Non_ALFA_Subprogram
-              ("exit must be in IF without ELSE in 'A'L'F'A", N);
+              ("exit must be in IF without ELSE in ALFA", N);
             Check_SPARK_Restriction ("exit must be in IF without ELSE", N);
 
             --  An exit in an ELSIF does not reach here, as it would have been
@@ -1284,7 +1284,7 @@ package body Sem_Ch5 is
 
          elsif Present (Elsif_Parts (Parent (N))) then
             Mark_Non_ALFA_Subprogram
-              ("exit must be in IF without ELSIF in 'A'L'F'A", N);
+              ("exit must be in IF without ELSIF in ALFA", N);
             Check_SPARK_Restriction ("exit must be in IF without ELSIF", N);
          end if;
       end if;
@@ -1313,7 +1313,7 @@ package body Sem_Ch5 is
       Label_Ent   : Entity_Id;
 
    begin
-      Mark_Non_ALFA_Subprogram ("goto statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("goto statement is not in ALFA", N);
       Check_SPARK_Restriction ("goto statement is not allowed", N);
 
       --  Actual semantic checks
index 64a7eac..847f920 100644 (file)
@@ -650,13 +650,13 @@ package body Sem_Ch6 is
                or else Present (Next (N)))
          then
             Mark_Non_ALFA_Subprogram
-              ("RETURN should be the last statement in 'A'L'F'A", N);
+              ("RETURN should be the last statement in ALFA", N);
             Check_SPARK_Restriction
               ("RETURN should be the last statement in function", N);
          end if;
 
       else
-         Mark_Non_ALFA_Subprogram ("extended RETURN is not in 'A'L'F'A", N);
+         Mark_Non_ALFA_Subprogram ("extended RETURN is not in ALFA", N);
          Check_SPARK_Restriction ("extended RETURN is not allowed", N);
 
          --  Analyze parts specific to extended_return_statement:
@@ -8887,7 +8887,7 @@ package body Sem_Ch6 is
          if Is_In_ALFA (Formal_Type) then
             Set_Is_In_ALFA (Formal);
          else
-            Mark_Non_ALFA_Subprogram ("formal is not in 'A'L'F'A", Formal);
+            Mark_Non_ALFA_Subprogram ("formal is not in ALFA", Formal);
          end if;
 
          Default := Expression (Param_Spec);
index 204ecad..9ded3d2 100644 (file)
@@ -101,7 +101,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("abort statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("abort statement is not in ALFA", N);
       Check_SPARK_Restriction ("abort statement is not allowed", N);
 
       T_Name := First (Names (N));
@@ -140,7 +140,7 @@ package body Sem_Ch9 is
    procedure Analyze_Accept_Alternative (N : Node_Id) is
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("accept is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("accept is not in ALFA", N);
 
       if Present (Pragmas_Before (N)) then
          Analyze_List (Pragmas_Before (N));
@@ -174,7 +174,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("accept statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("accept statement is not in ALFA", N);
       Check_SPARK_Restriction ("accept statement is not allowed", N);
 
       --  Entry name is initialized to Any_Id. It should get reset to the
@@ -406,7 +406,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("select statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("select statement is not in ALFA", N);
       Check_SPARK_Restriction ("select statement is not allowed", N);
       Check_Restriction (Max_Asynchronous_Select_Nesting, N);
       Check_Restriction (No_Select_Statements, N);
@@ -453,7 +453,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("select statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("select statement is not in ALFA", N);
       Check_SPARK_Restriction ("select statement is not allowed", N);
       Check_Restriction (No_Select_Statements, N);
 
@@ -500,7 +500,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("delay is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("delay is not in ALFA", N);
       Check_Restriction (No_Delay, N);
 
       if Present (Pragmas_Before (N)) then
@@ -552,7 +552,7 @@ package body Sem_Ch9 is
       E : constant Node_Id := Expression (N);
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("delay statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("delay statement is not in ALFA", N);
       Check_SPARK_Restriction ("delay statement is not allowed", N);
       Check_Restriction (No_Relative_Delay, N);
       Check_Restriction (No_Delay, N);
@@ -571,7 +571,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("delay statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("delay statement is not in ALFA", N);
       Check_SPARK_Restriction ("delay statement is not allowed", N);
       Check_Restriction (No_Delay, N);
       Check_Potentially_Blocking_Operation (N);
@@ -600,7 +600,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("entry is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("entry is not in ALFA", N);
 
       --  Entry_Name is initialized to Any_Id. It should get reset to the
       --  matching entry entity. An error is signalled if it is not reset
@@ -833,7 +833,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("entry is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("entry is not in ALFA", N);
 
       if Present (Index) then
          Analyze (Index);
@@ -861,7 +861,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("entry call is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("entry call is not in ALFA", N);
       Check_SPARK_Restriction ("entry call is not allowed", N);
 
       if Present (Pragmas_Before (N)) then
@@ -897,7 +897,7 @@ package body Sem_Ch9 is
    begin
       Generate_Definition (Def_Id);
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("entry is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("entry is not in ALFA", N);
 
       --  Case of no discrete subtype definition
 
@@ -967,7 +967,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("entry is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("entry is not in ALFA", N);
       Analyze (Def);
 
       --  There is no elaboration of the entry index specification. Therefore,
@@ -1009,7 +1009,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("protected body is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("protected body is not in ALFA", N);
       Set_Ekind (Body_Id, E_Protected_Body);
       Spec_Id := Find_Concurrent_Spec (Body_Id);
 
@@ -1128,7 +1128,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("protected definition is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("protected definition is not in ALFA", N);
       Check_SPARK_Restriction ("protected definition is not allowed", N);
       Analyze_Declarations (Visible_Declarations (N));
 
@@ -1182,7 +1182,7 @@ package body Sem_Ch9 is
       end if;
 
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("protected type is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("protected type is not in ALFA", N);
       Check_Restriction (No_Protected_Types, N);
 
       T := Find_Type_Name (N);
@@ -1324,7 +1324,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("requeue statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("requeue statement is not in ALFA", N);
       Check_SPARK_Restriction ("requeue statement is not allowed", N);
       Check_Restriction (No_Requeue_Statements, N);
       Check_Unreachable_Code (N);
@@ -1599,7 +1599,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("select statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("select statement is not in ALFA", N);
       Check_SPARK_Restriction ("select statement is not allowed", N);
       Check_Restriction (No_Select_Statements, N);
 
@@ -1720,7 +1720,7 @@ package body Sem_Ch9 is
    begin
       Generate_Definition (Id);
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("protected object is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("protected object is not in ALFA", N);
 
       --  The node is rewritten as a protected type declaration, in exact
       --  analogy with what is done with single tasks.
@@ -1782,7 +1782,7 @@ package body Sem_Ch9 is
    begin
       Generate_Definition (Id);
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("task is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("task is not in ALFA", N);
 
       --  The node is rewritten as a task type declaration, followed by an
       --  object declaration of that anonymous task type.
@@ -1860,7 +1860,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("task body is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("task body is not in ALFA", N);
       Set_Ekind (Body_Id, E_Task_Body);
       Set_Scope (Body_Id, Current_Scope);
       Spec_Id := Find_Concurrent_Spec (Body_Id);
@@ -1981,7 +1981,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("task definition is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("task definition is not in ALFA", N);
       Check_SPARK_Restriction ("task definition is not allowed", N);
 
       if Present (Visible_Declarations (N)) then
@@ -2016,7 +2016,7 @@ package body Sem_Ch9 is
    begin
       Check_Restriction (No_Tasking, N);
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("task type is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("task type is not in ALFA", N);
       T := Find_Type_Name (N);
       Generate_Definition (T);
 
@@ -2122,7 +2122,7 @@ package body Sem_Ch9 is
    procedure Analyze_Terminate_Alternative (N : Node_Id) is
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("terminate is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("terminate is not in ALFA", N);
 
       if Present (Pragmas_Before (N)) then
          Analyze_List (Pragmas_Before (N));
@@ -2144,7 +2144,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("select statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("select statement is not in ALFA", N);
       Check_SPARK_Restriction ("select statement is not allowed", N);
       Check_Restriction (No_Select_Statements, N);
 
@@ -2181,7 +2181,7 @@ package body Sem_Ch9 is
 
    begin
       Tasking_Used := True;
-      Mark_Non_ALFA_Subprogram ("triggering statement is not in 'A'L'F'A", N);
+      Mark_Non_ALFA_Subprogram ("triggering statement is not in ALFA", N);
 
       if Present (Pragmas_Before (N)) then
          Analyze_List (Pragmas_Before (N));
index dac7df8..721b54e 100644 (file)
@@ -6144,7 +6144,7 @@ package body Sem_Prag is
                      then
                         Error_Pragma
                           ("pragma% is placed after violation"
-                           & " of 'A'L'F'A");
+                           & " of ALFA");
                      end if;
 
                      --  We treat this as a Rep_Item to record it on the rep
index 241abd6..f5bf368 100644 (file)
@@ -5797,13 +5797,13 @@ package body Sem_Res is
 
       if Is_Boolean_Type (T) then
          Mark_Non_ALFA_Subprogram
-           ("ordering operator on boolean type is not in 'A'L'F'A", N);
+           ("ordering operator on boolean type is not in ALFA", N);
          Check_SPARK_Restriction
            ("comparison is not defined on Boolean type", N);
 
       elsif Is_Array_Type (T) then
          Mark_Non_ALFA_Subprogram
-           ("ordering operator on array type is not in 'A'L'F'A", N);
+           ("ordering operator on array type is not in ALFA", N);
 
          if Base_Type (T) /= Standard_String then
             Check_SPARK_Restriction
@@ -5864,7 +5864,7 @@ package body Sem_Res is
 
       if Root_Type (Typ) /= Standard_Boolean then
          Mark_Non_ALFA_Subprogram
-           ("non-boolean conditional expression is not in 'A'L'F'A", N);
+           ("non-boolean conditional expression is not in ALFA", N);
       end if;
 
       Set_Etype (N, Typ);
@@ -6668,7 +6668,7 @@ package body Sem_Res is
 
          if Is_Array_Type (T) then
             Mark_Non_ALFA_Subprogram
-              ("equality operator on array is not in 'A'L'F'A", N);
+              ("equality operator on array is not in ALFA", N);
 
             --  Protect call to Matching_Static_Array_Bounds to avoid costly
             --  operation if not needed.
@@ -7219,7 +7219,7 @@ package body Sem_Res is
         and then Nkind (N) in N_Binary_Op
       then
          Mark_Non_ALFA_Subprogram
-           ("binary operator on array is not in 'A'L'F'A", N);
+           ("binary operator on array is not in ALFA", N);
 
          declare
             Left_Typ  : constant Node_Id := Etype (Left_Opnd (N));