diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 6108f5b00c1..6a550999775 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,17 @@ +2014-07-29 Robert Dewar + + * sem_prag.adb (ip, rv): Prevent from being optimized away. + * gnatls.adb (gnatls): Set E_Fatal exit status if ali file not found. + * s-imgllb.adb, s-imgllw.adb, s-imgwiu.adb, s-imgbiu.adb: Minor + reformatting. + +2014-07-29 Vincent Celier + + * prj-pp.adb: Minor comment update. + * frontend.adb: If a target dependency info file has been read + through switch -gnateT= add it to the dependencies of the source + being compiled. + 2014-07-29 Robert Dewar * sem_ch3.adb, prj.adb: Minor reformatting. diff --git a/gcc/ada/frontend.adb b/gcc/ada/frontend.adb index 020fab44682..dd58c86c3c8 100644 --- a/gcc/ada/frontend.adb +++ b/gcc/ada/frontend.adb @@ -314,6 +314,20 @@ begin Opt.Suppress_Options := Scope_Suppress; end; + -- If a target dependency info file has been read through switch -gnateT=, + -- add it to the dependencies. + + if Target_Dependent_Info_Read_Name /= null then + declare + Index : Source_File_Index; + begin + Name_Len := 0; + Add_Str_To_Name_Buffer (Target_Dependent_Info_Read_Name.all); + Index := Load_Config_File (Name_Enter); + Prepcomp.Add_Dependency (Index); + end; + end if; + -- This is where we can capture the value of the compilation unit specific -- restrictions that have been set by the config pragma files (or from -- Targparm), for later restoration when processing e.g. subunits. diff --git a/gcc/ada/gnatls.adb b/gcc/ada/gnatls.adb index 4a7c2176a62..576b41a17e4 100644 --- a/gcc/ada/gnatls.adb +++ b/gcc/ada/gnatls.adb @@ -129,6 +129,9 @@ procedure Gnatls is RTS_Specified : String_Access := null; -- Used to detect multiple use of --RTS= switch + Exit_Status : Exit_Code_Type := E_Success; + -- Reset to E_Fatal if bad error found + ----------------------- -- Local Subprograms -- ----------------------- @@ -1764,7 +1767,7 @@ begin Initialize_ALI; Initialize_ALI_Source; - -- Print out all library for which no ALI files can be located + -- Print out all libraries for which no ALI files can be located while More_Lib_Files loop Main_File := Next_Main_Lib_File; @@ -1782,6 +1785,7 @@ begin Write_Str (Name_Buffer (1 .. Name_Len)); Write_Char ('"'); -- " Write_Eol; + Exit_Status := E_Fatal; end if; else @@ -1906,5 +1910,5 @@ begin -- All done. Set proper exit status Namet.Finalize; - Exit_Program (E_Success); + Exit_Program (Exit_Status); end Gnatls; diff --git a/gcc/ada/prj-pp.adb b/gcc/ada/prj-pp.adb index 7c21e101939..30402eae41b 100644 --- a/gcc/ada/prj-pp.adb +++ b/gcc/ada/prj-pp.adb @@ -85,8 +85,7 @@ package body Prj.PP is -- Outputs the indentation at the beginning of the line procedure Output_Project_File (S : Name_Id); - -- Output a string for a project file name. No concatenation even if the - -- line is too long. What does that mean??? + -- Output a project file name in one single string literal procedure Output_String (S : Name_Id; Indent : Natural); -- Outputs a string using the default output procedures diff --git a/gcc/ada/s-imgbiu.adb b/gcc/ada/s-imgbiu.adb index f7b0f452162..66c76f5d7e6 100644 --- a/gcc/ada/s-imgbiu.adb +++ b/gcc/ada/s-imgbiu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, 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- -- @@ -99,6 +99,10 @@ package body System.Img_BIU is procedure Set_Digits (T : Unsigned); -- Set digits of absolute value of T + ---------------- + -- Set_Digits -- + ---------------- + procedure Set_Digits (T : Unsigned) is begin if T >= BU then diff --git a/gcc/ada/s-imgllb.adb b/gcc/ada/s-imgllb.adb index 2ab1e4d76ad..3f0da252883 100644 --- a/gcc/ada/s-imgllb.adb +++ b/gcc/ada/s-imgllb.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, 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- -- @@ -102,6 +102,10 @@ package body System.Img_LLB is procedure Set_Digits (T : Long_Long_Unsigned); -- Set digits of absolute value of T + ---------------- + -- Set_Digits -- + ---------------- + procedure Set_Digits (T : Long_Long_Unsigned) is begin if T >= BU then diff --git a/gcc/ada/s-imgllw.adb b/gcc/ada/s-imgllw.adb index c4670d288a3..78d86747a81 100644 --- a/gcc/ada/s-imgllw.adb +++ b/gcc/ada/s-imgllw.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, 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- -- @@ -96,6 +96,10 @@ package body System.Img_LLW is procedure Set_Digits (T : Long_Long_Unsigned); -- Set digits of absolute value of T + ---------------- + -- Set_Digits -- + ---------------- + procedure Set_Digits (T : Long_Long_Unsigned) is begin if T >= 10 then diff --git a/gcc/ada/s-imgwiu.adb b/gcc/ada/s-imgwiu.adb index 62dd9c1359d..022f75ccf3f 100644 --- a/gcc/ada/s-imgwiu.adb +++ b/gcc/ada/s-imgwiu.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2014, 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- -- @@ -94,6 +94,10 @@ package body System.Img_WIU is procedure Set_Digits (T : Unsigned); -- Set digits of absolute value of T + ---------------- + -- Set_Digits -- + ---------------- + procedure Set_Digits (T : Unsigned) is begin if T >= 10 then diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb index a25f451a00c..3571073617d 100644 --- a/gcc/ada/sem_prag.adb +++ b/gcc/ada/sem_prag.adb @@ -315,7 +315,19 @@ package body Sem_Prag is -- pragma. Entity name for unit and its parents is taken from item in -- previous with_clause that mentions the unit. + Dummy : Integer := 0; + pragma Volatile (Dummy); + -- Dummy volatile integer used in bodies of ip/rv to prevent optimization + + procedure ip; + pragma No_Inline (ip); + -- A dummy procedure called when pragma Inspection_Point is analyzed. This + -- is just to help debugging the front end. If a pragma Inspection_Point + -- is added to a source program, then breaking on ip will get you to that + -- point in the program. + procedure rv; + pragma No_Inline (rv); -- This is a dummy function called by the processing for pragma Reviewable. -- It is there for assisting front end debugging. By placing a Reviewable -- pragma in the source program, a breakpoint on rv catches this place in @@ -15416,23 +15428,6 @@ package body Sem_Prag is Arg : Node_Id; Exp : Node_Id; - procedure ip; - -- A dummy procedure called when pragma Inspection_Point is - -- analyzed. This is just to help debugging the front end. If - -- a pragma Inspection_Point is added to a source program, then - -- breaking on ip will get you to that point in the program. - - -------- - -- ip -- - -------- - - procedure ip is - begin - null; - end ip; - - -- Start of processing for Inspection_Point - begin ip; @@ -25185,6 +25180,15 @@ package body Sem_Prag is Externals.Init; end Initialize; + -------- + -- ip -- + -------- + + procedure ip is + begin + Dummy := Dummy + 1; + end ip; + ----------------------------- -- Is_Config_Static_String -- ----------------------------- @@ -26119,7 +26123,7 @@ package body Sem_Prag is procedure rv is begin - null; + Dummy := Dummy + 1; end rv; --------------------------------