diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-22 17:14:51 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-22 17:14:51 +0200 |
commit | a52fefe6abf2bee1322d26f926541ed99d480617 (patch) | |
tree | daadee6c2ff3321a7be6567a2a82328b0af1604c /gcc | |
parent | 2f1e0b61936bee94c65d1c935e2f43a8d46cf9da (diff) | |
download | gcc-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/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/ada/prj-env.adb | 7 | ||||
-rw-r--r-- | gcc/ada/prj-nmsc.adb | 6 | ||||
-rw-r--r-- | gcc/ada/s-soflin.ads | 4 | ||||
-rw-r--r-- | gcc/ada/sem_res.adb | 14 | ||||
-rw-r--r-- | gcc/ada/tempdir.adb | 5 |
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 |