diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-03 09:53:11 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-03 09:53:11 +0000 |
commit | 4278abe43558660ecf4a08ac194843f1dfc348df (patch) | |
tree | 54d88e5f353bae2cfe465967b5729b917f1aceee /gcc/ada/inline.adb | |
parent | b5214f00570f7d501a7a1b21a5850b3b7cf6c00e (diff) | |
download | gcc-4278abe43558660ecf4a08ac194843f1dfc348df.tar.gz |
2011-08-03 Ed Schonberg <schonberg@adacore.com>
* inline.adb: proper handling of init_procs.
* sem_res.adb (Resolve_Op_Concat_Arg): if the argument is an aggregate
and the component type is composite, this is ambiguous for predefined
concatenation, but if the node is not overloaded and the entity is a use
-defined function its profile can be used to resolve that aggregate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177254 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/inline.adb')
-rw-r--r-- | gcc/ada/inline.adb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/inline.adb b/gcc/ada/inline.adb index c508ef4bb96..0d184dd45b2 100644 --- a/gcc/ada/inline.adb +++ b/gcc/ada/inline.adb @@ -344,12 +344,17 @@ package body Inline is elsif not Is_Inlined (Pack) and then (not Has_Completion (E) - or else Is_Init_Proc (E) or else Is_Expression_Function (E)) then Set_Is_Inlined (Pack); Inlined_Bodies.Increment_Last; Inlined_Bodies.Table (Inlined_Bodies.Last) := Pack; + + -- an initialization procedure should be inlined, but it does + -- not require the body of the package. + + elsif Is_Init_Proc (E) then + Set_Is_Inlined (Pack); end if; end if; end; |