+2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
+ David Edelsohn <dje.gcc@gmail.com>
+
+ PR target/65058
+ * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
+ mapping class to external variable or function reference.
+ * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
+ mapping class.
+
+2015-02-16 David Eelsohn <dje.gcc@gmail.com>
+
+ PR target/53348
+ * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
+ ASM_WEAKEN_DECL if defined.
+
2015-02-16 Richard Biener <rguenther@suse.de>
PR lto/65015
section. */
const char *name = XSTR (x, 0);
+ tree decl = SYMBOL_REF_DECL (x);
+ if (decl /* sync condition with assemble_external () */
+ && DECL_P (decl) && DECL_EXTERNAL (decl) && TREE_PUBLIC (decl)
+ && (TREE_CODE (decl) == VAR_DECL
+ || TREE_CODE (decl) == FUNCTION_DECL)
+ && name[strlen (name) - 1] != ']')
+ {
+ name = concat (name,
+ (TREE_CODE (decl) == FUNCTION_DECL
+ ? "[DS]" : "[UA]"),
+ NULL);
+ XSTR (x, 0) = name;
+ }
+
if (VTABLE_NAME_P (name))
{
RS6000_OUTPUT_BASENAME (file, name);
RS6000_OUTPUT_BASENAME (data->file, buffer);
putc ('\n', data->file);
}
+#ifdef ASM_WEAKEN_DECL
else if (DECL_WEAK (n->decl) && !data->function_descriptor)
ASM_WEAKEN_DECL (data->file, n->decl, name, NULL);
+#endif
}
else
{
putc ('\n', FILE); \
fprintf(FILE, "\t.rename .%s,\".%s\"\n", buffer, NAME); \
} \
- if ((TREE_CODE (DECL) == VAR_DECL \
- || TREE_CODE (DECL) == FUNCTION_DECL) \
- && (NAME)[strlen (NAME) - 1] != ']') \
- { \
- XSTR (_symref, 0) = concat (XSTR (_symref, 0), \
- (TREE_CODE (DECL) == FUNCTION_DECL \
- ? "[DS]" : "[RW]"), \
- NULL); \
- } \
}
/* This is how to output a reference to a user-level label named NAME.