summaryrefslogtreecommitdiff
path: root/gcc/ada/inline.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-03 09:53:11 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2011-08-03 09:53:11 +0000
commit4278abe43558660ecf4a08ac194843f1dfc348df (patch)
tree54d88e5f353bae2cfe465967b5729b917f1aceee /gcc/ada/inline.adb
parentb5214f00570f7d501a7a1b21a5850b3b7cf6c00e (diff)
downloadgcc-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.adb7
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;