OSDN Git Service

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not assert
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Nov 2011 10:27:02 +0000 (10:27 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 4 Nov 2011 10:27:02 +0000 (10:27 +0000)
that the type of the parameters isn't dummy in type_annotate_only mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180931 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/gcc-interface/decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/specs/private1-sub.ads [new file with mode: 0644]
gcc/testsuite/gnat.dg/specs/private1.ads [new file with mode: 0644]

index b422f32..3c3c487 100644 (file)
@@ -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],
index 4943443..d7ca5db 100644 (file)
@@ -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)
              {
index 24366e9..14f3bab 100644 (file)
@@ -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 (file)
index 0000000..0dcbbd0
--- /dev/null
@@ -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 (file)
index 0000000..4ef0600
--- /dev/null
@@ -0,0 +1,5 @@
+package Private1 is
+   type T is private;
+private
+   type T is new Boolean;
+end Private1;