Ted Kremenek | ebcb57a | 2012-03-06 20:05:56 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fdebugger-objc-literal -emit-llvm -o - %s | FileCheck %s |
Jordy Rose | 9d6ca8a | 2012-05-13 20:36:47 +0000 | [diff] [blame] | 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 |
Ted Kremenek | ebcb57a | 2012-03-06 20:05:56 +0000 | [diff] [blame] | 23 | |
| 24 | int main() { |
Patrick Beard | eb382ec | 2012-04-19 00:25:12 +0000 | [diff] [blame] | 25 | // object literals. |
| 26 | id l; |
Ted Kremenek | ebcb57a | 2012-03-06 20:05:56 +0000 | [diff] [blame] | 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" ]; |
Patrick Beard | eb382ec | 2012-04-19 00:25:12 +0000 | [diff] [blame] | 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"); |
Fariborz Jahanian | 89592d5 | 2012-04-20 17:07:07 +0000 | [diff] [blame] | 48 | #else |
| 49 | #error "boxed expressions not supported" |
Patrick Beard | eb382ec | 2012-04-19 00:25:12 +0000 | [diff] [blame] | 50 | #endif |
Ted Kremenek | ebcb57a | 2012-03-06 20:05:56 +0000 | [diff] [blame] | 51 | } |
| 52 | |
Bill Wendling | 8992457 | 2013-02-27 00:06:04 +0000 | [diff] [blame] | 53 | // CHECK: declare i8* @objc_msgSend(i8*, i8*, ...) [[NLB:#[0-9]+]] |
Bill Wendling | f7a9da0 | 2013-02-20 07:22:19 +0000 | [diff] [blame] | 54 | |
Bill Wendling | 8992457 | 2013-02-27 00:06:04 +0000 | [diff] [blame] | 55 | // CHECK: attributes [[NLB]] = { nonlazybind } |