29 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py2// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=NO-LIFETIME3// RUN: %clang_cc1 -O1 -disable-llvm-optzns -triple x86_64-unknown-unknown -emit-llvm %s -o - | FileCheck %s --check-prefix=LIFETIME4 5// NO-LIFETIME-LABEL: @main(6// NO-LIFETIME-NEXT: entry:7// NO-LIFETIME-NEXT: [[RETVAL:%.*]] = alloca i32, align 48// NO-LIFETIME-NEXT: [[FOO:%.*]] = alloca i32, align 49// NO-LIFETIME-NEXT: [[FOO2:%.*]] = alloca i32, align 410// NO-LIFETIME-NEXT: store i32 0, ptr [[RETVAL]], align 411// NO-LIFETIME-NEXT: ret i32 012//13// LIFETIME-LABEL: @main(14// LIFETIME-NEXT: entry:15// LIFETIME-NEXT: [[RETVAL:%.*]] = alloca i32, align 416// LIFETIME-NEXT: [[FOO:%.*]] = alloca i32, align 417// LIFETIME-NEXT: [[FOO2:%.*]] = alloca i32, align 418// LIFETIME-NEXT: store i32 0, ptr [[RETVAL]], align 419// LIFETIME-NEXT: call void @llvm.lifetime.start.p0(ptr [[FOO]]) #[[ATTR2:[0-9]+]]20// LIFETIME-NEXT: call void @llvm.lifetime.start.p0(ptr [[FOO2]]) #[[ATTR2]]21// LIFETIME-NEXT: call void @llvm.lifetime.end.p0(ptr [[FOO2]]) #[[ATTR2]]22// LIFETIME-NEXT: call void @llvm.lifetime.end.p0(ptr [[FOO]]) #[[ATTR2]]23// LIFETIME-NEXT: ret i32 024//25int main() {26 unsigned foo, foo2;27 return 0;28}29