[llvm-commits] [llvm-gcc-4.2] r66948 - in /llvm-gcc-4.2/trunk/gcc: config/darwin.h llvm-convert.cpp
Stuart Hastings
stuart at apple.com
Fri Mar 13 14:02:54 PDT 2009
Author: stuart
Date: Fri Mar 13 16:02:52 2009
New Revision: 66948
URL: http://llvm.org/viewvc/llvm-project?rev=66948&view=rev
Log:
Fix -fwritable-strings on Darwin.
Modified:
llvm-gcc-4.2/trunk/gcc/config/darwin.h
llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.h?rev=66948&r1=66947&r2=66948&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin.h Fri Mar 13 16:02:52 2009
@@ -691,6 +691,7 @@
/* Assign STRING_CSTs to the .cstring section. */
#define LLVM_CSTRING_SECTION "__TEXT,__cstring,cstring_literals"
+#define LLVM_CONST_DATA_SECTION "__DATA,__const"
#endif
/* LLVM LOCAL end */
Modified: llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp?rev=66948&r1=66947&r2=66948&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/trunk/gcc/llvm-convert.cpp Fri Mar 13 16:02:52 2009
@@ -7215,8 +7215,15 @@
#ifdef LLVM_CSTRING_SECTION
// For Darwin, try to put it into the .cstring section.
if (TAI && TAI->SectionKindForGlobal(GV) == SectionKind::RODataMergeStr)
+ // RODataMergeStr implies that StringIsConstant will be true here.
+ // The Darwin linker will coalesce strings in this section.
GV->setSection(LLVM_CSTRING_SECTION);
-#endif
+#ifdef LLVM_CONST_DATA_SECTION
+ else if (!StringIsConstant)
+ // .const_data ("__DATA, __const" on Darwin).
+ GV->setSection(LLVM_CONST_DATA_SECTION);
+#endif // LLVM_CONST_DATA_SECTION
+#endif // LLVM_CSTRING_SECTION
return GV;
}
More information about the llvm-commits
mailing list