[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / PCH / non-trivial-c-compound-literal.m
blob7e8f69f71d4cf5c4eb9e3e84fb6220fd7b704b25
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c -fobjc-arc -emit-pch -o %t %s
2 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -x objective-c -fobjc-arc -include-pch %t -emit-llvm -o - %s | FileCheck %s
4 #ifndef HEADER
5 #define HEADER
7 typedef struct {
8   id f;
9 } S;
11 static inline id getObj(id a) {
12   S *p = &(S){ .f = a };
13   return p->f;
16 #else
18 // CHECK: %[[STRUCT_S:.*]] = type { ptr }
20 // CHECK: define internal ptr @getObj(
21 // CHECK: %[[_COMPOUNDLITERAL:.*]] = alloca %[[STRUCT_S]],
22 // CHECK: call void @__destructor_8_s0(ptr %[[_COMPOUNDLITERAL]])
24 id test(id a) {
25   return getObj(a);
28 #endif