| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c -fobjc-arc -emit-pch -o %t %s |
| // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c -fobjc-arc -include-pch %t -emit-llvm -o - %s | FileCheck %s |
| |
| #ifndef HEADER |
| #define HEADER |
| |
| typedef struct { |
| id f; |
| } S; |
| |
| static inline id getObj(id a) { |
| S *p = &(S){ .f = a }; |
| return p->f; |
| } |
| |
| #else |
| |
| // CHECK: %[[STRUCT_S:.*]] = type { i8* } |
| |
| // CHECK: define internal i8* @getObj( |
| // CHECK: %[[_COMPOUNDLITERAL:.*]] = alloca %[[STRUCT_S]], |
| // CHECK: %[[V5:.*]] = bitcast %[[STRUCT_S]]* %[[_COMPOUNDLITERAL]] to i8** |
| // CHECK: call void @__destructor_8_s0(i8** %[[V5]]) |
| |
| id test(id a) { |
| return getObj(a); |
| } |
| |
| #endif |