aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2018-05-22 13:23:12 +0000
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>2018-05-22 13:23:12 +0000
commit6b3035ab58483345370f144fd9b12e8e072027e4 (patch)
tree9cab7653363831bb9a2c0937912f5783ec1c5f9e
parent85c73d636947efcb3555ce521c6064717a559615 (diff)
downloadgcc-6b3035ab58483345370f144fd9b12e8e072027e4.zip
gcc-6b3035ab58483345370f144fd9b12e8e072027e4.tar.gz
gcc-6b3035ab58483345370f144fd9b12e8e072027e4.tar.bz2
[Ada] Ignore pragma Elaborate_Body in spec of a SAL_Interface package
2018-05-22 Bob Duff <duff@adacore.com> gcc/ada/ * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in the spec of a SAL_Interface package. From-SVN: r260517
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/binde.adb8
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 378ccad..6f73f88 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2018-05-22 Bob Duff <duff@adacore.com>
+
+ * binde.adb: (Choose): Ignore a pragma Elaborate_Body that appears in
+ the spec of a SAL_Interface package.
+
2018-05-22 Ed Schonberg <schonberg@adacore.com>
* freeze.adb (Freeze_Entity): When analyzing delayed aspects of an
diff --git a/gcc/ada/binde.adb b/gcc/ada/binde.adb
index 6874b91..72a6716 100644
--- a/gcc/ada/binde.adb
+++ b/gcc/ada/binde.adb
@@ -1123,6 +1123,14 @@ package body Binde is
and then Units.Table (Chosen).RCI
then
null;
+
+ -- If this unit is an interface to a stand-alone library, then we
+ -- don't want to elaborate the body -- that will happen as part of
+ -- the library.
+
+ elsif Units.Table (Chosen).SAL_Interface then
+ null;
+
else
Choose
(Elab_Order => Elab_Order,