diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-08 16:49:44 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-08 16:49:44 +0200 |
commit | ef7c5692f12132cb8672a61c67070deef4fd600e (patch) | |
tree | b8ec63645bea28745bba045ef8d3e362144b65d6 /gcc/ada/par-ch2.adb | |
parent | 4da17013c086241754907c0560c4c84427aec3ac (diff) | |
download | gcc-ef7c5692f12132cb8672a61c67070deef4fd600e.zip gcc-ef7c5692f12132cb8672a61c67070deef4fd600e.tar.gz gcc-ef7c5692f12132cb8672a61c67070deef4fd600e.tar.bz2 |
[multiple changes]
2009-04-08 Thomas Quinot <quinot@adacore.com>
* exp_util.adb: Minor comment fix
2009-04-08 Robert Dewar <dewar@adacore.com>
* g-socket.ads: Fix bad syntax in pragma Obsolescent
* par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of
argument with no identifier following one that has an identifier. Was
missed in some cases.
* sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy
identifier.
(Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers
* snames.adb: Add Name_Policy
* snames.ads: Add Name_Policy
From-SVN: r145744
Diffstat (limited to 'gcc/ada/par-ch2.adb')
-rw-r--r-- | gcc/ada/par-ch2.adb | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/gcc/ada/par-ch2.adb b/gcc/ada/par-ch2.adb index 5a382a1..5e174ee 100644 --- a/gcc/ada/par-ch2.adb +++ b/gcc/ada/par-ch2.adb @@ -469,11 +469,14 @@ package body Ch2 is is Scan_State : Saved_Scan_State; Identifier_Node : Node_Id; + Id_Present : Boolean; begin Association := New_Node (N_Pragma_Argument_Association, Token_Ptr); Set_Chars (Association, No_Name); + -- Argument starts with identifier + if Token = Tok_Identifier then Identifier_Node := Token_Node; Save_Scan_State (Scan_State); -- at Identifier @@ -483,17 +486,24 @@ package body Ch2 is Identifier_Seen := True; Scan; -- past arrow Set_Chars (Association, Chars (Identifier_Node)); + Id_Present := True; -- Case of argument with no identifier else Restore_Scan_State (Scan_State); -- to Identifier - - if Identifier_Seen then - Error_Msg_SC - ("|pragma argument identifier required here (RM 2.8(4))"); - end if; + Id_Present := False; end if; + + -- Argument does not start with identifier + + else + Id_Present := False; + end if; + + if Identifier_Seen and not Id_Present then + Error_Msg_SC + ("|pragma argument identifier required here (RM 2.8(4))"); end if; Set_Expression (Association, P_Expression); |