John McCall | d1e40d5 | 2011-10-02 01:16:38 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-fragile-abi -fno-constant-cfstrings -fconstant-string-class Foo -emit-llvm -o %t %s |
Fariborz Jahanian | 4c73307 | 2010-10-19 17:19:29 +0000 | [diff] [blame] | 2 | // RUN: FileCheck --check-prefix CHECK-FRAGILE < %t %s |
| 3 | |
John McCall | d1e40d5 | 2011-10-02 01:16:38 +0000 | [diff] [blame] | 4 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fno-constant-cfstrings -fconstant-string-class Foo -emit-llvm -o %t %s |
Fariborz Jahanian | 4c73307 | 2010-10-19 17:19:29 +0000 | [diff] [blame] | 5 | // RUN: FileCheck --check-prefix CHECK-NONFRAGILE < %t %s |
| 6 | |
| 7 | // rdar: // 8564463 |
| 8 | // PR6056 |
| 9 | |
| 10 | @interface Object { |
| 11 | id isa; |
| 12 | } |
| 13 | @end |
| 14 | |
| 15 | @interface Foo : Object{ |
| 16 | char *cString; |
| 17 | unsigned int len; |
| 18 | } |
| 19 | - (char *)customString; |
| 20 | @end |
| 21 | |
| 22 | id _FooClassReference[20]; |
| 23 | |
| 24 | @implementation Foo |
| 25 | - (char *)customString { return cString ; } |
| 26 | @end |
| 27 | |
| 28 | int main () { |
| 29 | Foo *string = @"bla"; |
| 30 | return 0; |
| 31 | } |
| 32 | |
| 33 | // CHECK-FRAGILE: @_FooClassReference = common global |
| 34 | // CHECK-NONFRAGILE: @"OBJC_CLASS_$_Object" = external global |
Fariborz Jahanian | 6f40e22 | 2011-05-17 22:21:16 +0000 | [diff] [blame] | 35 | // CHECK-NONFRAGILE: "OBJC_CLASS_$_Foo" = global |