https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100450
--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> --- Likewise with g++ - nonsurprising as it is common code in c-ppoutput.c's token_streamer::stream. First called with token->type == CPP_PRAGMA fprintf (print.outf, "%s %s", space, name); is the proper '#pragma omp for'. Then comes a CPP_PADDING followed by CPP_NAME. There is some 'Subtle logic to output a space if and only if necessary.' at the top of that file - and that seems to break here.