https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97989
--- Comment #14 from Stas Sergeev <stsp at users dot sourceforge.net> --- (In reply to Jakub Jelinek from comment #13) > Because without the -dD implicitly added for -g3 the -g3 option can't work > as documented, in particular record the macros in the debug information. > Because they would be irrecoverably lost during the preprocessing phase. I think there is a bit of misunderstanding. The question is: I re-checked and found that not only "gcc -g3" sets -dD for cpp (which I understand), but also "cpp -g3" does the same. Raw cpp, not gcc. Should cpp react on -gX directly, rather than on an implicitly set -dD? But: $ gcc -Wp,-g3 -E -Wp,-P -xc - </dev/null doesn't produce any output... confused. $ cpp -g3 -P -xc -g0 - </dev/null shouldn't produce anyothing, or?