aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/sem_util.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2014-02-20 14:42:58 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2014-02-20 14:42:58 +0100
commit0c7e0c3254341de04e877a58c44aba23203cf04a (patch)
tree06f0b8e4cb0b54d598438a7815c9bfa918bedb20 /gcc/ada/sem_util.adb
parente449429213d601e60b19d1d5db6dd761df98c2c5 (diff)
downloadgcc-0c7e0c3254341de04e877a58c44aba23203cf04a.zip
gcc-0c7e0c3254341de04e877a58c44aba23203cf04a.tar.gz
gcc-0c7e0c3254341de04e877a58c44aba23203cf04a.tar.bz2
[multiple changes]
2014-02-20 Ed Schonberg <schonberg@adacore.com> * sem_ch5.adb (Analyze_Iterator_Specification): Initialize properly the cursor type for subsequent volatile testing in SPARK mode, when domain is a formal container with an Iterabe aspect. 2014-02-20 Robert Dewar <dewar@adacore.com> * errout.adb (Set_Warnings_Mode_Off): Add Reason argument. (Set_Specific_Warning_Off): Add Reason argument. * errout.ads (Set_Warnings_Mode_Off): Add Reason argument. (Set_Specific_Warning_Off): Add Reason argument. * erroutc.adb (Warnings_Entry): Add Reason field (Specific_Warning_Entry): Add Reason field. (Warnings_Suppressed): return String_Id for Reason. (Warning_Specifically_Suppressed): return String_Id for Reason. * erroutc.ads (Warnings_Entry): Add Reason field. (Specific_Warning_Entry): Add Reason field. (Set_Specific_Warning_Off): Add Reason argument. (Set_Warnings_Mode_Off): Add Reason argument. (Warnings_Suppressed): return String_Id for Reason. (Warning_Specifically_Suppressed): return String_Id for Reason. * errutil.adb (Warnings_Suppressed): returns String_Id for Reason (Warning_Specifically_Suppressed): returns String_Id for Reason * gnat_rm.texi: Document that Warning parameter is string literal or a concatenation of string literals. * par-prag.adb: New handling for Reason argument. * sem_prag.adb (Analyze_Pragma, case Warning): New handling for Reason argument. * sem_util.ads, sem_util.adb (Get_Reason_String): New procedure. * sem_warn.ads (Warnings_Off_Entry): Add reason field. * stringt.adb: Set Null_String_Id. * stringt.ads (Null_String_Id): New constant. From-SVN: r207943
Diffstat (limited to 'gcc/ada/sem_util.adb')
-rw-r--r--gcc/ada/sem_util.adb24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb
index 5062e7e..ceedb7d 100644
--- a/gcc/ada/sem_util.adb
+++ b/gcc/ada/sem_util.adb
@@ -6767,6 +6767,30 @@ package body Sem_Util is
return Get_Pragma_Id (Pragma_Name (N));
end Get_Pragma_Id;
+ -----------------------
+ -- Get_Reason_String --
+ -----------------------
+
+ procedure Get_Reason_String (N : Node_Id) is
+ begin
+ if Nkind (N) = N_String_Literal then
+ Store_String_Chars (Strval (N));
+
+ elsif Nkind (N) = N_Op_Concat then
+ Get_Reason_String (Left_Opnd (N));
+ Get_Reason_String (Right_Opnd (N));
+
+ -- If not of required form, error
+
+ else
+ Error_Msg_N
+ ("Reason for pragma Warnings has wrong form", N);
+ Error_Msg_N
+ ("\must be string literal or concatenation of string literals", N);
+ return;
+ end if;
+ end Get_Reason_String;
+
---------------------------
-- Get_Referenced_Object --
---------------------------