xref: /aosp_15_r20/external/clang/test/CodeGenObjC/ns-constant-strings.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -fno-constant-cfstrings -emit-llvm -o %t %s
2*67e74705SXin Li// RUN: FileCheck --check-prefix CHECK-FRAGILE < %t %s
3*67e74705SXin Li
4*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fno-constant-cfstrings -emit-llvm -o %t %s
5*67e74705SXin Li// RUN: FileCheck --check-prefix CHECK-NONFRAGILE < %t %s
6*67e74705SXin Li
7*67e74705SXin Li@interface NSString @end
8*67e74705SXin Li
9*67e74705SXin Li@interface NSSimpleCString : NSString {
10*67e74705SXin Li@protected
11*67e74705SXin Li    char *bytes;
12*67e74705SXin Li    unsigned int numBytes;
13*67e74705SXin Li}
14*67e74705SXin Li@end
15*67e74705SXin Li
16*67e74705SXin Li@interface NSConstantString : NSSimpleCString
17*67e74705SXin Li@end
18*67e74705SXin Li
19*67e74705SXin Li#if OBJC_API_VERSION >= 2
20*67e74705SXin Liextern Class _NSConstantStringClassReference;
21*67e74705SXin Li#else
22*67e74705SXin Liextern struct objc_class _NSConstantStringClassReference;
23*67e74705SXin Li#endif
24*67e74705SXin Li
25*67e74705SXin Liconst NSConstantString *appKey =  @"MyApp";
26*67e74705SXin Li
27*67e74705SXin Liint main() {
28*67e74705SXin Li  const NSConstantString *appKey =  @"MyApp";
29*67e74705SXin Li  const NSConstantString *appKey1 =  @"MyApp1";
30*67e74705SXin Li}
31*67e74705SXin Li
32*67e74705SXin Li// CHECK-FRAGILE: @_NSConstantStringClassReference = external global
33*67e74705SXin Li// CHECK-NONFRAGILE: @"OBJC_CLASS_$_NSConstantString" = external global
34*67e74705SXin Li
35*67e74705SXin Li// CHECK-FRAGILE: @.str = private unnamed_addr constant [6 x i8] c"MyApp\00"
36*67e74705SXin Li// CHECK-FRAGILE: @.str.1 = private unnamed_addr constant [7 x i8] c"MyApp1\00"
37*67e74705SXin Li
38*67e74705SXin Li// CHECK-NONFRAGILE: @.str = private unnamed_addr constant [6 x i8] c"MyApp\00"
39*67e74705SXin Li// CHECK-NONFRAGILE: @.str.1 = private unnamed_addr constant [7 x i8] c"MyApp1\00"
40