diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-03 15:40:30 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-03 15:40:30 +0000 |
commit | b5bf14af2826f3a769b248299bd4aa258c59bfdc (patch) | |
tree | 16afa3adf1e3ad99129f628671d8b21107a27e8a /gcc/ada/par.adb | |
parent | 647b73bee4b51d67c20b34281fe55198e283013a (diff) | |
download | gcc-b5bf14af2826f3a769b248299bd4aa258c59bfdc.tar.gz |
* par.adb: Enhance error message handling for configuration file
pragmas.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92846 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/par.adb')
-rw-r--r-- | gcc/ada/par.adb | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/gcc/ada/par.adb b/gcc/ada/par.adb index 89777065639..6c8ec704e20 100644 --- a/gcc/ada/par.adb +++ b/gcc/ada/par.adb @@ -1208,7 +1208,6 @@ begin if Configuration_Pragmas then declare - Ecount : constant Int := Serious_Errors_Detected; Pragmas : constant List_Id := Empty_List; P_Node : Node_Id; @@ -1224,20 +1223,29 @@ begin else P_Node := P_Pragma; - if Serious_Errors_Detected > Ecount then - return Error_List; - end if; + if Nkind (P_Node) = N_Pragma then + + -- Give error if bad pragma + + if Chars (P_Node) > Last_Configuration_Pragma_Name + and then Chars (P_Node) /= Name_Source_Reference + then + if Is_Pragma_Name (Chars (P_Node)) then + Error_Msg_N + ("only configuration pragmas allowed " & + "in configuration file", P_Node); + else + Error_Msg_N + ("unrecognized pragma in configuration file", + P_Node); + end if; - if Chars (P_Node) > Last_Configuration_Pragma_Name - and then Chars (P_Node) /= Name_Source_Reference - then - Error_Msg_SC - ("only configuration pragmas allowed " & - "in configuration file"); - return Error_List; - end if; + -- Pragma is OK config pragma, so collect it - Append (P_Node, Pragmas); + else + Append (P_Node, Pragmas); + end if; + end if; end if; end loop; end; |