https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72797
--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> --- -ftrack-macro-expansion=0 is set in a number of tests that define helper macros to help reduce clutter from repetitive constructs. Without the setting, diagnostic messages in these tests would point to the macro definition instead of its expansion, defeating the DejaGnu directives and causing test failures. I suspect the option needs to stay until this is fixed and the diagnostics point to the macro expansion as most users probably expect anyway. Until then, I think the surprising effect of the option on -Wmisleading-indentation could be documented. For example: $ cat -n y.c && /build/gcc-71912/gcc/xgcc -B /build/gcc-71912/gcc -S -Wall -Wextra -Wpedantic -xc++ y.c 1 #define F(N, n) struct N { int i, a[]; } n 2 3 struct S { // { dg-message "in the definition of" } 4 F (A, a); // { dg-error "flexible array member" } 5 F (B, b); // { dg-message "next member" } 6 }; y.c:1:37: error: flexible array member ‘S::A::a’ not at end of ‘struct S’ #define F(N, n) struct N { int i, a[]; } n ^ y.c:4:3: note: in expansion of macro ‘F’ F (A, a); ^ y.c:5:9: note: next member ‘S::B S::b’ declared here F (B, b); ^ y.c:1:42: note: in definition of macro ‘F’ #define F(N, n) struct N { int i, a[]; } n ^ y.c:3:8: note: in the definition of ‘struct S’ struct S { ^