aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2017-12-13 09:18:24 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2017-12-13 09:18:24 +0000
commit692317f4310e9652099f5097313e5965703aca92 (patch)
tree255740e1636874bd43d01a60ac650f6a6718d0f6
parenta3fc8f169fc51d7774c6217056532b2540ce7290 (diff)
downloadgcc-692317f4310e9652099f5097313e5965703aca92.zip
gcc-692317f4310e9652099f5097313e5965703aca92.tar.gz
gcc-692317f4310e9652099f5097313e5965703aca92.tar.bz2
trans.c (process_freeze_entity): Be prepared for a package without body.
* gcc-interface/trans.c (process_freeze_entity): Be prepared for a package without body. From-SVN: r255601
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/trans.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 70c596e..534b8cf 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,10 @@
2017-12-13 Eric Botcazou <ebotcazou@adacore.com>
+ * gcc-interface/trans.c (process_freeze_entity): Be prepared for a
+ package without body.
+
+2017-12-13 Eric Botcazou <ebotcazou@adacore.com>
+
* gcc-interface/decl.c (gnat_to_gnu_entity): Robustify test for types
descendant of System.Address.
(gnat_to_gnu_subprog_type): Likewise.
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index 4739923..7a83acf 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -8718,12 +8718,12 @@ process_freeze_entity (Node_Id gnat_node)
const Entity_Kind kind = Ekind (gnat_entity);
tree gnu_old, gnu_new;
- /* If this is a package, we need to generate code for the package. */
+ /* If this is a package, generate code for the package body, if any. */
if (kind == E_Package)
{
- insert_code_for
- (Parent (Corresponding_Body
- (Parent (Declaration_Node (gnat_entity)))));
+ const Node_Id gnat_decl = Parent (Declaration_Node (gnat_entity));
+ if (Present (Corresponding_Body (gnat_decl)))
+ insert_code_for (Parent (Corresponding_Body (gnat_decl)));
return;
}