diff options
author | iains <iains@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-26 16:25:29 +0000 |
---|---|---|
committer | iains <iains@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-06-26 16:25:29 +0000 |
commit | 1991f4fdf50aa0b20df11a0bddb50ff9e0d34e67 (patch) | |
tree | d376fcf4439c0de9d23ae631e018610d6a137da7 /gcc/config/darwin.c | |
parent | e3260d66ed0c89a4cd7249416b56ba81d5e2c960 (diff) | |
download | ppe42-gcc-1991f4fdf50aa0b20df11a0bddb50ff9e0d34e67.tar.gz ppe42-gcc-1991f4fdf50aa0b20df11a0bddb50ff9e0d34e67.zip |
PR target/47997
* config/darwin.c (darwin_mergeable_string_section): Place string
constants in '.cstring' rather than '.const' when CF/NSStrings are
active.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175410 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/darwin.c')
-rw-r--r-- | gcc/config/darwin.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c index b47e806af06..bedda1ec65b 100644 --- a/gcc/config/darwin.c +++ b/gcc/config/darwin.c @@ -1195,7 +1195,11 @@ static section * 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 |