Commit dbc0f593 by Jakub Jelinek Committed by Jakub Jelinek

s390.c (s390_mark_symbol_ref_as_used): New function.

	* config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
	(s390_output_pool_entry): Call it through for_each_rtx.

From-SVN: r141468
parent 45bc572c
2008-10-30 Jakub Jelinek <jakub@redhat.com> 2008-10-30 Jakub Jelinek <jakub@redhat.com>
* config/s390/s390.c (s390_mark_symbol_ref_as_used): New function.
(s390_output_pool_entry): Call it through for_each_rtx.
PR middle-end/37730 PR middle-end/37730
* expr.c (store_constructor): For vectors, if target is a MEM, use * expr.c (store_constructor): For vectors, if target is a MEM, use
target's MEM_ALIAS_SET instead of elttype alias set. target's MEM_ALIAS_SET instead of elttype alias set.
......
...@@ -6664,6 +6664,24 @@ s390_chunkify_cancel (struct constant_pool *pool_list) ...@@ -6664,6 +6664,24 @@ s390_chunkify_cancel (struct constant_pool *pool_list)
} }
} }
/* Helper rtx-iteration-function for s390_output_pool_entry. Marks
SYMBOL_REFs as referenced through use of assemble_external. */
static int
s390_mark_symbol_ref_as_used (rtx *x, void *dummy ATTRIBUTE_UNUSED)
{
/* If we have a used symbol, we may have to emit assembly
annotations corresponding to whether the symbol is external, weak
or has non-default visibility. */
if (GET_CODE (*x) == SYMBOL_REF)
{
tree t = SYMBOL_REF_DECL (*x);
if (t)
assemble_external (t);
return -1;
}
return 0;
}
/* Output the constant pool entry EXP in mode MODE with alignment ALIGN. */ /* Output the constant pool entry EXP in mode MODE with alignment ALIGN. */
...@@ -6684,6 +6702,7 @@ s390_output_pool_entry (rtx exp, enum machine_mode mode, unsigned int align) ...@@ -6684,6 +6702,7 @@ s390_output_pool_entry (rtx exp, enum machine_mode mode, unsigned int align)
case MODE_INT: case MODE_INT:
assemble_integer (exp, GET_MODE_SIZE (mode), align, 1); assemble_integer (exp, GET_MODE_SIZE (mode), align, 1);
for_each_rtx (&exp, s390_mark_symbol_ref_as_used, NULL);
break; break;
default: default:
......
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