1*67e74705SXin Li // RUN: %clang_cc1 -triple thumbv7-windows -fdeclspec -DCF_BUILDING_CF -DDECL -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-IN-CF-DECL 2*67e74705SXin Li // RUN: %clang_cc1 -triple thumbv7-windows -fdeclspec -DCF_BUILDING_CF -DDEFN -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-IN-CF-DEFN 3*67e74705SXin Li // RUN: %clang_cc1 -triple thumbv7-windows -fdeclspec -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF 4*67e74705SXin Li // RUN: %clang_cc1 -triple thumbv7-windows -fdeclspec -DEXTERN -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-EXTERN 5*67e74705SXin Li // RUN: %clang_cc1 -triple thumbv7-windows -fdeclspec -DEXTERN_DLLIMPORT -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-EXTERN-DLLIMPORT 6*67e74705SXin Li // RUN: %clang_cc1 -triple thumbv7-windows -fdeclspec -DDLLIMPORT -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-DLLIMPORT 7*67e74705SXin Li 8*67e74705SXin Li // RUN: %clang_cc1 -Os -triple thumbv7-windows -fdeclspec -DCF_BUILDING_CF -DDECL -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-IN-CF-DECL 9*67e74705SXin Li // RUN: %clang_cc1 -Os -triple thumbv7-windows -fdeclspec -DCF_BUILDING_CF -DDEFN -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-IN-CF-DEFN 10*67e74705SXin Li // RUN: %clang_cc1 -Os -triple thumbv7-windows -fdeclspec -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF 11*67e74705SXin Li // RUN: %clang_cc1 -Os -triple thumbv7-windows -fdeclspec -DEXTERN -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-EXTERN 12*67e74705SXin Li // RUN: %clang_cc1 -Os -triple thumbv7-windows -fdeclspec -DEXTERN_DLLIMPORT -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-EXTERN-DLLIMPORT 13*67e74705SXin Li // RUN: %clang_cc1 -Os -triple thumbv7-windows -fdeclspec -DDLLIMPORT -S -emit-llvm %s -o - | FileCheck %s -check-prefix CHECK-CF-DLLIMPORT 14*67e74705SXin Li 15*67e74705SXin Li #if defined(CF_BUILDING_CF) 16*67e74705SXin Li #if defined(DECL) 17*67e74705SXin Li extern __declspec(dllexport) long __CFConstantStringClassReference[]; 18*67e74705SXin Li #elif defined(DEFN) 19*67e74705SXin Li __declspec(dllexport) long __CFConstantStringClassReference[32]; 20*67e74705SXin Li #endif 21*67e74705SXin Li #else 22*67e74705SXin Li #if defined(EXTERN) 23*67e74705SXin Li extern long __CFConstantStringClassReference[]; 24*67e74705SXin Li #elif defined(EXTERN_DLLIMPORT) 25*67e74705SXin Li extern __declspec(dllimport) long __CFConstantStringClassReference[]; 26*67e74705SXin Li #elif defined(DLLIMPORT) 27*67e74705SXin Li __declspec(dllimport) long __CFConstantStringClassReference[]; 28*67e74705SXin Li #endif 29*67e74705SXin Li #endif 30*67e74705SXin Li 31*67e74705SXin Li typedef struct __CFString *CFStringRef; 32*67e74705SXin Li const CFStringRef string = (CFStringRef)__builtin___CFStringMakeConstantString("string"); 33*67e74705SXin Li 34*67e74705SXin Li // CHECK-CF-IN-CF-DECL: @__CFConstantStringClassReference = external dllexport global [0 x i32] 35*67e74705SXin Li // CHECK-CF-IN-CF-DEFN: @__CFConstantStringClassReference = common dllexport global [32 x i32] 36*67e74705SXin Li // CHECK-CF: @__CFConstantStringClassReference = external dllimport global [0 x i32] 37*67e74705SXin Li // CHECK-CF-EXTERN: @__CFConstantStringClassReference = external dllimport global [0 x i32] 38*67e74705SXin Li // CHECK-CF-EXTERN-DLLIMPORT: @__CFConstantStringClassReference = external dllimport global [0 x i32] 39*67e74705SXin Li // CHECK-CF-DLLIMPORT: @__CFConstantStringClassReference = external dllimport global [0 x i32] 40*67e74705SXin Li 41