diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index dd2645469847a0b5a90c9c594e5524c052dbf2ff..1499ed11f01b3bd94920a58f5dc1a06846787208 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,63 @@ +2013-01-29 Robert Dewar <dewar@adacore.com> + + * par-ch6.adb (No_Constraint_Maybe_Expr_Func): New procedure. + * par-util.adb (No_Constraint): Undo special handling, moved + to par-ch6.adb. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * aspects.ads: Aspect Warnings is implementation defined Add + some other missing entries to impl-defined list Mark Warnings + as GNAT pragma in main list. + * sem_ch8.adb: Process aspects for all cases of renaming + declarations. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * sem_ch6.adb (Analyze_Function_Call): Set In_Assertion flag. + * sem_elab.adb (Check_Internal_Call_Continue): Do not issue + warnings about possible elaboration error if call is within + an assertion. + * sinfo.ads, sinfo.adb (In_Assertion): New flag in N_Function_Call node. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * a-calend-vms.adb, g-eacodu-vms.adb, g-trasym-vms-alpha.adb, + * s-auxdec-vms-ia64.adb, s-mastop-vms.adb, s-osprim-vms.adb, + s-tasdeb-vms.adb: Replace pragma Interface by pragma Import. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * opt.ads (Ignore_Style_Checks_Pragmas): New flag. + * par-prag.adb (Par, case Style_Checks): Recognize + Ignore_Style_Checks_Pragmas. + * sem_prag.adb (Analyze_Pragma, case Style_Checks): Recognize + Ignore_Style_Checks_Pragmas. + * switch-c.adb: Recognize -gnateY switch. + * usage.adb: Add documentation for "-gnateY". + * vms_data.ads: Add IGNORE_STYLE_CHECKS_PRAGMAS (-gnateY). + +2013-01-29 Vincent Celier <celier@adacore.com> + + * clean.adb (Clean_Executables): Add Sid component when calling + Queue.Insert. + * make.adb: When inserting in the Queue, add the Source_Id + (Sid) when it is known (Start_Compile_If_Possible): When the + Source_Id is known (Sid), get the path name of the ALI file + (Full_Lib_File) from it, to avoid finding old ALI files in other + object directories. + * makeutl.ads (Source_Info): New Source_Id component Sid in + Format_Gnatmake variant. + +2013-01-29 Robert Dewar <dewar@adacore.com> + + * gnat_ugn.texi: Document -gnateY. + +2013-01-29 Doug Rupp <rupp@adacore.com> + + * s-osinte-vms.ads, s-taprop-vms.adb, system-vms_64.ads, + system-vms-ia64.ads: Replace pragma Interface by pragma Import. + 2013-01-29 Robert Dewar <dewar@adacore.com> * atree.ads, atree.adb (Node30): New function. diff --git a/gcc/ada/a-calend-vms.adb b/gcc/ada/a-calend-vms.adb index 9d6913d0434f5ebf891a031589fffdb54566cbdb..7c2b3a62b467d86c2ba9a9252182786287a0705c 100644 --- a/gcc/ada/a-calend-vms.adb +++ b/gcc/ada/a-calend-vms.adb @@ -49,7 +49,7 @@ package body Ada.Calendar is -- on various targets, a system independent model is incorporated into -- Ada.Calendar. The idea behind the design is to encapsulate all target -- dependent machinery in a single package, thus providing a uniform - -- interface to all existing and any potential children. + -- pragma Import to all existing and any potential children. -- package Ada.Calendar -- procedure Split (5 parameters) -------+ @@ -1017,7 +1017,7 @@ package body Ada.Calendar is Timbuf : out Unsigned_Word_Array; Timadr : Time); - pragma Interface (External, Numtim); + pragma Import (External, Numtim); pragma Import_Valued_Procedure (Numtim, "SYS$NUMTIM", @@ -1134,7 +1134,7 @@ package body Ada.Calendar is Input_Time : Unsigned_Word_Array; Resultant_Time : out Time); - pragma Interface (External, Cvt_Vectim); + pragma Import (External, Cvt_Vectim); pragma Import_Valued_Procedure (Cvt_Vectim, "LIB$CVT_VECTIM", diff --git a/gcc/ada/aspects.ads b/gcc/ada/aspects.ads index 94c3c617827d6ed9be61f3343ced07eea2d1acaa..c3199cc0d4b2a7683cd452bbdb40e2161040d0c6 100644 --- a/gcc/ada/aspects.ads +++ b/gcc/ada/aspects.ads @@ -127,7 +127,7 @@ package Aspects is Aspect_Unsuppress, Aspect_Value_Size, -- GNAT Aspect_Variable_Indexing, - Aspect_Warnings, + Aspect_Warnings, -- GNAT Aspect_Write, -- The following aspects correspond to library unit pragmas @@ -234,6 +234,7 @@ package Aspects is Aspect_Favor_Top_Level => True, Aspect_Global => True, Aspect_Inline_Always => True, + Aspect_Invariant => True, Aspect_Lock_Free => True, Aspect_Object_Size => True, Aspect_Persistent_BSS => True, @@ -243,18 +244,19 @@ package Aspects is Aspect_Pure_12 => True, Aspect_Pure_Function => True, Aspect_Remote_Access_Type => True, - Aspect_Shared => True, Aspect_Scalar_Storage_Order => True, + Aspect_Shared => True, Aspect_Simple_Storage_Pool => True, Aspect_Simple_Storage_Pool_Type => True, Aspect_Suppress_Debug_Info => True, Aspect_Test_Case => True, - Aspect_Universal_Data => True, Aspect_Universal_Aliasing => True, + Aspect_Universal_Data => True, Aspect_Unmodified => True, Aspect_Unreferenced => True, Aspect_Unreferenced_Objects => True, Aspect_Value_Size => True, + Aspect_Warnings => True, others => False); -- The following array indicates aspects for which multiple occurrences of diff --git a/gcc/ada/clean.adb b/gcc/ada/clean.adb index f952e18ab74bedb5d4d041af217db60a1ad8cc03..9819ff962236fb60485a4a180d6f601988948381 100644 --- a/gcc/ada/clean.adb +++ b/gcc/ada/clean.adb @@ -397,7 +397,8 @@ package body Clean is File => Main_Lib_File, Unit => No_Unit_Name, Index => 0, - Project => No_Project)); + Project => No_Project, + Sid => No_Source)); end if; while not Queue.Is_Empty loop @@ -440,7 +441,8 @@ package body Clean is File => Withs.Table (K).Afile, Unit => No_Unit_Name, Index => 0, - Project => No_Project)); + Project => No_Project, + Sid => No_Source)); end if; end loop; end loop; diff --git a/gcc/ada/g-eacodu-vms.adb b/gcc/ada/g-eacodu-vms.adb index ae7646eb2575fbd217c4042f41d09342f3667a01..ceff6e98c09f8d839e4a07a55072f2cfb65becf9 100644 --- a/gcc/ada/g-eacodu-vms.adb +++ b/gcc/ada/g-eacodu-vms.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2003-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 2003-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -56,14 +56,14 @@ procedure Core_Dump (Occurrence : Exception_Occurrence) is Addres : Address := Address_Zero; Acmode : Access_Mode_Type := Access_Mode_Zero; Prvhnd : Unsigned_Longword := 0); - pragma Interface (External, Setexv); + pragma Import (External, Setexv); pragma Import_Valued_Procedure (Setexv, "SYS$SETEXV", (Cond_Value_Type, Unsigned_Longword, Address, Access_Mode_Type, Unsigned_Longword), (Value, Value, Value, Value, Value)); procedure Lib_Signal (I : Integer); - pragma Interface (C, Lib_Signal); + pragma Import (C, Lib_Signal); pragma Import_Procedure (Lib_Signal, "LIB$SIGNAL", Mechanism => (Value)); begin Setexv (Status, 1, Address_Zero, 3); diff --git a/gcc/ada/g-trasym-vms-alpha.adb b/gcc/ada/g-trasym-vms-alpha.adb index c58c5610bfd0a108faf77c42065f672b3c25db0b..c1ea305cfbf6c17c12a53b066c16df69b559ab16 100644 --- a/gcc/ada/g-trasym-vms-alpha.adb +++ b/gcc/ada/g-trasym-vms-alpha.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -93,7 +93,7 @@ package body GNAT.Traceback.Symbolic is User_Arg_Value : User_Arg_Type := 0); -- Comment on above procedure required ??? - pragma Interface (External, Symbolize); + pragma Import (External, Symbolize); pragma Import_Valued_Procedure (Symbolize, "TBK$SYMBOLIZE", diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index b109b69e122e0faceed11854d088a2ff3cef1695..17478c0b263be2d2b46650d61b1fbc00826311c5 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -4280,6 +4280,13 @@ Generate target dependent information. @cindex @option{-gnateV} (@command{gcc}) Check validity of subprogram parameters. +@item ^-gnateY^/IGNORE_SUPPRESS_SYLE_CHECK_PRAGMAS^ +@cindex @option{-gnateY} (@command{gcc}) +Ignore all STYLE_CHECKS pragmas. Full legality checks +are still carried out, but the pragmas have no effect +on what style checks are active. This allows all style +checking options to be controlled from the command line. + @item -gnatE @cindex @option{-gnatE} (@command{gcc}) Full dynamic elaboration checks. diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index 97d4278c32be08b54aa3c465f102273bd5bbfa45..61649da3bb8d15d4b401214181256a74d0b112ea 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -2746,7 +2746,8 @@ package body Make is File => Sfile, Unit => No_Unit_Name, Project => No_Project, - Index => 0)) + Index => 0, + Sid => No_Source)) then if Is_In_Obsoleted (Sfile) then Executable_Obsolete := True; @@ -3091,6 +3092,7 @@ package body Make is ALI : ALI_Id; Source_Index : Int; Sfile : File_Name_Type; + Sid : Prj.Source_Id; Uname : Unit_Name_Type; Unit_Name : Name_Id; Uid : Prj.Unit_Index; @@ -3137,6 +3139,7 @@ package body Make is loop Sfile := Withs.Table (K).Sfile; Uname := Withs.Table (K).Uname; + Sid := No_Source; -- If project files are used, find the proper source to -- compile in case Sfile is the spec but there is a body. @@ -3154,12 +3157,14 @@ package body Make is then Sfile := Uid.File_Names (Impl).File; Source_Index := Uid.File_Names (Impl).Index; + Sid := Uid.File_Names (Impl); elsif Uid.File_Names (Spec) /= null and then not Uid.File_Names (Spec).Locally_Removed then Sfile := Uid.File_Names (Spec).File; Source_Index := Uid.File_Names (Spec).Index; + Sid := Uid.File_Names (Spec); end if; end if; end if; @@ -3187,7 +3192,8 @@ package body Make is File => Sfile, Project => ALI_P.Project, Unit => Withs.Table (K).Uname, - Index => Source_Index)); + Index => Source_Index, + Sid => Sid)); end if; end if; end loop; @@ -3308,16 +3314,16 @@ package body Make is is In_Lib_Dir : Boolean; Need_To_Compile : Boolean; - Pid : Process_Id; + Pid : Process_Id := Invalid_Pid; Process_Created : Boolean; Source : Queue.Source_Info; - Full_Source_File : File_Name_Type; + Full_Source_File : File_Name_Type := No_File; Source_File_Attr : aliased File_Attributes; -- The full name of the source file and its attributes (size, ...) Lib_File : File_Name_Type; - Full_Lib_File : File_Name_Type; + Full_Lib_File : File_Name_Type := No_File; Lib_File_Attr : aliased File_Attributes; Read_Only : Boolean := False; ALI : ALI_Id; @@ -3335,23 +3341,49 @@ package body Make is then Queue.Extract (Found, Source); - Osint.Full_Source_Name - (Source.File, - Full_File => Full_Source_File, - Attr => Source_File_Attr'Access); + -- If it is a source in a project, first look for the ALI file + -- in the object directory. When the project is extending another + -- the ALI file may not be found, but the source does not + -- necessarily need to be compiled, as it may already be up to + -- date in the project being extended. In this case, look for an + -- ALI file in all the object directories, as is done when + -- gnatmake is not invoked with a project file. + + if Source.Sid /= No_Source then + Initialize_Source_Record (Source.Sid); + Full_Source_File := + File_Name_Type (Source.Sid.Path.Display_Name); + Lib_File := Source.Sid.Dep_Name; + Full_Lib_File := File_Name_Type (Source.Sid.Dep_Path); + Lib_File_Attr := Unknown_Attributes; + + if Full_Lib_File /= No_File then + declare + FLF : constant String := + Get_Name_String (Full_Lib_File) & ASCII.NUL; + begin + if not Is_Regular_File + (FLF'Address, Lib_File_Attr'Access) + then + Full_Lib_File := No_File; + end if; + end; + end if; + end if; - Lib_File := Osint.Lib_File_Name (Source.File, Source.Index); + if Full_Lib_File = No_File then + Osint.Full_Source_Name + (Source.File, + Full_File => Full_Source_File, + Attr => Source_File_Attr'Access); - -- ??? This call could be avoided when using projects, since we - -- know where the ALI file is supposed to be. That would avoid - -- searches in the object directories, including in the runtime - -- dir. However, that would require getting access to the - -- Source_Id. + Lib_File := Osint.Lib_File_Name (Source.File, Source.Index); - Osint.Full_Lib_File_Name - (Lib_File, - Lib_File => Full_Lib_File, - Attr => Lib_File_Attr); + Osint.Full_Lib_File_Name + (Lib_File, + Lib_File => Full_Lib_File, + Attr => Lib_File_Attr); + end if; -- If source has already been compiled, executable is obsolete @@ -3734,7 +3766,8 @@ package body Make is File => Main_Source, Project => Main_Project, Unit => No_Unit_Name, - Index => Main_Index)); + Index => Main_Index, + Sid => No_Source)); First_Compiled_File := No_File; Most_Recent_Obj_File := No_File; @@ -6650,6 +6683,7 @@ package body Make is Put_In_Q : Boolean := Into_Q; Unit : Unit_Index; Sfile : File_Name_Type; + Sid : Prj.Source_Id; Index : Int; Project : Project_Id; @@ -6659,6 +6693,7 @@ package body Make is Unit := Units_Htable.Get_First (Project_Tree.Units_HT); while Unit /= null loop Sfile := No_File; + Sid := No_Source; Index := 0; Project := No_Project; @@ -6704,15 +6739,18 @@ package body Make is if Sinput.P.Source_File_Is_Subunit (Src_Ind) then Sfile := No_File; Index := 0; + Sid := No_Source; else Sfile := Unit.File_Names (Impl).Display_File; Index := Unit.File_Names (Impl).Index; + Sid := Unit.File_Names (Impl); end if; end; else Sfile := Unit.File_Names (Impl).Display_File; Index := Unit.File_Names (Impl).Index; + Sid := Unit.File_Names (Impl); end if; end if; @@ -6728,6 +6766,7 @@ package body Make is Sfile := Unit.File_Names (Spec).Display_File; Index := Unit.File_Names (Spec).Index; + Sid := Unit.File_Names (Spec); Project := Unit.File_Names (Spec).Project; end if; @@ -6744,7 +6783,8 @@ package body Make is File => Sfile, Project => Project, Unit => No_Unit_Name, - Index => Index)); + Index => Index, + Sid => Sid)); end if; if not Put_In_Q and then Sfile /= No_File then diff --git a/gcc/ada/makeutl.ads b/gcc/ada/makeutl.ads index 37e9f6107752143fe86c03e1d0eb1298426188b8..e5f430440ec72099ea927de0209c149333ed3b9a 100644 --- a/gcc/ada/makeutl.ads +++ b/gcc/ada/makeutl.ads @@ -485,14 +485,15 @@ package Makeutl is record case Format is when Format_Gprbuild => - Tree : Project_Tree_Ref := null; - Id : Source_Id := null; + Tree : Project_Tree_Ref := No_Project_Tree; + Id : Source_Id := No_Source; when Format_Gnatmake => File : File_Name_Type := No_File; Unit : Unit_Name_Type := No_Unit_Name; Index : Int := 0; Project : Project_Id := No_Project; + Sid : Source_Id := No_Source; end case; end record; -- Information about files stored in the queue. The exact information diff --git a/gcc/ada/opt.ads b/gcc/ada/opt.ads index 2bd5956434ff2b51935d1d62ef7170454ceb02cd..59a93103ed3193cdb9981501eba1272e12b91cda 100644 --- a/gcc/ada/opt.ads +++ b/gcc/ada/opt.ads @@ -720,6 +720,11 @@ package Opt is -- code from foreign compilers for checking or ASIS purposes. Can be -- set True by use of -gnatI. + Ignore_Style_Checks_Pragmas : Boolean := False; + -- GNAT + -- Set True to ignore all Style_Checks pragmas. Can be set True by use + -- of -gnateY. + Implementation_Unit_Warnings : Boolean := True; -- GNAT -- Set True to active warnings for use of implementation internal units. diff --git a/gcc/ada/par-ch6.adb b/gcc/ada/par-ch6.adb index 74736ceb4aec163db4fa66961d44eadf3367b75f..2243acea2eb308bd55f6342a1e329efcdc3911a9 100644 --- a/gcc/ada/par-ch6.adb +++ b/gcc/ada/par-ch6.adb @@ -39,16 +39,19 @@ package body Ch6 is function P_Return_Object_Declaration return Node_Id; procedure P_Return_Subtype_Indication (Decl_Node : Node_Id); - -- Decl_Node is a N_Object_Declaration. - -- Set the Null_Exclusion_Present and Object_Definition fields of - -- Decl_Node. + -- Decl_Node is a N_Object_Declaration. Set the Null_Exclusion_Present and + -- Object_Definition fields of Decl_Node. procedure Check_Junk_Semicolon_Before_Return; - -- Check for common error of junk semicolon before RETURN keyword of - -- function specification. If present, skip over it with appropriate - -- error message, leaving Scan_Ptr pointing to the RETURN after. This - -- routine also deals with a possibly misspelled version of Return. + -- function specification. If present, skip over it with appropriate error + -- message, leaving Scan_Ptr pointing to the RETURN after. This routine + -- also deals with a possibly misspelled version of Return. + + procedure No_Constraint_Maybe_Expr_Func; + -- Called after scanning return subtype to check for missing constraint, + -- taking into account the possibility of an occurrence of an expression + -- function where the IS has been forgotten. ---------------------------------------- -- Check_Junk_Semicolon_Before_Return -- @@ -76,6 +79,52 @@ package body Ch6 is end if; end Check_Junk_Semicolon_Before_Return; + ----------------------------------- + -- No_Constraint_Maybe_Expr_Func -- + ----------------------------------- + + procedure No_Constraint_Maybe_Expr_Func is + begin + -- If we have a left paren at the start of the line, then assume this is + -- the case of an expression function with missing IS. We do not have to + -- diagnose the missing IS, that is done elsewhere. We do this game in + -- Ada 2012 mode where expression functions are legal. + + if Token = Tok_Left_Paren + and Ada_Version >= Ada_2012 + and Token_Is_At_Start_Of_Line + then + -- One exception if we have "(token .." then this is a constraint + + declare + Scan_State : Saved_Scan_State; + + begin + Save_Scan_State (Scan_State); + Scan; -- past left paren + Scan; -- past following token + + -- If we have "(token .." then restore scan state and treat as + -- unexpected constraint. + + if Token = Tok_Dot_Dot then + Restore_Scan_State (Scan_State); + No_Constraint; + + -- Otherwise we treat this as an expression function + + else + Restore_Scan_State (Scan_State); + end if; + end; + + -- Otherwise use standard routine to check for no constraint present + + else + No_Constraint; + end if; + end No_Constraint_Maybe_Expr_Func; + ----------------------------------------------------- -- 6.1 Subprogram (Also 6.3, 8.5.4, 10.1.3, 12.3) -- ----------------------------------------------------- @@ -385,7 +434,7 @@ package body Ch6 is else Result_Node := P_Subtype_Mark; - No_Constraint; + No_Constraint_Maybe_Expr_Func; end if; else @@ -965,7 +1014,7 @@ package body Ch6 is else Result_Node := P_Subtype_Mark; - No_Constraint; + No_Constraint_Maybe_Expr_Func; end if; Set_Null_Exclusion_Present (Specification_Node, Result_Not_Null); diff --git a/gcc/ada/par-prag.adb b/gcc/ada/par-prag.adb index 313567b6bd8add7a16df09131898d74ab6b8279e..dd7b1d704677046a29810b7f8cc20e78ec2ec2a0 100644 --- a/gcc/ada/par-prag.adb +++ b/gcc/ada/par-prag.adb @@ -935,7 +935,10 @@ begin end if; if J = Slen then - Set_Style_Check_Options (Options, OK, Ptr); + if not Ignore_Style_Checks_Pragmas then + Set_Style_Check_Options (Options, OK, Ptr); + end if; + exit; else @@ -955,17 +958,23 @@ begin OK := False; elsif Chars (A) = Name_All_Checks then - if GNAT_Mode then - Stylesw.Set_GNAT_Style_Check_Options; - else - Stylesw.Set_Default_Style_Check_Options; + if not Ignore_Style_Checks_Pragmas then + if GNAT_Mode then + Stylesw.Set_GNAT_Style_Check_Options; + else + Stylesw.Set_Default_Style_Check_Options; + end if; end if; elsif Chars (A) = Name_On then - Style_Check := True; + if not Ignore_Style_Checks_Pragmas then + Style_Check := True; + end if; elsif Chars (A) = Name_Off then - Style_Check := False; + if not Ignore_Style_Checks_Pragmas then + Style_Check := False; + end if; else OK := False; diff --git a/gcc/ada/par-util.adb b/gcc/ada/par-util.adb index e18801f024fc572ec46df5ff09190400d538d969..3b59287b703534d5cd653ee14d15af15cdb11f2e 100644 --- a/gcc/ada/par-util.adb +++ b/gcc/ada/par-util.adb @@ -635,14 +635,9 @@ package body Util is procedure No_Constraint is begin - -- If next token is at start of line, don't object, it seems relatively - -- unlikely that a constraint would be on its own starting a line. - - if Token_Is_At_Start_Of_Line then - return; - end if; - - -- Otherwise if we have a token that could start a constraint, object + -- If we have a token that could start a constraint on the same line + -- then cnsider this an illegal constraint. It seems unlikely it could + -- be anything else if it is on the same line. if Token in Token_Class_Consk then Error_Msg_SC ("constraint not allowed here"); diff --git a/gcc/ada/s-auxdec-vms-ia64.adb b/gcc/ada/s-auxdec-vms-ia64.adb index a744917449a1c79a7401f9f4dd49a4b88a492fcd..b8ca67e85b2fec4ac801c823b68a6d6738b5145a 100644 --- a/gcc/ada/s-auxdec-vms-ia64.adb +++ b/gcc/ada/s-auxdec-vms-ia64.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -411,7 +411,7 @@ package body System.Aux_DEC is procedure SYS_PAL_INSQHIL (STATUS : out Integer; Header : Address; ITEM : Address); - pragma Interface (External, SYS_PAL_INSQHIL); + pragma Import (External, SYS_PAL_INSQHIL); pragma Import_Valued_Procedure (SYS_PAL_INSQHIL, "SYS$PAL_INSQHIL", (Integer, Address, Address), (Value, Value, Value)); @@ -454,7 +454,7 @@ package body System.Aux_DEC is procedure SYS_PAL_REMQHIL (Remret : out Remq; Header : Address); - pragma Interface (External, SYS_PAL_REMQHIL); + pragma Import (External, SYS_PAL_REMQHIL); pragma Import_Valued_Procedure (SYS_PAL_REMQHIL, "SYS$PAL_REMQHIL", (Remq, Address), @@ -499,7 +499,7 @@ package body System.Aux_DEC is procedure SYS_PAL_INSQTIL (STATUS : out Integer; Header : Address; ITEM : Address); - pragma Interface (External, SYS_PAL_INSQTIL); + pragma Import (External, SYS_PAL_INSQTIL); pragma Import_Valued_Procedure (SYS_PAL_INSQTIL, "SYS$PAL_INSQTIL", (Integer, Address, Address), (Value, Value, Value)); @@ -542,7 +542,7 @@ package body System.Aux_DEC is procedure SYS_PAL_REMQTIL (Remret : out Remq; Header : Address); - pragma Interface (External, SYS_PAL_REMQTIL); + pragma Import (External, SYS_PAL_REMQTIL); pragma Import_Valued_Procedure (SYS_PAL_REMQTIL, "SYS$PAL_REMQTIL", (Remq, Address), (Value, Value)); diff --git a/gcc/ada/s-mastop-vms.adb b/gcc/ada/s-mastop-vms.adb index 9ae830099622915b01add9dbbbf1a2f6477e1879..7426f50a5ec6cd2fc43889c1191e171ad9bcb648 100644 --- a/gcc/ada/s-mastop-vms.adb +++ b/gcc/ada/s-mastop-vms.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Version for Alpha/VMS) -- -- -- --- Copyright (C) 2001-2010, AdaCore -- +-- Copyright (C) 2001-2012, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -176,7 +176,7 @@ package body System.Machine_State_Operations is Invo_Handle : Invo_Handle_Type; Invo_Context : out Invo_Context_Blk_Type); - pragma Interface (External, Get_Invo_Context); + pragma Import (External, Get_Invo_Context); pragma Import_Valued_Procedure (Get_Invo_Context, "LIB$GET_INVO_CONTEXT", (Unsigned_Longword, Invo_Handle_Type, Invo_Context_Blk_Type), @@ -221,7 +221,7 @@ package body System.Machine_State_Operations is Result : out Invo_Handle_Type; -- return value ICB : Invo_Handle_Type); - pragma Interface (External, Get_Prev_Invo_Handle); + pragma Import (External, Get_Prev_Invo_Handle); pragma Import_Valued_Procedure (Get_Prev_Invo_Handle, "LIB$GET_PREV_INVO_HANDLE", @@ -244,7 +244,7 @@ package body System.Machine_State_Operations is procedure Get_Curr_Invo_Context (Invo_Context : out Invo_Context_Blk_Type); - pragma Interface (External, Get_Curr_Invo_Context); + pragma Import (External, Get_Curr_Invo_Context); pragma Import_Valued_Procedure (Get_Curr_Invo_Context, "LIB$GET_CURR_INVO_CONTEXT", @@ -255,7 +255,7 @@ package body System.Machine_State_Operations is Result : out Invo_Handle_Type; -- return value Invo_Context : Invo_Context_Blk_Type); - pragma Interface (External, Get_Invo_Handle); + pragma Import (External, Get_Invo_Handle); pragma Import_Valued_Procedure (Get_Invo_Handle, "LIB$GET_INVO_HANDLE", (Invo_Handle_Type, Invo_Context_Blk_Type), diff --git a/gcc/ada/s-osinte-vms.ads b/gcc/ada/s-osinte-vms.ads index cadc6526aca1c06008e3c2881f207e1b52548d5c..e8cc6b8cb42c0bfa4312f6426b9604399f885d2d 100644 --- a/gcc/ada/s-osinte-vms.ads +++ b/gcc/ada/s-osinte-vms.ads @@ -125,7 +125,7 @@ package System.OS_Interface is Acmode : unsigned_short := 0; Mbxnam : String := String'Null_Parameter; Flags : unsigned_long := 0); - pragma Interface (External, Sys_Assign); + pragma Import (External, Sys_Assign); pragma Import_Valued_Procedure (Sys_Assign, "SYS$ASSIGN", (Cond_Value_Type, String, unsigned_short, @@ -148,7 +148,7 @@ package System.OS_Interface is (Status : out Cond_Value_Type; Reqidt : Address; Acmode : unsigned); - pragma Interface (External, Sys_Cantim); + pragma Import (External, Sys_Cantim); pragma Import_Valued_Procedure (Sys_Cantim, "SYS$CANTIM", (Cond_Value_Type, Address, unsigned), @@ -180,7 +180,7 @@ package System.OS_Interface is Acmode : unsigned_short := 0; Lognam : String; Flags : unsigned_long := 0); - pragma Interface (External, Sys_Crembx); + pragma Import (External, Sys_Crembx); pragma Import_Valued_Procedure (Sys_Crembx, "SYS$CREMBX", (Cond_Value_Type, unsigned_char, unsigned_short, @@ -235,7 +235,7 @@ package System.OS_Interface is P5 : unsigned_long := 0; P6 : unsigned_long := 0); - pragma Interface (External, Sys_QIO); + pragma Import (External, Sys_QIO); pragma Import_Valued_Procedure (Sys_QIO, "SYS$QIO", (Cond_Value_Type, unsigned_long, unsigned_short, unsigned_long, @@ -278,7 +278,7 @@ package System.OS_Interface is AST : AST_Handler; Reqidt : Address; Flags : unsigned_long); - pragma Interface (External, Sys_Setimr); + pragma Import (External, Sys_Setimr); pragma Import_Valued_Procedure (Sys_Setimr, "SYS$SETIMR", (Cond_Value_Type, unsigned_long, Long_Integer, diff --git a/gcc/ada/s-osprim-vms.adb b/gcc/ada/s-osprim-vms.adb index c08b4fe8990d280d87b5e06988d5913617a552b3..5fa499bd13f7339725a3bab2a733b05190bc066a 100644 --- a/gcc/ada/s-osprim-vms.adb +++ b/gcc/ada/s-osprim-vms.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2012, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -81,7 +81,7 @@ package body System.OS_Primitives is Reptim : Long_Integer := Long_Integer'Null_Parameter ); - pragma Interface (External, Sys_Schdwk); + pragma Import (External, Sys_Schdwk); -- VMS system call to schedule a wakeup event pragma Import_Valued_Procedure (Sys_Schdwk, "SYS$SCHDWK", @@ -105,7 +105,7 @@ package body System.OS_Primitives is Tim : out OS_Time ); -- VMS system call to get the current system time - pragma Interface (External, Sys_Gettim); + pragma Import (External, Sys_Gettim); pragma Import_Valued_Procedure (Sys_Gettim, "SYS$GETTIM", (Cond_Value_Type, OS_Time), @@ -122,7 +122,7 @@ package body System.OS_Primitives is procedure Sys_Hiber (Status : out Cond_Value_Type); -- VMS system call to hibernate the current process - pragma Interface (External, Sys_Hiber); + pragma Import (External, Sys_Hiber); pragma Import_Valued_Procedure (Sys_Hiber, "SYS$HIBER", (Cond_Value_Type), diff --git a/gcc/ada/s-taprop-vms.adb b/gcc/ada/s-taprop-vms.adb index 046aa037b6d6760934444331700d3b2814c938e8..53034cad012318297913418c2cb1fd29ac48aab9 100644 --- a/gcc/ada/s-taprop-vms.adb +++ b/gcc/ada/s-taprop-vms.adb @@ -1225,7 +1225,7 @@ package body System.Task_Primitives.Operations is return System.Aux_DEC.Unsigned_Word; -- DBGEXT is imported from s-tasdeb.adb and its parameter re-typed -- as Address to avoid having a VMS specific s-tasdeb.ads. - pragma Interface (C, DBGEXT); + pragma Import (C, DBGEXT); pragma Import_Function (DBGEXT, "GNAT$DBGEXT"); type Facility_Type is range 0 .. 65535; diff --git a/gcc/ada/s-tasdeb-vms.adb b/gcc/ada/s-tasdeb-vms.adb index acd7fcce862f54de906241ec5faccd3d2d8500df..1dbb5c53fc5b044e2056b1ebbfdd5e57850a793d 100644 --- a/gcc/ada/s-tasdeb-vms.adb +++ b/gcc/ada/s-tasdeb-vms.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2008-2011, Free Software Foundation, Inc. -- +-- Copyright (C) 2008-2012, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -556,7 +556,7 @@ package body System.Tasking.Debug is Item_Req : Unsigned_Word; Out_Buff : Unsigned_Longword; Buff_Siz : Unsigned_Word); - pragma Interface (External, Debug_Get); + pragma Import (External, Debug_Get); pragma Import_Procedure (Debug_Get, "CMA$DEBUG_GET", (OSI.Thread_Id, Unsigned_Word, System.Address, Unsigned_Word), @@ -572,7 +572,7 @@ package body System.Tasking.Debug is Outlen : out Unsigned_Word; Outbuf : out String; Prmlst : Unsigned_Longword_Array); - pragma Interface (External, FAOL); + pragma Import (External, FAOL); pragma Import_Valued_Procedure (FAOL, "SYS$FAOL", (Cond_Value_Type, String, Unsigned_Word, String, Unsigned_Longword_Array), @@ -583,7 +583,7 @@ package body System.Tasking.Debug is Message_String : String); procedure Put_Output (Message_String : String); - pragma Interface (External, Put_Output); + pragma Import (External, Put_Output); pragma Import_Valued_Procedure (Put_Output, "LIB$PUT_OUTPUT", (Cond_Value_Type, String), @@ -598,7 +598,7 @@ package body System.Tasking.Debug is Number_Of_Arguments : Integer := Integer'Null_Parameter; FAO_Argument_1 : Unsigned_Longword := Unsigned_Longword'Null_Parameter); - pragma Interface (External, Signal); + pragma Import (External, Signal); pragma Import_Procedure (Signal, "LIB$SIGNAL", (Cond_Value_Type, Integer, Unsigned_Longword), diff --git a/gcc/ada/sem_ch6.adb b/gcc/ada/sem_ch6.adb index eae2df3c0006bc58733b04b9e3ded26ca1fdda12..976d3e2f27bfa87dea4c15c5a2b8fd4399389f2c 100644 --- a/gcc/ada/sem_ch6.adb +++ b/gcc/ada/sem_ch6.adb @@ -501,6 +501,12 @@ package body Sem_Ch6 is end if; Analyze_Call (N); + + -- Mark function call if within assertion + + if In_Assertion_Expr /= 0 then + Set_In_Assertion (N); + end if; end Analyze_Function_Call; ----------------------------- diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index a3be9db025eb527147839d8a55e3092d7b814824..a3837951962e4578981bf8e9c34f40de5a21e5ac 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -554,6 +554,14 @@ package body Sem_Ch8 is Set_Renamed_Object (Id, Entity (Nam)); end if; end if; + + -- Implementation-defined aspect specifications can appear in a renaming + -- declaration, but not language-defined ones. The call to procedure + -- Analyze_Aspect_Specifications will take care of this error check. + + if Has_Aspects (N) then + Analyze_Aspect_Specifications (N, Id); + end if; end Analyze_Exception_Renaming; --------------------------- @@ -681,6 +689,14 @@ package body Sem_Ch8 is Check_Library_Unit_Renaming (N, Old_P); end if; + + -- Implementation-defined aspect specifications can appear in a renaming + -- declaration, but not language-defined ones. The call to procedure + -- Analyze_Aspect_Specifications will take care of this error check. + + if Has_Aspects (N) then + Analyze_Aspect_Specifications (N, New_P); + end if; end Analyze_Generic_Renaming; ----------------------------- @@ -728,8 +744,7 @@ package body Sem_Ch8 is then null; - -- A renaming of an unchecked union does not have an - -- actual subtype. + -- A renaming of an unchecked union has no actual subtype elsif Is_Unchecked_Union (Typ) then null; @@ -800,9 +815,7 @@ package body Sem_Ch8 is -- when the renaming is generated in removing side effects of an -- already-analyzed expression. - if Nkind (Nam) = N_Selected_Component - and then Analyzed (Nam) - then + if Nkind (Nam) = N_Selected_Component and then Analyzed (Nam) then T := Etype (Nam); Dec := Build_Actual_Subtype_Of_Component (Etype (Nam), Nam); @@ -1235,6 +1248,17 @@ package body Sem_Ch8 is end if; Set_Renamed_Object (Id, Nam); + + -- Implementation-defined aspect specifications can appear in a renaming + -- declaration, but not language-defined ones. The call to procedure + -- Analyze_Aspect_Specifications will take care of this error check. + + if Has_Aspects (N) then + Analyze_Aspect_Specifications (N, Id); + end if; + + -- Deal with dimensions + Analyze_Dimension (N); end Analyze_Object_Renaming; @@ -1381,6 +1405,14 @@ package body Sem_Ch8 is end; end if; end if; + + -- Implementation-defined aspect specifications can appear in a renaming + -- declaration, but not language-defined ones. The call to procedure + -- Analyze_Aspect_Specifications will take care of this error check. + + if Has_Aspects (N) then + Analyze_Aspect_Specifications (N, New_P); + end if; end Analyze_Package_Renaming; ------------------------------- diff --git a/gcc/ada/sem_elab.adb b/gcc/ada/sem_elab.adb index 06c994a1b430e7698bfcd3dd5205e480aba3271c..74cbdf10df6b6eb32409d02e287e159d682fe581 100644 --- a/gcc/ada/sem_elab.adb +++ b/gcc/ada/sem_elab.adb @@ -2252,6 +2252,13 @@ package body Sem_Elab is if not Suppress_Elaboration_Warnings (E) and then not Elaboration_Checks_Suppressed (E) + + -- Suppress this warning if we have a function call that occurred + -- within an assertion expression, since we can get false warnings + -- in this case, due to the out of order handling in this case. + + and then (Nkind (Original_Node (N)) /= N_Function_Call + or else not In_Assertion (Original_Node (N))) then if Inst_Case then Error_Msg_NE diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index 8d8735596fe21762a956e9ff5371584eda5fb45d..d0c9661222cb4a4483bad3371001089293184489 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -10454,8 +10454,9 @@ package body Sem_Prag is -- Implemented -- ----------------- - -- pragma Implemented (procedure_LOCAL_NAME, implementation_kind); - -- implementation_kind ::= + -- pragma Implemented (procedure_LOCAL_NAME, IMPLEMENTATION_KIND); + + -- IMPLEMENTATION_KIND ::= -- By_Entry | By_Protected_Procedure | By_Any | Optional -- "By_Any" and "Optional" are treated as synonyms in order to @@ -14945,15 +14946,17 @@ package body Sem_Prag is E := Entity (E_Id); - if E = Any_Id then - return; - else - loop - Set_Suppress_Style_Checks (E, - (Chars (Get_Pragma_Arg (Arg1)) = Name_Off)); - exit when No (Homonym (E)); - E := Homonym (E); - end loop; + if not Ignore_Style_Checks_Pragmas then + if E = Any_Id then + return; + else + loop + Set_Suppress_Style_Checks + (E, Chars (Get_Pragma_Arg (Arg1)) = Name_Off); + exit when No (Homonym (E)); + E := Homonym (E); + end loop; + end if; end if; end; @@ -14982,7 +14985,10 @@ package body Sem_Prag is -- them in the parser. if J = Slen then - Set_Style_Check_Options (Options); + if not Ignore_Style_Checks_Pragmas then + Set_Style_Check_Options (Options); + end if; + exit; end if; @@ -14992,17 +14998,23 @@ package body Sem_Prag is elsif Nkind (A) = N_Identifier then if Chars (A) = Name_All_Checks then - if GNAT_Mode then - Set_GNAT_Style_Check_Options; - else - Set_Default_Style_Check_Options; + if not Ignore_Style_Checks_Pragmas then + if GNAT_Mode then + Set_GNAT_Style_Check_Options; + else + Set_Default_Style_Check_Options; + end if; end if; elsif Chars (A) = Name_On then - Style_Check := True; + if not Ignore_Style_Checks_Pragmas then + Style_Check := True; + end if; elsif Chars (A) = Name_Off then - Style_Check := False; + if not Ignore_Style_Checks_Pragmas then + Style_Check := False; + end if; end if; end if; end if; diff --git a/gcc/ada/sinfo.adb b/gcc/ada/sinfo.adb index 32f7edaab252ab2ae438b06d380608c27cbc3763..3d5a64434f241146bfeba6257791de57e85f2cb8 100644 --- a/gcc/ada/sinfo.adb +++ b/gcc/ada/sinfo.adb @@ -1631,6 +1631,14 @@ package body Sinfo is return Flag16 (N); end Import_Interface_Present; + function In_Assertion + (N : Node_Id) return Boolean is + begin + pragma Assert (False + or else NT (N).Nkind = N_Function_Call); + return Flag4 (N); + end In_Assertion; + function In_Present (N : Node_Id) return Boolean is begin @@ -4695,6 +4703,14 @@ package body Sinfo is Set_Flag16 (N, Val); end Set_Import_Interface_Present; + procedure Set_In_Assertion + (N : Node_Id; Val : Boolean := True) is + begin + pragma Assert (False + or else NT (N).Nkind = N_Function_Call); + Set_Flag4 (N, Val); + end Set_In_Assertion; + procedure Set_In_Present (N : Node_Id; Val : Boolean := True) is begin diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index 20ad9244a01a0c9cbff0427610267ecfa1f8f461..20fb08c407187d98d48c782ce5005c27144b47e8 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -1218,6 +1218,11 @@ package Sinfo is -- pragma of the other kind is also present. This is used to avoid -- generating some unwanted error messages. + -- In_Assertion (Flag4-Sem) + -- This flag is present in N_Function_Call nodes. It is set if the + -- function is called from within an assertion expression. This is + -- used to avoid some bogus warnings about early elaboration. + -- Includes_Infinities (Flag11-Sem) -- This flag is present in N_Range nodes. It is set for the range of -- unconstrained float types defined in Standard, which include not only @@ -4757,6 +4762,7 @@ package Sinfo is -- actual parameter part) -- First_Named_Actual (Node4-Sem) -- Controlling_Argument (Node1-Sem) (set to Empty if not dispatching) + -- In_Assertion (Flag4-Sem) -- Is_Expanded_Build_In_Place_Call (Flag11-Sem) -- Do_Tag_Check (Flag13-Sem) -- No_Elaboration_Check (Flag14-Sem) @@ -8590,6 +8596,9 @@ package Sinfo is function Import_Interface_Present (N : Node_Id) return Boolean; -- Flag16 + function In_Assertion + (N : Node_Id) return Boolean; -- Flag4 + function In_Present (N : Node_Id) return Boolean; -- Flag15 @@ -9565,6 +9574,9 @@ package Sinfo is procedure Set_Import_Interface_Present (N : Node_Id; Val : Boolean := True); -- Flag16 + procedure Set_In_Assertion + (N : Node_Id; Val : Boolean := True); -- Flag4 + procedure Set_In_Present (N : Node_Id; Val : Boolean := True); -- Flag15 @@ -11952,6 +11964,7 @@ package Sinfo is pragma Inline (Interface_Present); pragma Inline (Includes_Infinities); pragma Inline (Import_Interface_Present); + pragma Inline (In_Assertion); pragma Inline (In_Present); pragma Inline (Inherited_Discriminant); pragma Inline (Instance_Spec); @@ -12272,6 +12285,7 @@ package Sinfo is pragma Inline (Set_Interface_List); pragma Inline (Set_Interface_Present); pragma Inline (Set_Import_Interface_Present); + pragma Inline (Set_In_Assertion); pragma Inline (Set_In_Present); pragma Inline (Set_Inherited_Discriminant); pragma Inline (Set_Instance_Spec); diff --git a/gcc/ada/switch-c.adb b/gcc/ada/switch-c.adb index ebb18b0c4016f25a67d1b351072f263ed7567424..2ac486bd30fd1975bede85b8dde5bee757508a63 100644 --- a/gcc/ada/switch-c.adb +++ b/gcc/ada/switch-c.adb @@ -633,6 +633,12 @@ package body Switch.C is Ptr := Ptr + 1; Check_Validity_Of_Parameters := True; + -- -gnateY (ignore Style_Checks pragmas) + + when 'Y' => + Ignore_Style_Checks_Pragmas := True; + Ptr := Ptr + 1; + -- -gnatez (final delimiter of explicit switches) -- All switches that come after -gnatez have been added by diff --git a/gcc/ada/system-vms-ia64.ads b/gcc/ada/system-vms-ia64.ads index f8ed51afad81eb7a7470af7a49f73159967dd163..bdf2b2cb7ab516479a25c31d25eb4adc0f583a51 100644 --- a/gcc/ada/system-vms-ia64.ads +++ b/gcc/ada/system-vms-ia64.ads @@ -239,7 +239,7 @@ private ---------------------------- procedure Lib_Stop (Cond_Value : Integer); - pragma Interface (C, Lib_Stop); + pragma Import (C, Lib_Stop); pragma Import_Procedure (Lib_Stop, "LIB$STOP", Mechanism => (Value)); -- Interface to VMS condition handling. Used by RTSfind and pragma -- {Import,Export}_Exception. Put here because this is the only diff --git a/gcc/ada/system-vms_64.ads b/gcc/ada/system-vms_64.ads index aa4fa3750bc31218b4e7f3c06c42dda10ebac6e3..b8c57de99917242953bd56790f849e5dd943f3e0 100644 --- a/gcc/ada/system-vms_64.ads +++ b/gcc/ada/system-vms_64.ads @@ -239,7 +239,7 @@ private ---------------------------- procedure Lib_Stop (Cond_Value : Integer); - pragma Interface (C, Lib_Stop); + pragma Import (C, Lib_Stop); pragma Import_Procedure (Lib_Stop, "LIB$STOP", Mechanism => (Value)); -- Interface to VMS condition handling. Used by RTSfind and pragma -- {Import,Export}_Exception. Put here because this is the only diff --git a/gcc/ada/usage.adb b/gcc/ada/usage.adb index f4cceb46d23033ca8ac7889cacedaf3309ef14a6..4efa6076185b4267c2b16f14724a1ad3779953c5 100644 --- a/gcc/ada/usage.adb +++ b/gcc/ada/usage.adb @@ -257,6 +257,11 @@ begin Write_Switch_Char ("eV"); Write_Line ("Validity checks on subprogram parameters"); + -- Line for -gnateY switch + + Write_Switch_Char ("eY"); + Write_Line ("Ignore all Style_Checks pragmas in source"); + -- Line for -gnatez switch Write_Switch_Char ("ez"); diff --git a/gcc/ada/vms_data.ads b/gcc/ada/vms_data.ads index ed6f1b5c4fc9df9f6aeefb99521112f07e600a6c..e2d926032396d186a0757ec4f29422439a4cddd8 100644 --- a/gcc/ada/vms_data.ads +++ b/gcc/ada/vms_data.ads @@ -1786,7 +1786,7 @@ package VMS_Data is "-gnati1"; -- NODOC (see /IDENTIFIER_CHARACTER_SET) - S_GCC_Ignore : aliased constant S := "/IGNORE_REP_CLAUSES " & + S_GCC_IgnoreR : aliased constant S := "/IGNORE_REP_CLAUSES " & "-gnatI"; -- /IGNORE_REP_CLAUSES -- @@ -1794,6 +1794,14 @@ package VMS_Data is -- comments. Useful when compiling foreign code (for example when ASIS -- is used to analyze such code). + S_GCC_IgnoreS : aliased constant S := "/IGNORE_STYLE_CHECKS_PRAGMAS " & + "-gnateY"; + -- /IGNORE_STYLE_CHECKS_PRAGMAS + -- + -- Causes all Style_Checks pragmas to be checked for legality, but + -- otherwise ignored. Allows style checks to be fully controlled by + -- command line qualifiers. + S_GCC_Immed : aliased constant S := "/IMMEDIATE_ERRORS " & "-gnatdO"; -- /NOIMMEDIATE_ERRORS (D) @@ -3660,7 +3668,8 @@ package VMS_Data is S_GCC_Help 'Access, S_GCC_Ident 'Access, S_GCC_IdentX 'Access, - S_GCC_Ignore 'Access, + S_GCC_IgnoreR 'Access, + S_GCC_IgnoreS 'Access, S_GCC_Immed 'Access, S_GCC_Inline 'Access, S_GCC_InlineX 'Access,