From: Yannick Moy Date: Fri, 6 Jan 2023 10:10:53 +0000 (+0100) Subject: ada: Fix handling of pragma Warnings (Toolname, Off/On) X-Git-Tag: basepoints/gcc-15~9309 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0f7d8f2f669c64529aafb24bfc0b1f59b4958f19;p=thirdparty%2Fgcc.git ada: Fix handling of pragma Warnings (Toolname, Off/On) Pragma Warnings On/Off with a preceding toolname (which could be GNAT or GNATprove) was ignored due an error in accessing the expression of a pragma association in the parser. Now fixed. gcc/ada/ * par-prag.adb (First_Arg_Is_Matching_Tool_Name): Fix access to expression in pragma association. --- diff --git a/gcc/ada/par-prag.adb b/gcc/ada/par-prag.adb index 3a9764adec3e..e78f97d11fbd 100644 --- a/gcc/ada/par-prag.adb +++ b/gcc/ada/par-prag.adb @@ -1150,13 +1150,14 @@ begin ------------------------------------- function First_Arg_Is_Matching_Tool_Name return Boolean is + Expr : constant Node_Id := Get_Pragma_Arg (Arg1); begin - return Nkind (Arg1) = N_Identifier + return Nkind (Expr) = N_Identifier -- Return True if the tool name is GNAT, and we're not in -- GNATprove or CodePeer mode... - and then ((Chars (Arg1) = Name_Gnat + and then ((Chars (Expr) = Name_Gnat and then not (CodePeer_Mode or GNATprove_Mode)) @@ -1164,7 +1165,7 @@ begin -- mode. or else - (Chars (Arg1) = Name_Gnatprove + (Chars (Expr) = Name_Gnatprove and then GNATprove_Mode)); end First_Arg_Is_Matching_Tool_Name; @@ -1189,7 +1190,7 @@ begin -------------- function Last_Arg return Node_Id is - Last_Arg : Node_Id; + Last_Arg : Node_Id; begin if Arg_Count = 1 then