utils2.c (gnat_build_constructor): Test the TREE_STATIC flag of elements to compute that of the constructor.

* gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC
	flag of elements to compute that of the constructor.

From-SVN: r182203
This commit is contained in:
Eric Botcazou 2011-12-11 11:05:58 +00:00 committed by Eric Botcazou
parent 4f96985d58
commit cce30ea89c
4 changed files with 26 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-12-11 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/utils2.c (gnat_build_constructor): Test the TREE_STATIC
flag of elements to compute that of the constructor.
2011-12-11 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_param): Set the restrict qualifier

View File

@ -1817,7 +1817,7 @@ gnat_build_constructor (tree type, VEC(constructor_elt,gc) *v)
FOR_EACH_CONSTRUCTOR_ELT (v, n_elmts, obj, val)
{
/* The predicate must be in keeping with output_constructor. */
if (!TREE_CONSTANT (val)
if ((!TREE_CONSTANT (val) && !TREE_STATIC (val))
|| (TREE_CODE (type) == RECORD_TYPE
&& CONSTRUCTOR_BITFIELD_P (obj)
&& !initializer_constant_valid_for_bitfield_p (val))

View File

@ -1,3 +1,7 @@
2011-12-11 Eric Botcazou <ebotcazou@adacore.com>
* gnat.dg/specs/elab3.ads: New test.
2011-12-10 Richard Henderson <rth@redhat.com>
* gcc.target/powerpc/altivec-perm-1.c: New.

View File

@ -0,0 +1,16 @@
-- { dg-do compile }
pragma Restrictions(No_Elaboration_Code);
package Elab3 is
type T_List is array (Positive range <>) of Integer;
type T_List_Access is access constant T_List;
type R is record
A : T_List_Access;
end record;
C : constant R := (A => null);
end Elab3;