https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63691
--- Comment #13 from Aaro Koskinen <aaro.koskinen at iki dot fi> --- Created attachment 33884 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33884&action=edit Preprocessed dl-conflict Here's the preprocessed dl-conflict.c. In elf_machine_rela(), the sym_map gets always assigned to 0, and in the following switch cases it's dereferenced without any checks. Those are where the compiler will add abort refs. When compiled with -fno-delete-null-pointer-checks GCC won't do that, but it's not really related to any null pointer checks, instead the switch has also other meanings, i.e. it's also telling the compiler that NULL deref is not erroneous so it cannot make program fail on those. Or at least that's how I understand it.