/* 136 kamil@chieftec /tmp $ /usr/local/bin/clang -O0 null_plus_x-ub.c 137 kamil@chieftec /tmp $ ./a.out 1 138 kamil@chieftec /tmp $ /usr/local/bin/clang -O2 null_plus_x-ub.c 139 kamil@chieftec /tmp $ ./a.out 0 151 kamil@chieftec /tmp $ /usr/local/bin/clang -O3 -fwrapv null_plus_x-ub.c 152 kamil@chieftec /tmp $ ./a.out 1 $ ls -lh /usr/local/bin/clang lrwxr-xr-x 1 root wheel 8B Nov 2 21:49 /usr/local/bin/clang -> clang-10 $ /usr/local/bin/clang --version clang version 10.0.0 (git@github.com:krytarowski/llvm-project.git ed83942bc02501c62b55f77cba688263ea35221a) Target: x86_64-unknown-netbsd9.99.24 Thread model: posix InstalledDir: /usr/local/bin $ uname -a NetBSD chieftec 9.99.48 NetBSD 9.99.48 (GENERIC) #0: Fri Mar 6 20:46:53 CET 2020 root@chieftec:/public/netbsd-root/sys/arch/amd64/compile/GENERIC amd64 */ #include #include #include int statu(char *a) { a -= 1; return a == NULL; } int main(int argc, char **argv) { char *ptr = (char *)(long)(argc); printf("%d\n", statu(ptr)); return 0; }