+2014-07-29 Robert Dewar <dewar@adacore.com>
+
+ * 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 <celier@adacore.com>
+
+ * 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 <dewar@adacore.com>
* sem_ch3.adb, prj.adb: Minor reformatting.
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.
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 --
-----------------------
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;
Write_Str (Name_Buffer (1 .. Name_Len));
Write_Char ('"'); -- "
Write_Eol;
+ Exit_Status := E_Fatal;
end if;
else
-- All done. Set proper exit status
Namet.Finalize;
- Exit_Program (E_Success);
+ Exit_Program (Exit_Status);
end Gnatls;
-- 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
-- --
-- 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- --
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
-- --
-- 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- --
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
-- --
-- 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- --
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
-- --
-- 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- --
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
-- 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
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;
Externals.Init;
end Initialize;
+ --------
+ -- ip --
+ --------
+
+ procedure ip is
+ begin
+ Dummy := Dummy + 1;
+ end ip;
+
-----------------------------
-- Is_Config_Static_String --
-----------------------------
procedure rv is
begin
- null;
+ Dummy := Dummy + 1;
end rv;
--------------------------------