* sem_res.adb: Create block around procedure call when actual is a
concatenation.
2009-04-22 Thomas Quinot <quinot@adacore.com>
* s-soflin.ads: Fix typos
2009-04-22 Vincent Celier <celier@adacore.com>
* prj-env.adb: Minor comment change
* prj-nmsc.adb (Check_Common): Add guard to avoid calling
Get_Name_String with No_File.
* tempdir.adb (Create_Temp_File): Output diagnostic when temp file
cannot be created even when not in verbose mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146587
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-04-22 Ed Schonberg <schonberg@adacore.com>
+
+ * sem_res.adb: Create block around procedure call when actual is a
+ concatenation.
+
+2009-04-22 Thomas Quinot <quinot@adacore.com>
+
+ * s-soflin.ads: Fix typos
+
+2009-04-22 Vincent Celier <celier@adacore.com>
+
+ * prj-env.adb: Minor comment change
+
+ * prj-nmsc.adb (Check_Common): Add guard to avoid calling
+ Get_Name_String with No_File.
+
+ * tempdir.adb (Create_Temp_File): Output diagnostic when temp file
+ cannot be created even when not in verbose mode.
+
2009-04-22 Emmanuel Briot <briot@adacore.com>
* make.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj.adb,
GNAT.OS_Lib.Close (File, Status);
if not Status then
- Prj.Com.Fail ("disk full, could not create mapping file");
- -- Do we know this is disk full? Or could it be e.g. a protection
- -- problem of some kind preventing creation of the file ???
+ Prj.Com.Fail ("disk full, could not write mapping file");
+ -- We were able to create the temporary file, so there is no problem
+ -- of protection. However, we are not able to close it, so there must
+ -- be a capacity problem that we express using "disk full".
end if;
end Create_Mapping_File;
end;
end if;
- Write_Attr
- ("Dot_Replacement", Get_Name_String (Dot_Replacement));
+ if Dot_Replacement /= No_File then
+ Write_Attr
+ ("Dot_Replacement", Get_Name_String (Dot_Replacement));
+ end if;
Casing_Defined := False;
-- Locked_Processing : begin
-- System.Soft_Links.Lock_Task.all;
-- ...
- -- System.Soft_Links..Unlock_Task.all;
+ -- System.Soft_Links.Unlock_Task.all;
--
-- exception
-- when others =>
- -- System.Soft_Links..Unlock_Task.all;
+ -- System.Soft_Links.Unlock_Task.all;
-- raise;
-- end Locked_Processing;
--
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2008, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2009, 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- --
then
Establish_Transient_Scope (A, False);
+ -- A small optimization: if one of the actuals is a concatenation
+ -- create a block around a procedure call to recover stack space.
+ -- This alleviates stack usage when several procedure calls in
+ -- the same statement list use concatenation.
+
+ elsif Nkind (A) = N_Op_Concat
+ and then Nkind (N) = N_Procedure_Call_Statement
+ and then Expander_Active
+ then
+ Establish_Transient_Scope (A, False);
+ Resolve (A, Etype (F));
+
else
if Nkind (A) = N_Type_Conversion
and then Is_Array_Type (Etype (F))
end if;
if FD = Invalid_FD then
- if Verbose_Mode then
- Write_Line ("could not create temporary file in " & Directory);
- end if;
-
+ Write_Line ("could not create temporary file in " & Directory);
Name := No_Path;
else