https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105108
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- And I certainly can't reproduce the wrong-debug issue you're talking about. If I change it to char l_144 = 8; then optimized dump has: <bb 2> [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG l_144 => 8 # DEBUG BEGIN_STMT # DEBUG l_165 => 128 # DEBUG BEGIN_STMT # DEBUG l_144 => NULL # DEBUG BEGIN_STMT a = 1; return 0; and in the debugger it correctly says that (gdb) p l_144 $1 = <optimized out> because at the a = 1 store the value is unknown.