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
* expr.c (store_constructor): For vectors, if target is a MEM, use
target's MEM_ALIAS_SET instead of elttype alias set.
}
}
+/* 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. */
case MODE_INT:
assemble_integer (exp, GET_MODE_SIZE (mode), align, 1);
+ for_each_rtx (&exp, s390_mark_symbol_ref_as_used, NULL);
break;
default: