]> granicus.if.org Git - clang/commitdiff
merge strings created by
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 17 Jan 2011 22:11:21 +0000 (22:11 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 17 Jan 2011 22:11:21 +0000 (22:11 +0000)
const NSConstantString *appKey =  @"MyApp";

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123680 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CodeGenModule.cpp
test/CodeGenObjC/ns-constant-strings.m

index 8ae31f77509275f319dd16365ace09a49c863171..0564372a4e5de214b04b8e2045ca8e160c066e34 100644 (file)
@@ -1681,6 +1681,7 @@ CodeGenModule::GetAddrOfConstantString(const StringLiteral *Literal) {
   llvm::GlobalVariable *GV =
   new llvm::GlobalVariable(getModule(), C->getType(), isConstant, Linkage, C,
                            ".str");
+  GV->setUnnamedAddr(true);
   if (isUTF16) {
     CharUnits Align = getContext().getTypeAlignInChars(getContext().ShortTy);
     GV->setAlignment(Align.getQuantity());
index 3ef5f558422c5581be1482c79b0c3127776ad330..389132bd05eebbd8809ad9ce4af1f9bb8007ac69 100644 (file)
@@ -31,3 +31,9 @@ int main() {
 
 // CHECK-FRAGILE: @_NSConstantStringClassReference = external global
 // CHECK-NONFRAGILE: @"OBJC_CLASS_$_NSConstantString" = external global
+
+// CHECK-FRAGILE: @.str = private unnamed_addr constant [6 x i8] c"MyApp\00"
+// CHECK-FRAGILE: @.str1 = private unnamed_addr constant [7 x i8] c"MyApp1\00"
+
+// CHECK-NONFRAGILE: @.str = private unnamed_addr constant [6 x i8] c"MyApp\00"
+// CHECK-NONFRAGILE: @.str1 = private unnamed_addr constant [7 x i8] c"MyApp1\00"