This option is the default for optimized compilation if the
assembler and linker support it. Use `-fno-merge-constants' to
inhibit this behavior.

Enabled at levels `-O', `-O2', `-O3', `-Os'.

Because they're the same string, the compiler may choose (or may be told to) merge identical string constants, so writing "abc" twice in the code results in only one "abc" in the executable.
In this case, comparing the pointers will produce a match, but not for the obvious reason (or intent)