Commit 307233c2 by Andrew Haley Committed by Andrew Haley

constants.c (build_constant_data_ref): Make sure we only build one copy of the…

constants.c (build_constant_data_ref): Make sure we only build one copy of the decl for the constant pool.

2008-10-14  Andrew Haley  <aph@redhat.com>

        * constants.c (build_constant_data_ref): Make sure we only build
        one copy of the decl for the constant pool.

From-SVN: r141133
parent f6e6e990
2008-10-14 Andrew Haley <aph@redhat.com>
* constants.c (build_constant_data_ref): Make sure we only build
one copy of the decl for the constant pool.
2008-09-22 Andrew Haley <aph@redhat.com>
* expr.c (rules): Add new rule for
......
......@@ -448,21 +448,25 @@ build_constant_data_ref (bool indirect)
}
else
{
tree type, decl;
tree decl_name = mangled_classname ("_CD_", output_class);
tree decl = IDENTIFIER_GLOBAL_VALUE (decl_name);
/* Build a type with unspecified bounds. The will make sure
that targets do the right thing with whatever size we end
up with at the end. Using bounds that are too small risks
assuming the data is in the small data section. */
type = build_array_type (ptr_type_node, NULL_TREE);
/* We need to lay out the type ourselves, since build_array_type
thinks the type is incomplete. */
layout_type (type);
decl = build_decl (VAR_DECL, decl_name, type);
TREE_STATIC (decl) = 1;
if (! decl)
{
/* Build a type with unspecified bounds. The will make sure
that targets do the right thing with whatever size we end
up with at the end. Using bounds that are too small risks
assuming the data is in the small data section. */
tree type = build_array_type (ptr_type_node, NULL_TREE);
/* We need to lay out the type ourselves, since build_array_type
thinks the type is incomplete. */
layout_type (type);
decl = build_decl (VAR_DECL, decl_name, type);
TREE_STATIC (decl) = 1;
IDENTIFIER_GLOBAL_VALUE (decl_name) = decl;
}
return decl;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment