// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s // Check that no empty blocks are generated for nested ifs. extern void func(); int f0(int val) { if (val == 0) { func(); } else if (val == 1) { func(); } return 0; } // CHECK-LABEL: define {{.*}}i32 @f0 // CHECK: call void {{.*}} @func // CHECK: call void {{.*}} @func // CHECK: br label %[[RETBLOCK1:[^ ]*]] // CHECK: [[RETBLOCK1]]: // CHECK-NOT: br label // CHECK: ret i32 int f1(int val, int g) { if (val == 0) if (g == 1) { func(); } return 0; } // CHECK-LABEL: define {{.*}}i32 @f1 // CHECK: call void {{.*}} @func // CHECK: br label %[[RETBLOCK2:[^ ]*]] // CHECK: [[RETBLOCK2]]: // CHECK-NOT: br label // CHECK: ret i32