https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99323
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Slightly reduced test-case: $ cat x.c typedef struct { } REFERENCE; #define LIM2() LIM1() #define LIM3() LIM2() LIM2() LIM2() LIM2() LIM2() LIM2() #define LIM4() \ LIM3() LIM3() LIM3() LIM3() LIM3() LIM3() LIM3() LIM3() LIM3() LIM3() #define LIM5() \ LIM4() LIM4() LIM4() LIM4() LIM4() LIM4() LIM4() LIM4() LIM4() LIM4() #define LIM1() DEF(), REFERENCE references[] = {LIM5()}