aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-04-22 17:14:51 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-04-22 17:14:51 +0200
commita52fefe6abf2bee1322d26f926541ed99d480617 (patch)
treedaadee6c2ff3321a7be6567a2a82328b0af1604c /gcc
parent2f1e0b61936bee94c65d1c935e2f43a8d46cf9da (diff)
downloadgcc-a52fefe6abf2bee1322d26f926541ed99d480617.zip
gcc-a52fefe6abf2bee1322d26f926541ed99d480617.tar.gz
gcc-a52fefe6abf2bee1322d26f926541ed99d480617.tar.bz2
[multiple changes]
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. From-SVN: r146587
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog19
-rw-r--r--gcc/ada/prj-env.adb7
-rw-r--r--gcc/ada/prj-nmsc.adb6
-rw-r--r--gcc/ada/s-soflin.ads4
-rw-r--r--gcc/ada/sem_res.adb14
-rw-r--r--gcc/ada/tempdir.adb5
6 files changed, 43 insertions, 12 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 235cf53..8d822c7 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,22 @@
+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,
diff --git a/gcc/ada/prj-env.adb b/gcc/ada/prj-env.adb
index 3b0b1e5..a56ce931 100644
--- a/gcc/ada/prj-env.adb
+++ b/gcc/ada/prj-env.adb
@@ -1246,9 +1246,10 @@ package body Prj.Env is
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;
diff --git a/gcc/ada/prj-nmsc.adb b/gcc/ada/prj-nmsc.adb
index daff8ef..46f14a8 100644
--- a/gcc/ada/prj-nmsc.adb
+++ b/gcc/ada/prj-nmsc.adb
@@ -2909,8 +2909,10 @@ package body Prj.Nmsc is
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;
diff --git a/gcc/ada/s-soflin.ads b/gcc/ada/s-soflin.ads
index 6c868cd..16b483b 100644
--- a/gcc/ada/s-soflin.ads
+++ b/gcc/ada/s-soflin.ads
@@ -207,11 +207,11 @@ package System.Soft_Links is
-- 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;
--
diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb
index e166954..4a66456 100644
--- a/gcc/ada/sem_res.adb
+++ b/gcc/ada/sem_res.adb
@@ -6,7 +6,7 @@
-- --
-- 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- --
@@ -3170,6 +3170,18 @@ package body Sem_Res is
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))
diff --git a/gcc/ada/tempdir.adb b/gcc/ada/tempdir.adb
index 1612140..b443307 100644
--- a/gcc/ada/tempdir.adb
+++ b/gcc/ada/tempdir.adb
@@ -94,10 +94,7 @@ package body Tempdir is
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