PR target/47997
* config/darwin.c (darwin_mergeable_string_section): Place string
constants in '.cstring' rather than '.const' when CF/NSStrings are
active.
From-SVN: r175410
+2011-06-25 Iain Sandoe <iains@gcc.gnu.org>
+
+ PR target/47997
+ * config/darwin.c (darwin_mergeable_string_section): Place string
+ constants in '.cstring' rather than '.const' when CF/NSStrings are
+ active.
+
2011-06-26 Eric Botcazou <ebotcazou@adacore.com>
* config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
darwin_mergeable_string_section (tree exp,
unsigned HOST_WIDE_INT align)
{
- if (flag_merge_constants
+ /* Darwin's ld expects to see non-writable string literals in the .cstring
+ section. Later versions of ld check and complain when CFStrings are
+ enabled. Therefore we shall force the strings into .cstring since we
+ don't support writable ones anyway. */
+ if ((darwin_constant_cfstrings || flag_merge_constants)
&& TREE_CODE (exp) == STRING_CST
&& TREE_CODE (TREE_TYPE (exp)) == ARRAY_TYPE
&& align <= 256