// 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 } |