aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2011-11-04 10:27:02 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2011-11-04 10:27:02 +0000
commit25ec1790d7c10ecdd9bbe7bf80a310b8b4d7841d (patch)
treead974995f91b3fe9ee50426663ceee191a3d40ba /gcc
parenta31945d7ce7a91aeb5afd885777f0e87a6404188 (diff)
downloadgcc-25ec1790d7c10ecdd9bbe7bf80a310b8b4d7841d.zip
gcc-25ec1790d7c10ecdd9bbe7bf80a310b8b4d7841d.tar.gz
gcc-25ec1790d7c10ecdd9bbe7bf80a310b8b4d7841d.tar.bz2
decl.c (gnat_to_gnu_entity): Do not assert that the type of the parameters isn't dummy in type_annotate_only...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert that the type of the parameters isn't dummy in type_annotate_only mode. From-SVN: r180931
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/decl.c3
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gnat.dg/specs/private1-sub.ads13
-rw-r--r--gcc/testsuite/gnat.dg/specs/private1.ads5
5 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index b422f32..3c3c487 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
+ that the type of the parameters isn't dummy in type_annotate_only mode.
+
2011-11-04 Matthew Heaney <heaney@adacore.com>
* a-cdlili.ad[sb], a-cidlli.ad[sb], a-coorse.ad[sb], a-ciorse.ad[sb],
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 4943443..d7ca5db 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -4185,7 +4185,8 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
/* The failure of this assertion will very likely come from an
order of elaboration issue for the type of the parameter. */
gcc_assert (kind == E_Subprogram_Type
- || !TYPE_IS_DUMMY_P (gnu_param_type));
+ || !TYPE_IS_DUMMY_P (gnu_param_type)
+ || type_annotate_only);
if (gnu_param)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 24366e9..14f3bab 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2011-11-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/private1[-sub].ads: New test.
+
2011-11-04 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/43829
diff --git a/gcc/testsuite/gnat.dg/specs/private1-sub.ads b/gcc/testsuite/gnat.dg/specs/private1-sub.ads
new file mode 100644
index 0000000..0dcbbd0
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/private1-sub.ads
@@ -0,0 +1,13 @@
+-- { dg-do compile }
+-- { dg-options "-gnatct" }
+
+package Private1.Sub is
+
+ package Nested is
+ type T is limited private;
+ function "=" (X, Y : T) return Boolean;
+ private
+ type T is new Private1.T;
+ end Nested;
+
+end Private1.Sub;
diff --git a/gcc/testsuite/gnat.dg/specs/private1.ads b/gcc/testsuite/gnat.dg/specs/private1.ads
new file mode 100644
index 0000000..4ef0600
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/specs/private1.ads
@@ -0,0 +1,5 @@
+package Private1 is
+ type T is private;
+private
+ type T is new Boolean;
+end Private1;