void fb255(int n) {
a : {
  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;
  goto a;
P03A:
  goto P03A;
  0;
P03B:
  goto P03B;
}


x86 assembly (clang, -O0):
<fb255>:
push   %rbp
mov    %rsp,%rbp
sub    $0x90,%rsp
mov    %edi,-0x4(%rbp)
mov    -0x4(%rbp),%eax
mov    %rsp,%rcx
mov    %rcx,-0x10(%rbp)
mov    %rax,-0x18(%rbp)
jmp    111c <fb255+0x1c>

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

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

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