diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-06-18 16:19:10 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-06-18 16:19:10 +0200 |
commit | 9c8ff9b97dcd074b15fed2adad2c9a30080757da (patch) | |
tree | ebf78562e855ed4fd01b50f96a28fc35649d7cdb /gcc | |
parent | afb2d209040ffd4e61996f4e080cc5a5146ba437 (diff) | |
download | gcc-9c8ff9b97dcd074b15fed2adad2c9a30080757da.zip gcc-9c8ff9b97dcd074b15fed2adad2c9a30080757da.tar.gz gcc-9c8ff9b97dcd074b15fed2adad2c9a30080757da.tar.bz2 |
[multiple changes]
2010-06-18 Vincent Celier <celier@adacore.com>
* gnatname.adb (Scan_Args): When --and is used, make sure that the
dynamic tables in the newly allocated Argument_Data are properly
initialized.
2010-06-18 Eric Botcazou <ebotcazou@adacore.com>
* gnat1drv.adb: Fix comment.
2010-06-18 Ed Schonberg <schonberg@adacore.com>
* exp_ch6.adb (Expand_Inlined_Call): If the inlined subprogram is a
renaming, re-expand the call with the renamed subprogram if that one
is marked inlined as well.
From-SVN: r160995
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/ada/exp_ch6.adb | 6 | ||||
-rw-r--r-- | gcc/ada/gnat1drv.adb | 2 | ||||
-rw-r--r-- | gcc/ada/gnatname.adb | 13 |
4 files changed, 33 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 9c67c1f..f2cf3b3 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,19 @@ +2010-06-18 Vincent Celier <celier@adacore.com> + + * gnatname.adb (Scan_Args): When --and is used, make sure that the + dynamic tables in the newly allocated Argument_Data are properly + initialized. + +2010-06-18 Eric Botcazou <ebotcazou@adacore.com> + + * gnat1drv.adb: Fix comment. + +2010-06-18 Ed Schonberg <schonberg@adacore.com> + + * exp_ch6.adb (Expand_Inlined_Call): If the inlined subprogram is a + renaming, re-expand the call with the renamed subprogram if that one + is marked inlined as well. + 2010-06-18 Gary Dismukes <dismukes@adacore.com> * gnat1drv.adb (Adjust_Global_Switches): Enable diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index 08f7d7c..34d6114 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -3725,10 +3725,14 @@ package body Exp_Ch6 is -- directly, because the subprograms are subtype conformant. If -- the renamed subprogram is an inherited operation, we must redo -- the expansion because implicit conversions may be needed. + -- Similarly, if the renamed entity is inlined, expand the call + -- for further optimizations. Set_Name (N, New_Occurrence_Of (Orig_Bod, Loc)); - if Present (Alias (Orig_Bod)) then + if Present (Alias (Orig_Bod)) + or else Is_Inlined (Orig_Bod) + then Expand_Call (N); end if; diff --git a/gcc/ada/gnat1drv.adb b/gcc/ada/gnat1drv.adb index 33dcfb8..76662c3 100644 --- a/gcc/ada/gnat1drv.adb +++ b/gcc/ada/gnat1drv.adb @@ -374,7 +374,7 @@ procedure Gnat1drv is Back_End_Handles_Limited_Types := False; -- Otherwise normal gcc back end, for now still turn flag off by - -- default, since we have not verified proper back end handling. + -- default, since there are unresolved problems in the front end. else Back_End_Handles_Limited_Types := False; diff --git a/gcc/ada/gnatname.adb b/gcc/ada/gnatname.adb index 4c935be..8078759 100644 --- a/gcc/ada/gnatname.adb +++ b/gcc/ada/gnatname.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 2001-2010, 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- -- @@ -306,7 +306,16 @@ procedure Gnatname is -- Add and initialize another component to Arguments table - Arguments.Increment_Last; + declare + New_Arguments : Argument_Data; + pragma Warnings (Off, New_Arguments); + -- Declaring this defaulted itialized object ensures that + -- the new allocated component of table Arguments is + -- correctly initialized. + + begin + Arguments.Append (New_Arguments); + end; Patterns.Init (Arguments.Table (Arguments.Last).Directories); |