// RUN: %clang_cc1 %s -triple x86_64-unknown-linux-gnu -emit-llvm -fextend-variable-liveness -o - | FileCheck %s --implicit-check-not=llvm.fake.use // Check that fake use calls are emitted at the correct locations, i.e. // at the end of lexical blocks and at the end of the function. int glob_i; char glob_c; float glob_f; int foo(int i) { // CHECK-LABEL: define{{.*}}foo if (i < 4) { char j = i * 3; if (glob_i > 3) { float f = glob_f; j = f; glob_c = j; // CHECK: call void (...) @llvm.fake.use(float % // CHECK-NEXT: br label % } glob_i = j; // CHECK: call void (...) @llvm.fake.use(i8 % // CHECK-NEXT: br label % } // CHECK: call void (...) @llvm.fake.use(i32 % // CHECK-NEXT: ret return 4; } // CHECK: declare void @llvm.fake.use(...)