Home | History | Annotate | Download | only in CodeGen
      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