As of 212638: gcc/c-family/ChangeLog: * c-ppoutput.c (struct print::prev_was_system_token): New data member. (init_pp_output): Initialize it. (maybe_print_line_1, maybe_print_line, print_line_1, print_line) (do_line_change): Return a flag saying if a line marker was emitted or not. (scan_translation_unit): Detect if the system-ness of the token we are about to emit is different from the one of the previously emitted token. If so, emit a line marker. Avoid emitting useless adjacent line markers. Avoid emitting line markers for tokens originating from the expansion of built-in macros. (scan_translation_unit_directives_only): Adjust. by dodji gcc fails to build ncurses. Basically the preprocessor ends up generating invalid C-code. I'll try to reduce a testcase soon, but in the meantime this appears on x86, arm and aarch64 so should be easily reproducible
I'm closing this as invalid. The bug is in the ncurses build process which assumes that the preprocessor does not introduce new lines and mangles the output with its own sed and awk trickery which ends up stumbling on the new chanes