#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
void nullptr_deref_young_bad(int *x) {
  int *vec[65] = {x, x, x, x, x, x, x, x, x, x, x, x, x, x,   x, x, x,
                  x, x, x, x, x, x, x, x, x, x, x, x, x, x,   x, x, x,
                  x, x, x, x, x, x, x, x, x, x, x, x, x, x,   x, x, x,
                  x, x, x, x, x, x, x, x, x, x, x, x, x, NULL};
  int p = *vec[64];
}


x86 assembly (clang, -O0):
<nullptr_deref_young_bad>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1a0,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x210(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x208(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x200(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1f8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1f0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1e8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1e0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1d8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1d0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1c8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1c0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1b8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1b0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1a8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x1a0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x198(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x190(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x188(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x180(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x178(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x170(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x168(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x160(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x158(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x150(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x148(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x140(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x138(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x130(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x128(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x120(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x118(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x110(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x108(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x100(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xf8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xf0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xe8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xe0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xd8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xd0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xc8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xc0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xb8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xb0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xa8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0xa0(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x98(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x90(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x88(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x80(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x78(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x70(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x68(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x58(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x50(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x48(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x40(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x18(%rbp)
movq   $0x0,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x214(%rbp)
add    $0x1a0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<nullptr_deref_young_bad>:
ret

LLVM IR (-O0):
define void @nullptr_deref_young_bad(i32* %0) {
%2 = alloca i32*
%3 = alloca [65 x i32*]
%4 = alloca i32
store i32* %0, i32** %2
%5 = getelementptr inbounds [65 x i32*], [65 x i32*]* %3, i64 0, i64 0
%6 = load i32*, i32** %2
store i32* %6, i32** %5
%7 = getelementptr inbounds i32*, i32** %5, i64 1
%8 = load i32*, i32** %2
store i32* %8, i32** %7
%9 = getelementptr inbounds i32*, i32** %7, i64 1
%10 = load i32*, i32** %2
store i32* %10, i32** %9
%11 = getelementptr inbounds i32*, i32** %9, i64 1
%12 = load i32*, i32** %2
store i32* %12, i32** %11
%13 = getelementptr inbounds i32*, i32** %11, i64 1
%14 = load i32*, i32** %2
store i32* %14, i32** %13
%15 = getelementptr inbounds i32*, i32** %13, i64 1
%16 = load i32*, i32** %2
store i32* %16, i32** %15
%17 = getelementptr inbounds i32*, i32** %15, i64 1
%18 = load i32*, i32** %2
store i32* %18, i32** %17
%19 = getelementptr inbounds i32*, i32** %17, i64 1
%20 = load i32*, i32** %2
store i32* %20, i32** %19
%21 = getelementptr inbounds i32*, i32** %19, i64 1
%22 = load i32*, i32** %2
store i32* %22, i32** %21
%23 = getelementptr inbounds i32*, i32** %21, i64 1
%24 = load i32*, i32** %2
store i32* %24, i32** %23
%25 = getelementptr inbounds i32*, i32** %23, i64 1
%26 = load i32*, i32** %2
store i32* %26, i32** %25
%27 = getelementptr inbounds i32*, i32** %25, i64 1
%28 = load i32*, i32** %2
store i32* %28, i32** %27
%29 = getelementptr inbounds i32*, i32** %27, i64 1
%30 = load i32*, i32** %2
store i32* %30, i32** %29
%31 = getelementptr inbounds i32*, i32** %29, i64 1
%32 = load i32*, i32** %2
store i32* %32, i32** %31
%33 = getelementptr inbounds i32*, i32** %31, i64 1
%34 = load i32*, i32** %2
store i32* %34, i32** %33
%35 = getelementptr inbounds i32*, i32** %33, i64 1
%36 = load i32*, i32** %2
store i32* %36, i32** %35
%37 = getelementptr inbounds i32*, i32** %35, i64 1
%38 = load i32*, i32** %2
store i32* %38, i32** %37
%39 = getelementptr inbounds i32*, i32** %37, i64 1
%40 = load i32*, i32** %2
store i32* %40, i32** %39
%41 = getelementptr inbounds i32*, i32** %39, i64 1
%42 = load i32*, i32** %2
store i32* %42, i32** %41
%43 = getelementptr inbounds i32*, i32** %41, i64 1
%44 = load i32*, i32** %2
store i32* %44, i32** %43
%45 = getelementptr inbounds i32*, i32** %43, i64 1
%46 = load i32*, i32** %2
store i32* %46, i32** %45
%47 = getelementptr inbounds i32*, i32** %45, i64 1
%48 = load i32*, i32** %2
store i32* %48, i32** %47
%49 = getelementptr inbounds i32*, i32** %47, i64 1
%50 = load i32*, i32** %2
store i32* %50, i32** %49
%51 = getelementptr inbounds i32*, i32** %49, i64 1
%52 = load i32*, i32** %2
store i32* %52, i32** %51
%53 = getelementptr inbounds i32*, i32** %51, i64 1
%54 = load i32*, i32** %2
store i32* %54, i32** %53
%55 = getelementptr inbounds i32*, i32** %53, i64 1
%56 = load i32*, i32** %2
store i32* %56, i32** %55
%57 = getelementptr inbounds i32*, i32** %55, i64 1
%58 = load i32*, i32** %2
store i32* %58, i32** %57
%59 = getelementptr inbounds i32*, i32** %57, i64 1
%60 = load i32*, i32** %2
store i32* %60, i32** %59
%61 = getelementptr inbounds i32*, i32** %59, i64 1
%62 = load i32*, i32** %2
store i32* %62, i32** %61
%63 = getelementptr inbounds i32*, i32** %61, i64 1
%64 = load i32*, i32** %2
store i32* %64, i32** %63
%65 = getelementptr inbounds i32*, i32** %63, i64 1
%66 = load i32*, i32** %2
store i32* %66, i32** %65
%67 = getelementptr inbounds i32*, i32** %65, i64 1
%68 = load i32*, i32** %2
store i32* %68, i32** %67
%69 = getelementptr inbounds i32*, i32** %67, i64 1
%70 = load i32*, i32** %2
store i32* %70, i32** %69
%71 = getelementptr inbounds i32*, i32** %69, i64 1
%72 = load i32*, i32** %2
store i32* %72, i32** %71
%73 = getelementptr inbounds i32*, i32** %71, i64 1
%74 = load i32*, i32** %2
store i32* %74, i32** %73
%75 = getelementptr inbounds i32*, i32** %73, i64 1
%76 = load i32*, i32** %2
store i32* %76, i32** %75
%77 = getelementptr inbounds i32*, i32** %75, i64 1
%78 = load i32*, i32** %2
store i32* %78, i32** %77
%79 = getelementptr inbounds i32*, i32** %77, i64 1
%80 = load i32*, i32** %2
store i32* %80, i32** %79
%81 = getelementptr inbounds i32*, i32** %79, i64 1
%82 = load i32*, i32** %2
store i32* %82, i32** %81
%83 = getelementptr inbounds i32*, i32** %81, i64 1
%84 = load i32*, i32** %2
store i32* %84, i32** %83
%85 = getelementptr inbounds i32*, i32** %83, i64 1
%86 = load i32*, i32** %2
store i32* %86, i32** %85
%87 = getelementptr inbounds i32*, i32** %85, i64 1
%88 = load i32*, i32** %2
store i32* %88, i32** %87
%89 = getelementptr inbounds i32*, i32** %87, i64 1
%90 = load i32*, i32** %2
store i32* %90, i32** %89
%91 = getelementptr inbounds i32*, i32** %89, i64 1
%92 = load i32*, i32** %2
store i32* %92, i32** %91
%93 = getelementptr inbounds i32*, i32** %91, i64 1
%94 = load i32*, i32** %2
store i32* %94, i32** %93
%95 = getelementptr inbounds i32*, i32** %93, i64 1
%96 = load i32*, i32** %2
store i32* %96, i32** %95
%97 = getelementptr inbounds i32*, i32** %95, i64 1
%98 = load i32*, i32** %2
store i32* %98, i32** %97
%99 = getelementptr inbounds i32*, i32** %97, i64 1
%100 = load i32*, i32** %2
store i32* %100, i32** %99
%101 = getelementptr inbounds i32*, i32** %99, i64 1
%102 = load i32*, i32** %2
store i32* %102, i32** %101
%103 = getelementptr inbounds i32*, i32** %101, i64 1
%104 = load i32*, i32** %2
store i32* %104, i32** %103
%105 = getelementptr inbounds i32*, i32** %103, i64 1
%106 = load i32*, i32** %2
store i32* %106, i32** %105
%107 = getelementptr inbounds i32*, i32** %105, i64 1
%108 = load i32*, i32** %2
store i32* %108, i32** %107
%109 = getelementptr inbounds i32*, i32** %107, i64 1
%110 = load i32*, i32** %2
store i32* %110, i32** %109
%111 = getelementptr inbounds i32*, i32** %109, i64 1
%112 = load i32*, i32** %2
store i32* %112, i32** %111
%113 = getelementptr inbounds i32*, i32** %111, i64 1
%114 = load i32*, i32** %2
store i32* %114, i32** %113
%115 = getelementptr inbounds i32*, i32** %113, i64 1
%116 = load i32*, i32** %2
store i32* %116, i32** %115
%117 = getelementptr inbounds i32*, i32** %115, i64 1
%118 = load i32*, i32** %2
store i32* %118, i32** %117
%119 = getelementptr inbounds i32*, i32** %117, i64 1
%120 = load i32*, i32** %2
store i32* %120, i32** %119
%121 = getelementptr inbounds i32*, i32** %119, i64 1
%122 = load i32*, i32** %2
store i32* %122, i32** %121
%123 = getelementptr inbounds i32*, i32** %121, i64 1
%124 = load i32*, i32** %2
store i32* %124, i32** %123
%125 = getelementptr inbounds i32*, i32** %123, i64 1
%126 = load i32*, i32** %2
store i32* %126, i32** %125
%127 = getelementptr inbounds i32*, i32** %125, i64 1
%128 = load i32*, i32** %2
store i32* %128, i32** %127
%129 = getelementptr inbounds i32*, i32** %127, i64 1
%130 = load i32*, i32** %2
store i32* %130, i32** %129
%131 = getelementptr inbounds i32*, i32** %129, i64 1
%132 = load i32*, i32** %2
store i32* %132, i32** %131
%133 = getelementptr inbounds i32*, i32** %131, i64 1
store i32* null, i32** %133
%134 = getelementptr inbounds [65 x i32*], [65 x i32*]* %3, i64 0, i64 64
%135 = load i32*, i32** %134
%136 = load i32, i32* %135
store i32 %136, i32* %4
ret void
}

LLVM IR (-O2):
define void @nullptr_deref_young_bad(i32* nocapture %0) {
ret void
}