Исходя из того, что я экспериментировал, я пришел к следующему выводу:
Поскольку адрес локальной переменной, которая уже вышла из области видимости, не определен, кажется, что g cc и g ++ решили реализовать функцию, которая устанавливает это в ноль (возможно, чтобы убедиться, что код работает с ошибками вместо генерации совершенно странного поведения). В clang этого не происходит, но значение не определено, поэтому оба этих компилятора работают в соответствии со стандартом.