diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-20 14:42:58 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-02-20 14:42:58 +0100 |
commit | 0c7e0c3254341de04e877a58c44aba23203cf04a (patch) | |
tree | 06f0b8e4cb0b54d598438a7815c9bfa918bedb20 /gcc/ada/sem_util.adb | |
parent | e449429213d601e60b19d1d5db6dd761df98c2c5 (diff) | |
download | gcc-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.adb | 24 |
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 -- --------------------------- |