Home | History | Annotate | Download | only in CodeGenObjC
      1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fdebugger-objc-literal -emit-llvm -o - %s | FileCheck %s
      2 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fdebugger-objc-literal -emit-llvm -o - %s -DINCLUDE_INTERFACES=1 | FileCheck %s
      3 
      4 // We need two different RUN lines here because the first time a class/method is absent,
      5 // it will be added for -fdebugger-objc-literal.
      6 
      7 #ifdef INCLUDE_INTERFACES
      8 @interface NSObject
      9 @end
     10 
     11 @interface NSNumber : NSObject
     12 @end
     13 
     14 @interface NSArray : NSObject
     15 @end
     16 
     17 @interface NSDictionary : NSObject
     18 @end
     19 
     20 @interface NSString : NSObject
     21 @end
     22 #endif
     23 
     24 int main() {
     25   // object literals.
     26   id l;
     27   l = @'a';
     28   l = @42;
     29   l = @-42;
     30   l = @42u;
     31   l = @3.141592654f;
     32   l = @__objc_yes;
     33   l = @__objc_no;
     34   l = @{ @"name":@666 };
     35   l = @[ @"foo", @"bar" ];
     36 
     37 #if __has_feature(objc_boxed_expressions)
     38   // boxed expressions.
     39   id b;
     40   b = @('a');
     41   b = @(42);
     42   b = @(-42);
     43   b = @(42u);
     44   b = @(3.141592654f);
     45   b = @(__objc_yes);
     46   b = @(__objc_no);
     47   b = @("hello");
     48 #else
     49 #error "boxed expressions not supported"
     50 #endif
     51 }
     52 
     53 // CHECK: declare i8* @objc_msgSend(i8*, i8*, ...) [[NLB:#[0-9]+]]
     54 
     55 // CHECK: attributes [[NLB]] = { nonlazybind }
     56