| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fdebugger-objc-literal -emit-llvm -o - %s | FileCheck %s |
| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fdebugger-objc-literal -emit-llvm -o - %s -DINCLUDE_INTERFACES=1 | FileCheck %s |
| |
| // We need two different RUN lines here because the first time a class/method is absent, |
| // it will be added for -fdebugger-objc-literal. |
| |
| #ifdef INCLUDE_INTERFACES |
| @interface NSObject |
| @end |
| |
| @interface NSNumber : NSObject |
| @end |
| |
| @interface NSArray : NSObject |
| @end |
| |
| @interface NSDictionary : NSObject |
| @end |
| |
| @interface NSString : NSObject |
| @end |
| #endif |
| |
| int main() { |
| // object literals. |
| id l; |
| l = @'a'; |
| l = @42; |
| l = @-42; |
| l = @42u; |
| l = @3.141592654f; |
| l = @__objc_yes; |
| l = @__objc_no; |
| l = @{ @"name":@666 }; |
| l = @[ @"foo", @"bar" ]; |
| |
| #if __has_feature(objc_boxed_expressions) |
| // boxed expressions. |
| id b; |
| b = @('a'); |
| b = @(42); |
| b = @(-42); |
| b = @(42u); |
| b = @(3.141592654f); |
| b = @(__objc_yes); |
| b = @(__objc_no); |
| b = @("hello"); |
| #else |
| #error "boxed expressions not supported" |
| #endif |
| } |
| |
| // CHECK: declare i8* @objc_msgSend(i8*, i8*, ...) [[NLB:#[0-9]+]] |
| |
| // CHECK: attributes [[NLB]] = { nonlazybind } |