1 // RUN: %clang_cc1 -emit-llvm -o - -O2 -disable-llvm-passes %s | FileCheck %s --implicit-check-not="call void @llvm.lifetime" --check-prefixes=CHECK,O2
2 // RUN: %clang_cc1 -emit-llvm -o - -O2 -disable-lifetime-markers %s | FileCheck %s --implicit-check-not="call void @llvm.lifetime" --check-prefixes=CHECK
3 // RUN: %clang_cc1 -emit-llvm -o - -O0 %s | FileCheck %s --implicit-check-not="call void @llvm.lifetime" --check-prefixes=CHECK
5 extern int bar(char *A
, int n
);
10 // O2: call void @llvm.lifetime.start.p0(i64 100,
13 // O2: call void @llvm.lifetime.end.p0(i64 100,
15 // O2: call void @llvm.lifetime.start.p0(i64 100,
18 // O2: call void @llvm.lifetime.end.p0(i64 100,
22 // CHECK-LABEL: @no_goto_bypass
23 void no_goto_bypass(void) {
24 // O2: call void @llvm.lifetime.start.p0(i64 1,
34 // CHECK-LABEL: @goto_bypass
35 void goto_bypass(void) {
44 // CHECK-LABEL: @no_switch_bypass
45 void no_switch_bypass(int n
) {
48 // O2: call void @llvm.lifetime.start.p0(i64 1,
49 // O2: call void @llvm.lifetime.end.p0(i64 1,
56 // O2: call void @llvm.lifetime.start.p0(i64 5,
57 // O2: call void @llvm.lifetime.end.p0(i64 5,
64 // CHECK-LABEL: @switch_bypass
65 void switch_bypass(int n
) {
78 // CHECK-LABEL: @indirect_jump
79 void indirect_jump(int n
) {
87 extern void foo2(int p
);
89 // O2-LABEL: @jump_backward_over_declaration(
90 int jump_backward_over_declaration(int a
) {
92 // O2: call void @llvm.lifetime.start.p0(
105 // O2: call void @llvm.lifetime.end.p0(