1 // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s 2 // Check that no empty blocks are generated for nested ifs. 3 4 extern void func(); 5 6 int f0(int val) { 7 if (val == 0) { 8 func(); 9 } else if (val == 1) { 10 func(); 11 } 12 return 0; 13 } 14 15 // CHECK-LABEL: define {{.*}}i32 @f0 16 // CHECK: call void {{.*}} @func 17 // CHECK: call void {{.*}} @func 18 // CHECK: br label %[[RETBLOCK1:[^ ]*]] 19 // CHECK: [[RETBLOCK1]]: 20 // CHECK-NOT: br label 21 // CHECK: ret i32 22 23 int f1(int val, int g) { 24 if (val == 0) 25 if (g == 1) { 26 func(); 27 } 28 return 0; 29 } 30 31 // CHECK-LABEL: define {{.*}}i32 @f1 32 // CHECK: call void {{.*}} @func 33 // CHECK: br label %[[RETBLOCK2:[^ ]*]] 34 // CHECK: [[RETBLOCK2]]: 35 // CHECK-NOT: br label 36 // CHECK: ret i32 37