diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-10 22:34:03 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-01-10 22:34:03 +0000 |
commit | 1257bc6ee76b931e3f8e51a88298b95379963d24 (patch) | |
tree | 61dfbfc7b4abc09b6d223d56bebd53ca4c96d5c9 | |
parent | 3cae5c9a79bfd2e27eb44c32b13dfacd2ce5c66f (diff) |
Add unnamed_addr when creating artificial string globals. For example, in
static const char foo[] = "foo";
static const char *bar = "bar";
the global created to hold "bar" will have it, but foo will not.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123192 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/CodeGenModule.cpp | 9 | ||||
-rw-r--r-- | test/CodeGen/blocksignature.c | 8 | ||||
-rw-r--r-- | test/CodeGen/const-init.c | 2 | ||||
-rw-r--r-- | test/CodeGen/darwin-string-literals.c | 4 | ||||
-rw-r--r-- | test/CodeGen/func-in-block.c | 2 | ||||
-rw-r--r-- | test/CodeGen/predefined-expr.c | 16 | ||||
-rw-r--r-- | test/CodeGen/string-literal-short-wstring.c | 4 | ||||
-rw-r--r-- | test/CodeGen/string-literal.c | 4 | ||||
-rw-r--r-- | test/CodeGenCXX/predefined-expr.cpp | 106 | ||||
-rw-r--r-- | test/CodeGenObjC/predefined-expr.m | 20 |
10 files changed, 89 insertions, 86 deletions
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 1376164a22..f582238456 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -1749,9 +1749,12 @@ static llvm::Constant *GenerateStringLiteral(const std::string &str, llvm::ConstantArray::get(CGM.getLLVMContext(), str, false); // Create a global variable for this string - return new llvm::GlobalVariable(CGM.getModule(), C->getType(), constant, - llvm::GlobalValue::PrivateLinkage, - C, GlobalName); + llvm::GlobalVariable *GV = + new llvm::GlobalVariable(CGM.getModule(), C->getType(), constant, + llvm::GlobalValue::PrivateLinkage, + C, GlobalName); + GV->setUnnamedAddr(true); + return GV; } /// GetAddrOfConstantString - Returns a pointer to a character array diff --git a/test/CodeGen/blocksignature.c b/test/CodeGen/blocksignature.c index 6ed8750e9b..26f2048bbc 100644 --- a/test/CodeGen/blocksignature.c +++ b/test/CodeGen/blocksignature.c @@ -1,14 +1,14 @@ // RUN: %clang_cc1 -fblocks -triple x86_64-apple-darwin9 %s -emit-llvm -o - | FileCheck %s -check-prefix=X64 // RUN: %clang_cc1 -fblocks -triple i686-apple-darwin9 %s -emit-llvm -o - | FileCheck %s -check-prefix=X32 -// X64: @.str = private constant [6 x i8] c"v8@?0\00" +// X64: @.str = private unnamed_addr constant [6 x i8] c"v8@?0\00" // X64: @__block_literal_global = internal constant %1 { i8** @_NSConcreteGlobalBlock, i32 1342177280, -// X64: @.str1 = private constant [12 x i8] c"i16@?0c8f12\00" +// X64: @.str1 = private unnamed_addr constant [12 x i8] c"i16@?0c8f12\00" // X64: store i32 1073741824, i32* -// X32: @.str = private constant [6 x i8] c"v4@?0\00" +// X32: @.str = private unnamed_addr constant [6 x i8] c"v4@?0\00" // X32: @__block_literal_global = internal constant %1 { i8** @_NSConcreteGlobalBlock, i32 1342177280, -// X32: @.str1 = private constant [11 x i8] c"i12@?0c4f8\00" +// X32: @.str1 = private unnamed_addr constant [11 x i8] c"i12@?0c4f8\00" // X32: store i32 1073741824, i32* // rdar://7635294 diff --git a/test/CodeGen/const-init.c b/test/CodeGen/const-init.c index ac26b65e68..32b762d646 100644 --- a/test/CodeGen/const-init.c +++ b/test/CodeGen/const-init.c @@ -118,7 +118,7 @@ struct g23 {char a; short b; char c; struct g22 d;}; struct g23 g24 = {1,2,3,4}; // CHECK: @g25.g26 = internal global i8* getelementptr inbounds ([4 x i8]* @__func__.g25, i32 0, i32 0) -// CHECK: @__func__.g25 = private constant [4 x i8] c"g25\00" +// CHECK: @__func__.g25 = private unnamed_addr constant [4 x i8] c"g25\00" int g25() { static const char *g26 = __func__; return *g26; diff --git a/test/CodeGen/darwin-string-literals.c b/test/CodeGen/darwin-string-literals.c index 8734295637..d605cc0abb 100644 --- a/test/CodeGen/darwin-string-literals.c +++ b/test/CodeGen/darwin-string-literals.c @@ -1,12 +1,12 @@ // RUN: %clang_cc1 -triple i386-apple-darwin9 -emit-llvm %s -o - | FileCheck -check-prefix LSB %s -// CHECK-LSB: @.str = private constant [8 x i8] c"string0\00" +// CHECK-LSB: @.str = private unnamed_addr constant [8 x i8] c"string0\00" // CHECK-LSB: @.str1 = private constant [8 x i8] c"string1\00" // CHECK-LSB: @.str2 = internal constant [36 x i8] c"h\00e\00l\00l\00o\00 \00\92! \00\03& \00\90! \00w\00o\00r\00l\00d\00\00\00", align 2 // RUN: %clang_cc1 -triple powerpc-apple-darwin9 -emit-llvm %s -o - | FileCheck -check-prefix MSB %s -// CHECK-MSB: @.str = private constant [8 x i8] c"string0\00" +// CHECK-MSB: @.str = private unnamed_addr constant [8 x i8] c"string0\00" // CHECK-MSB: @.str1 = private constant [8 x i8] c"string1\00" // CHECK-MSB: @.str2 = internal constant [36 x i8] c"\00h\00e\00l\00l\00o\00 !\92\00 &\03\00 !\90\00 \00w\00o\00r\00l\00d\00\00", align 2 diff --git a/test/CodeGen/func-in-block.c b/test/CodeGen/func-in-block.c index 7e65ff92df..19001357d5 100644 --- a/test/CodeGen/func-in-block.c +++ b/test/CodeGen/func-in-block.c @@ -15,5 +15,5 @@ int main() return 0; // not reached } -// CHECK: @__func__.__main_block_invoke_0 = private constant [22 x i8] c"__main_block_invoke_0\00" +// CHECK: @__func__.__main_block_invoke_0 = private unnamed_addr constant [22 x i8] c"__main_block_invoke_0\00" // CHECK: call void @PRINTF({{.*}}@__func__.__main_block_invoke_ diff --git a/test/CodeGen/predefined-expr.c b/test/CodeGen/predefined-expr.c index 9be5754114..e2826b68d7 100644 --- a/test/CodeGen/predefined-expr.c +++ b/test/CodeGen/predefined-expr.c @@ -1,13 +1,13 @@ // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s -// CHECK: @__func__.plainFunction = private constant [14 x i8] c"plainFunction\00" -// CHECK: @__PRETTY_FUNCTION__.plainFunction = private constant [21 x i8] c"void plainFunction()\00" -// CHECK: @__func__.externFunction = private constant [15 x i8] c"externFunction\00" -// CHECK: @__PRETTY_FUNCTION__.externFunction = private constant [22 x i8] c"void externFunction()\00" -// CHECK: @__func__.privateExternFunction = private constant [22 x i8] c"privateExternFunction\00" -// CHECK: @__PRETTY_FUNCTION__.privateExternFunction = private constant [29 x i8] c"void privateExternFunction()\00" -// CHECK: @__func__.staticFunction = private constant [15 x i8] c"staticFunction\00" -// CHECK: @__PRETTY_FUNCTION__.staticFunction = private constant [22 x i8] c"void staticFunction()\00" +// CHECK: @__func__.plainFunction = private unnamed_addr constant [14 x i8] c"plainFunction\00" +// CHECK: @__PRETTY_FUNCTION__.plainFunction = private unnamed_addr constant [21 x i8] c"void plainFunction()\00" +// CHECK: @__func__.externFunction = private unnamed_addr constant [15 x i8] c"externFunction\00" +// CHECK: @__PRETTY_FUNCTION__.externFunction = private unnamed_addr constant [22 x i8] c"void externFunction()\00" +// CHECK: @__func__.privateExternFunction = private unnamed_addr constant [22 x i8] c"privateExternFunction\00" +// CHECK: @__PRETTY_FUNCTION__.privateExternFunction = private unnamed_addr constant [29 x i8] c"void privateExternFunction()\00" +// CHECK: @__func__.staticFunction = private unnamed_addr constant [15 x i8] c"staticFunction\00" +// CHECK: @__PRETTY_FUNCTION__.staticFunction = private unnamed_addr constant [22 x i8] c"void staticFunction()\00" int printf(const char *, ...); diff --git a/test/CodeGen/string-literal-short-wstring.c b/test/CodeGen/string-literal-short-wstring.c index be1f1dd66c..8c2e412f22 100644 --- a/test/CodeGen/string-literal-short-wstring.c +++ b/test/CodeGen/string-literal-short-wstring.c @@ -6,11 +6,11 @@ int main() { // CHECK: internal constant [10 x i8] c"\E1\84\A0\C8\A0\F4\82\80\B0\00", align 1 char b[10] = "\u1120\u0220\U00102030"; - // CHECK: private constant [6 x i8] c"A\00B\00\00\00" + // CHECK: private unnamed_addr constant [6 x i8] c"A\00B\00\00\00" const wchar_t *foo = L"AB"; // This should convert to utf16. - // CHECK: private constant [10 x i8] c" \11 \02\C8\DB0\DC\00\00" + // CHECK: private unnamed_addr constant [10 x i8] c" \11 \02\C8\DB0\DC\00\00" const wchar_t *bar = L"\u1120\u0220\U00102030"; diff --git a/test/CodeGen/string-literal.c b/test/CodeGen/string-literal.c index 43bfc2137f..6d02b0fdaf 100644 --- a/test/CodeGen/string-literal.c +++ b/test/CodeGen/string-literal.c @@ -8,9 +8,9 @@ int main() { // CHECK: internal constant [10 x i8] c"\E1\84\A0\C8\A0\F4\82\80\B0\00", align 1 char b[10] = "\u1120\u0220\U00102030"; - // CHECK: private constant [12 x i8] c"A\00\00\00B\00\00\00\00\00\00\00" + // CHECK: private unnamed_addr constant [12 x i8] c"A\00\00\00B\00\00\00\00\00\00\00" void *foo = L"AB"; - // CHECK: private constant [12 x i8] c"4\12\00\00\0B\F0\10\00\00\00\00\00" + // CHECK: private unnamed_addr constant [12 x i8] c"4\12\00\00\0B\F0\10\00\00\00\00\00" void *bar = L"\u1234\U0010F00B"; } diff --git a/test/CodeGenCXX/predefined-expr.cpp b/test/CodeGenCXX/predefined-expr.cpp index f5e5ca9528..56270b5f69 100644 --- a/test/CodeGenCXX/predefined-expr.cpp +++ b/test/CodeGenCXX/predefined-expr.cpp @@ -1,82 +1,82 @@ // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s -// CHECK: private constant [15 x i8] c"externFunction\00" -// CHECK: private constant [26 x i8] c"void NS::externFunction()\00" +// CHECK: private unnamed_addr constant [15 x i8] c"externFunction\00" +// CHECK: private unnamed_addr constant [26 x i8] c"void NS::externFunction()\00" -// CHECK: private constant [22 x i8] c"classTemplateFunction\00" -// CHECK: private constant [60 x i8] c"void NS::ClassTemplate<NS::Base *>::classTemplateFunction()\00" -// CHECK: private constant [53 x i8] c"void NS::ClassTemplate<int>::classTemplateFunction()\00" +// CHECK: private unnamed_addr constant [22 x i8] c"classTemplateFunction\00" +// CHECK: private unnamed_addr constant [60 x i8] c"void NS::ClassTemplate<NS::Base *>::classTemplateFunction()\00" +// CHECK: private unnamed_addr constant [53 x i8] c"void NS::ClassTemplate<int>::classTemplateFunction()\00" -// CHECK: private constant [18 x i8] c"functionTemplate1\00" -// CHECK: private constant [45 x i8] c"void NS::Base::functionTemplate1(NS::Base *)\00" -// CHECK: private constant [38 x i8] c"void NS::Base::functionTemplate1(int)\00" +// CHECK: private unnamed_addr constant [18 x i8] c"functionTemplate1\00" +// CHECK: private unnamed_addr constant [45 x i8] c"void NS::Base::functionTemplate1(NS::Base *)\00" +// CHECK: private unnamed_addr constant [38 x i8] c"void NS::Base::functionTemplate1(int)\00" -// CHECK: private constant [23 x i8] c"anonymousUnionFunction\00" -// CHECK: private constant [83 x i8] c"void NS::ContainerForAnonymousRecords::<anonymous union>::anonymousUnionFunction()\00" +// CHECK: private unnamed_addr constant [23 x i8] c"anonymousUnionFunction\00" +// CHECK: private unnamed_addr constant [83 x i8] c"void NS::ContainerForAnonymousRecords::<anonymous union>::anonymousUnionFunction()\00" -// CHECK: private constant [24 x i8] c"anonymousStructFunction\00" -// CHECK: private constant [85 x i8] c"void NS::ContainerForAnonymousRecords::<anonymous struct>::anonymousStructFunction()\00" +// CHECK: private unnamed_addr constant [24 x i8] c"anonymousStructFunction\00" +// CHECK: private unnamed_addr constant [85 x i8] c"void NS::ContainerForAnonymousRecords::<anonymous struct>::anonymousStructFunction()\00" -// CHECK: private constant [23 x i8] c"anonymousClassFunction\00" -// CHECK: private constant [83 x i8] c"void NS::ContainerForAnonymousRecords::<anonymous class>::anonymousClassFunction()\00" +// CHECK: private unnamed_addr constant [23 x i8] c"anonymousClassFunction\00" +// CHECK: private unnamed_addr constant [83 x i8] c"void NS::ContainerForAnonymousRecords::<anonymous class>::anonymousClassFunction()\00" -// CHECK: private constant [12 x i8] c"~Destructor\00" -// CHECK: private constant [30 x i8] c"NS::Destructor::~Destructor()\00" +// CHECK: private unnamed_addr constant [12 x i8] c"~Destructor\00" +// CHECK: private unnamed_addr constant [30 x i8] c"NS::Destructor::~Destructor()\00" -// CHECK: private constant [12 x i8] c"Constructor\00" -// CHECK: private constant [41 x i8] c"NS::Constructor::Constructor(NS::Base *)\00" -// CHECK: private constant [34 x i8] c"NS::Constructor::Constructor(int)\00" -// CHECK: private constant [31 x i8] c"NS::Constructor::Constructor()\00" +// CHECK: private unnamed_addr constant [12 x i8] c"Constructor\00" +// CHECK: private unnamed_addr constant [41 x i8] c"NS::Constructor::Constructor(NS::Base *)\00" +// CHECK: private unnamed_addr constant [34 x i8] c"NS::Constructor::Constructor(int)\00" +// CHECK: private unnamed_addr constant [31 x i8] c"NS::Constructor::Constructor()\00" -// CHECK: private constant [16 x i8] c"virtualFunction\00" -// CHECK: private constant [44 x i8] c"virtual void NS::Derived::virtualFunction()\00" +// CHECK: private unnamed_addr constant [16 x i8] c"virtualFunction\00" +// CHECK: private unnamed_addr constant [44 x i8] c"virtual void NS::Derived::virtualFunction()\00" -// CHECK: private constant [22 x i8] c"constVolatileFunction\00" -// CHECK: private constant [54 x i8] c"void NS::Base::constVolatileFunction() const volatile\00" +// CHECK: private unnamed_addr constant [22 x i8] c"constVolatileFunction\00" +// CHECK: private unnamed_addr constant [54 x i8] c"void NS::Base::constVolatileFunction() const volatile\00" -// CHECK: private constant [17 x i8] c"volatileFunction\00" -// CHECK: private constant [43 x i8] c"void NS::Base::volatileFunction() volatile\00" +// CHECK: private unnamed_addr constant [17 x i8] c"volatileFunction\00" +// CHECK: private unnamed_addr constant [43 x i8] c"void NS::Base::volatileFunction() volatile\00" -// CHECK: private constant [14 x i8] c"constFunction\00" -// CHECK: private constant [37 x i8] c"void NS::Base::constFunction() const\00" +// CHECK: private unnamed_addr constant [14 x i8] c"constFunction\00" +// CHECK: private unnamed_addr constant [37 x i8] c"void NS::Base::constFunction() const\00" -// CHECK: private constant [26 x i8] c"functionReturingTemplate2\00" -// CHECK: private constant [64 x i8] c"ClassTemplate<NS::Base *> NS::Base::functionReturingTemplate2()\00" +// CHECK: private unnamed_addr constant [26 x i8] c"functionReturingTemplate2\00" +// CHECK: private unnamed_addr constant [64 x i8] c"ClassTemplate<NS::Base *> NS::Base::functionReturingTemplate2()\00" -// CHECK: private constant [26 x i8] c"functionReturingTemplate1\00" -// CHECK: private constant [57 x i8] c"ClassTemplate<int> NS::Base::functionReturingTemplate1()\00" +// CHECK: private unnamed_addr constant [26 x i8] c"functionReturingTemplate1\00" +// CHECK: private unnamed_addr constant [57 x i8] c"ClassTemplate<int> NS::Base::functionReturingTemplate1()\00" -// CHECK: private constant [23 x i8] c"withTemplateParameter2\00" -// CHECK: private constant [65 x i8] c"void NS::Base::withTemplateParameter2(ClassTemplate<NS::Base *>)\00" +// CHECK: private unnamed_addr constant [23 x i8] c"withTemplateParameter2\00" +// CHECK: private unnamed_addr constant [65 x i8] c"void NS::Base::withTemplateParameter2(ClassTemplate<NS::Base *>)\00" -// CHECK: private constant [23 x i8] c"withTemplateParameter1\00" -// CHECK: private constant [58 x i8] c"void NS::Base::withTemplateParameter1(ClassTemplate<int>)\00" +// CHECK: private unnamed_addr constant [23 x i8] c"withTemplateParameter1\00" +// CHECK: private unnamed_addr constant [58 x i8] c"void NS::Base::withTemplateParameter1(ClassTemplate<int>)\00" -// CHECK: private constant [23 x i8] c"functionReturningClass\00" -// CHECK: private constant [45 x i8] c"NS::Base *NS::Base::functionReturningClass()\00" +// CHECK: private unnamed_addr constant [23 x i8] c"functionReturningClass\00" +// CHECK: private unnamed_addr constant [45 x i8] c"NS::Base *NS::Base::functionReturningClass()\00" -// CHECK: private constant [23 x i8] c"functionWithParameters\00" -// CHECK: private constant [64 x i8] c"void NS::Base::functionWithParameters(int, float *, NS::Base *)\00" +// CHECK: private unnamed_addr constant [23 x i8] c"functionWithParameters\00" +// CHECK: private unnamed_addr constant [64 x i8] c"void NS::Base::functionWithParameters(int, float *, NS::Base *)\00" -// CHECK: private constant [17 x i8] c"variadicFunction\00" -// CHECK: private constant [42 x i8] c"void NS::Base::variadicFunction(int, ...)\00" +// CHECK: private unnamed_addr constant [17 x i8] c"variadicFunction\00" +// CHECK: private unnamed_addr constant [42 x i8] c"void NS::Base::variadicFunction(int, ...)\00" -// CHECK: private constant [41 x i8] c"virtual void NS::Base::virtualFunction()\00" +// CHECK: private unnamed_addr constant [41 x i8] c"virtual void NS::Base::virtualFunction()\00" -// CHECK: private constant [15 x i8] c"inlineFunction\00" -// CHECK: private constant [32 x i8] c"void NS::Base::inlineFunction()\00" +// CHECK: private unnamed_addr constant [15 x i8] c"inlineFunction\00" +// CHECK: private unnamed_addr constant [32 x i8] c"void NS::Base::inlineFunction()\00" -// CHECK: private constant [15 x i8] c"staticFunction\00" -// CHECK: private constant [39 x i8] c"static void NS::Base::staticFunction()\00" +// CHECK: private unnamed_addr constant [15 x i8] c"staticFunction\00" +// CHECK: private unnamed_addr constant [39 x i8] c"static void NS::Base::staticFunction()\00" -// CHECK: private constant [26 x i8] c"topLevelNamespaceFunction\00" -// CHECK: private constant [59 x i8] c"void ClassInTopLevelNamespace::topLevelNamespaceFunction()\00" +// CHECK: private unnamed_addr constant [26 x i8] c"topLevelNamespaceFunction\00" +// CHECK: private unnamed_addr constant [59 x i8] c"void ClassInTopLevelNamespace::topLevelNamespaceFunction()\00" -// CHECK: private constant [27 x i8] c"anonymousNamespaceFunction\00" -// CHECK: private constant [84 x i8] c"void <anonymous namespace>::ClassInAnonymousNamespace::anonymousNamespaceFunction()\00" +// CHECK: private unnamed_addr constant [27 x i8] c"anonymousNamespaceFunction\00" +// CHECK: private unnamed_addr constant [84 x i8] c"void <anonymous namespace>::ClassInAnonymousNamespace::anonymousNamespaceFunction()\00" -// CHECK: private constant [19 x i8] c"localClassFunction\00" -// CHECK: private constant [59 x i8] c"void NS::localClass(int)::LocalClass::localClassFunction()\00" +// CHECK: private unnamed_addr constant [19 x i8] c"localClassFunction\00" +// CHECK: private unnamed_addr constant [59 x i8] c"void NS::localClass(int)::LocalClass::localClassFunction()\00" int printf(const char * _Format, ...); diff --git a/test/CodeGenObjC/predefined-expr.m b/test/CodeGenObjC/predefined-expr.m index 772093bd8a..43d329e2ab 100644 --- a/test/CodeGenObjC/predefined-expr.m +++ b/test/CodeGenObjC/predefined-expr.m @@ -1,15 +1,15 @@ // RUN: %clang_cc1 -triple i386-apple-darwin9 %s -emit-llvm -o - | FileCheck %s -// CHECK: @"__func__.-[Foo instanceTest1]" = private constant [21 x i8] c"-[Foo instanceTest1]\00" -// CHECK: @"__func__.-[Foo instanceTest2:]" = private constant [22 x i8] c"-[Foo instanceTest2:]\00" -// CHECK: @"__func__.-[Foo instanceTest3:withB:]" = private constant [28 x i8] c"-[Foo instanceTest3:withB:]\00" -// CHECK: @"__func__.-[Foo instanceTest4]" = private constant [21 x i8] c"-[Foo instanceTest4]\00" -// CHECK: @"__func__.+[Foo classTest1]" = private constant [18 x i8] c"+[Foo classTest1]\00" -// CHECK: @"__func__.+[Foo classTest2:]" = private constant [19 x i8] c"+[Foo classTest2:]\00" -// CHECK: @"__func__.+[Foo classTest3:withB:]" = private constant [25 x i8] c"+[Foo classTest3:withB:]\00" -// CHECK: @"__func__.+[Foo classTest4]" = private constant [18 x i8] c"+[Foo classTest4]\00" -// CHECK: @"__func__.-[Foo(Category) instanceTestWithCategory]" = private constant [42 x i8] c"-[Foo(Category) instanceTestWithCategory]\00" -// CHECK: @"__func__.+[Foo(Category) classTestWithCategory]" = private constant [39 x i8] c"+[Foo(Category) classTestWithCategory]\00" +// CHECK: @"__func__.-[Foo instanceTest1]" = private unnamed_addr constant [21 x i8] c"-[Foo instanceTest1]\00" +// CHECK: @"__func__.-[Foo instanceTest2:]" = private unnamed_addr constant [22 x i8] c"-[Foo instanceTest2:]\00" +// CHECK: @"__func__.-[Foo instanceTest3:withB:]" = private unnamed_addr constant [28 x i8] c"-[Foo instanceTest3:withB:]\00" +// CHECK: @"__func__.-[Foo instanceTest4]" = private unnamed_addr constant [21 x i8] c"-[Foo instanceTest4]\00" +// CHECK: @"__func__.+[Foo classTest1]" = private unnamed_addr constant [18 x i8] c"+[Foo classTest1]\00" +// CHECK: @"__func__.+[Foo classTest2:]" = private unnamed_addr constant [19 x i8] c"+[Foo classTest2:]\00" +// CHECK: @"__func__.+[Foo classTest3:withB:]" = private unnamed_addr constant [25 x i8] c"+[Foo classTest3:withB:]\00" +// CHECK: @"__func__.+[Foo classTest4]" = private unnamed_addr constant [18 x i8] c"+[Foo classTest4]\00" +// CHECK: @"__func__.-[Foo(Category) instanceTestWithCategory]" = private unnamed_addr constant [42 x i8] c"-[Foo(Category) instanceTestWithCategory]\00" +// CHECK: @"__func__.+[Foo(Category) classTestWithCategory]" = private unnamed_addr constant [39 x i8] c"+[Foo(Category) classTestWithCategory]\00" int printf(const char * _Format, ...); |