Commit 15409448 by Jason Merrill Committed by Jason Merrill

varasm.c (assemble_variable): Call resolve_unique_section before checking DECL_SECTION_NAME.

        * varasm.c (assemble_variable): Call resolve_unique_section before
        checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
        of error_mark_node.

From-SVN: r50824
parent 32135a8c
2002-03-15 Jason Merrill <jason@redhat.com>
* varasm.c (assemble_variable): Call resolve_unique_section before
checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL
of error_mark_node.
2002-03-15 Richard Earnshaw <rearnsha@arm.com> 2002-03-15 Richard Earnshaw <rearnsha@arm.com>
PR target/5170 PR target/5170
......
...@@ -1602,6 +1602,13 @@ assemble_variable (decl, top_level, at_end, dont_output_data) ...@@ -1602,6 +1602,13 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
if (TREE_PUBLIC (decl)) if (TREE_PUBLIC (decl))
maybe_assemble_visibility (decl); maybe_assemble_visibility (decl);
/* Output any data that we will need to use the address of. */
if (DECL_INITIAL (decl) == error_mark_node)
reloc = contains_pointers_p (TREE_TYPE (decl)) ? 3 : 0;
else if (DECL_INITIAL (decl))
reloc = output_addressed_constants (DECL_INITIAL (decl));
resolve_unique_section (decl, reloc);
/* Handle uninitialized definitions. */ /* Handle uninitialized definitions. */
if ((DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node if ((DECL_INITIAL (decl) == 0 || DECL_INITIAL (decl) == error_mark_node
...@@ -1652,14 +1659,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data) ...@@ -1652,14 +1659,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
if (TREE_PUBLIC (decl) && DECL_NAME (decl)) if (TREE_PUBLIC (decl) && DECL_NAME (decl))
globalize_decl (decl); globalize_decl (decl);
/* Output any data that we will need to use the address of. */
if (DECL_INITIAL (decl) == error_mark_node)
reloc = contains_pointers_p (TREE_TYPE (decl)) ? 3 : 0;
else if (DECL_INITIAL (decl))
reloc = output_addressed_constants (DECL_INITIAL (decl));
/* Switch to the appropriate section. */ /* Switch to the appropriate section. */
resolve_unique_section (decl, reloc);
variable_section (decl, reloc); variable_section (decl, reloc);
/* dbxout.c needs to know this. */ /* dbxout.c needs to know this. */
...@@ -1684,7 +1684,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data) ...@@ -1684,7 +1684,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
if (!dont_output_data) if (!dont_output_data)
{ {
if (DECL_INITIAL (decl)) if (DECL_INITIAL (decl) && DECL_INITIAL (decl) != error_mark_node)
/* Output the actual data. */ /* Output the actual data. */
output_constant (DECL_INITIAL (decl), output_constant (DECL_INITIAL (decl),
tree_low_cst (DECL_SIZE_UNIT (decl), 1), tree_low_cst (DECL_SIZE_UNIT (decl), 1),
......
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