[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