$ gcc -v gcc version 10.2.1 20210110 (Debian 10.2.1-6) $ clang -v Debian clang version 11.0.1-2
$ cat hello.c int i;main(){for(;i["]<i;++i){--i;}"];read('-'-'-',i+++"Hell\ o, world!\n",'/'/'/'));}read(j,i,p){write(j/p+p,i---j,i/i);} $ gcc -ansi -o hello hello.c $ strace hello . . . write(1, 0x416c9004, 1) = -1 EFAULT (Bad address) write(1, 0x416c9005, 1) = -1 EFAULT (Bad address) write(1, 0x416c9006, 1) = -1 EFAULT (Bad address) write(1, 0x416c9007, 1) = -1 EFAULT (Bad address) write(1, 0x416c9008, 1) = -1 EFAULT (Bad address) write(1, 0x416c9009, 1) = -1 EFAULT (Bad address) write(1, 0x416c900a, 1) = -1 EFAULT (Bad address) write(1, 0x416c900b, 1) = -1 EFAULT (Bad address) write(1, 0x416c900c, 1) = -1 EFAULT (Bad address) write(1, 0x416c900d, 1) = -1 EFAULT (Bad address) write(1, 0x416c900e, 1) = -1 EFAULT (Bad address) write(1, 0x416c900f, 1) = -1 EFAULT (Bad address) write(1, 0x416c9010, 1) = -1 EFAULT (Bad address) write(1, 0x416c9011, 1) = -1 EFAULT (Bad address) exit_group(0) = ? +++ exited with 0 +++ $ clang -ansi -o hello hello.c $ strace hello . . . write(1, "H", 1H) = 1 write(1, "e", 1e) = 1 write(1, "l", 1l) = 1 write(1, "l", 1l) = 1 write(1, "o", 1o) = 1 write(1, ",", 1,) = 1 write(1, " ", 1 ) = 1 write(1, "w", 1w) = 1 write(1, "o", 1o) = 1 write(1, "r", 1r) = 1 write(1, "l", 1l) = 1 write(1, "d", 1d) = 1 write(1, "!", 1!) = 1 write(1, "\n", 1 ) = 1 exit_group(0) = ? +++ exited with 0 +++