void fb231(int n) {
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;
    };
  a : {
    int h[n];
  P025A:
    goto P025A;
    0;
  };
  P02C:
    goto P02C;
    ;
    int i[n];
  p026A:
    goto p026A;
    goto a;
  P026A:
    goto P026A;
    0;
  };
P0C:
  goto P0C;
  ;
  int j[n];
P03A:
  goto P03A;
  0;
P03B:
  goto P03B;
}


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

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

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

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