diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index b422f32e1d3..3c3c4870eda 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2011-11-04 Eric Botcazou + + * gcc-interface/decl.c (gnat_to_gnu_entity) : Do not assert + that the type of the parameters isn't dummy in type_annotate_only mode. + 2011-11-04 Matthew Heaney * 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 49434430ecd..d7ca5dbbe6e 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 24366e971d0..14f3baba745 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2011-11-04 Eric Botcazou + + * gnat.dg/specs/private1[-sub].ads: New test. + 2011-11-04 Mikael Morin 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 00000000000..0dcbbd0569c --- /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 00000000000..4ef06004352 --- /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;