xref: /llvm-project/clang/test/CodeGenObjC/constant-string-class.m (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -fno-constant-cfstrings -fconstant-string-class Foo -emit-llvm -o %t %s
2// RUN: FileCheck --check-prefix CHECK-FRAGILE < %t %s
3
4// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fno-constant-cfstrings -fconstant-string-class Foo -emit-llvm -o %t %s
5// RUN: FileCheck --check-prefix CHECK-NONFRAGILE < %t %s
6
7// PR6056
8
9@interface Object {
10  id isa;
11}
12@end
13
14@interface Foo : Object{
15  char *cString;
16  unsigned int len;
17}
18- (char *)customString;
19@end
20
21id _FooClassReference[20];
22
23@implementation Foo
24- (char *)customString { return cString ; }
25@end
26
27int main (void) {
28  Foo *string = @"bla";
29  return 0;
30}
31
32// CHECK-FRAGILE: @_FooClassReference ={{.*}} global
33// CHECK-NONFRAGILE: @"OBJC_CLASS_$_Object" = external global
34// CHECK-NONFRAGILE: "OBJC_CLASS_$_Foo" ={{.*}} global
35