void fb16(int n) {
a:
  goto a;
P0A:
  goto P0A;
  {
    int b[n];
  P01A:
    goto P01A;
    {
      int c[n];
    P012A:
      goto P012A;
      0;
    }
  P01B:
    goto P01B;
    {
      int d[n];
    P013A:
      goto P013A;
      0;
    }
  P01C:
    goto P01C;
    ;
    int e[n];
  P014A:
    goto P014A;
    0;
  };
P0B:
  goto P0B;
  {
    int f[n];
  P02A:
    goto P02A;
    {
      int g[n];
    P024A:
      goto P024A;
      0;
    };
  P02B:
    goto P02B;
    {
      int h[n];
    P025A:
      goto P025A;
      0;
    };
  P02C:
    goto P02C;
    ;
    int i[n];
  P026A:
    goto P026A;
    0;
  };
P0C:
  goto P0C;
  ;
  int j[n];
P03A:
  goto P03A;
  0;
P03B:
  goto P03B;
}


x86 assembly (clang, -O0):
<fb16>:
push   %rbp
mov    %rsp,%rbp
push   %rax
mov    %edi,-0x4(%rbp)
jmp    1108 <fb16+0x8>

x86 assembly (clang, -O2):
<fb16>:
jmp    1100 <fb16>

LLVM IR (-O0):
define void @fb16(i32 %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca i64
%5 = alloca i8*
%6 = alloca i64
%7 = alloca i8*
%8 = alloca i64
%9 = alloca i64
%10 = alloca i8*
%11 = alloca i64
%12 = alloca i8*
%13 = alloca i64
%14 = alloca i8*
%15 = alloca i64
%16 = alloca i64
%17 = alloca i8*
%18 = alloca i64
store i32 %0, i32* %2
br label %19
19: ; preds = %19, %1
br label %19
20: ; preds = %20
br label %20
21: ; No predecessors!
%22 = load i32, i32* %2
%23 = zext i32 %22 to i64
%24 = call i8* @llvm.stacksave()
store i8* %24, i8** %3
%25 = alloca i32, i64 %23
store i64 %23, i64* %4
br label %26
26: ; preds = %26, %21
br label %26
27: ; No predecessors!
%28 = load i32, i32* %2
%29 = zext i32 %28 to i64
%30 = call i8* @llvm.stacksave()
store i8* %30, i8** %5
%31 = alloca i32, i64 %29
store i64 %29, i64* %6
br label %32
32: ; preds = %32, %27
br label %32
33: ; preds = %33
br label %33
34: ; No predecessors!
%35 = load i32, i32* %2
%36 = zext i32 %35 to i64
%37 = call i8* @llvm.stacksave()
store i8* %37, i8** %7
%38 = alloca i32, i64 %36
store i64 %36, i64* %8
br label %39
39: ; preds = %39, %34
br label %39
40: ; preds = %40
br label %40
41: ; No predecessors!
%42 = load i32, i32* %2
%43 = zext i32 %42 to i64
%44 = alloca i32, i64 %43
store i64 %43, i64* %9
br label %45
45: ; preds = %45, %41
br label %45
46: ; preds = %46
br label %46
47: ; No predecessors!
%48 = load i32, i32* %2
%49 = zext i32 %48 to i64
%50 = call i8* @llvm.stacksave()
store i8* %50, i8** %10
%51 = alloca i32, i64 %49
store i64 %49, i64* %11
br label %52
52: ; preds = %52, %47
br label %52
53: ; No predecessors!
%54 = load i32, i32* %2
%55 = zext i32 %54 to i64
%56 = call i8* @llvm.stacksave()
store i8* %56, i8** %12
%57 = alloca i32, i64 %55
store i64 %55, i64* %13
br label %58
58: ; preds = %58, %53
br label %58
59: ; preds = %59
br label %59
60: ; No predecessors!
%61 = load i32, i32* %2
%62 = zext i32 %61 to i64
%63 = call i8* @llvm.stacksave()
store i8* %63, i8** %14
%64 = alloca i32, i64 %62
store i64 %62, i64* %15
br label %65
65: ; preds = %65, %60
br label %65
66: ; preds = %66
br label %66
67: ; No predecessors!
%68 = load i32, i32* %2
%69 = zext i32 %68 to i64
%70 = alloca i32, i64 %69
store i64 %69, i64* %16
br label %71
71: ; preds = %71, %67
br label %71
72: ; preds = %72
br label %72
73: ; No predecessors!
%74 = load i32, i32* %2
%75 = zext i32 %74 to i64
%76 = call i8* @llvm.stacksave()
store i8* %76, i8** %17
%77 = alloca i32, i64 %75
store i64 %75, i64* %18
br label %78
78: ; preds = %78, %73
br label %78
79: ; preds = %79
br label %79
}

LLVM IR (-O2):
define void @fb16(i32 %0) {
br label %2
2: ; preds = %2, %1
br label %2
}