Tokenizer is used with include_empty, and the output typically ends with
\n.
For each line, tokenizer returns it without the \n, and the function
appends
it. But if the output ends with \n, the tokenizer returns an additional
empty string, and a redundant LF is written to stdout.
Another issue can be if the last line of the original output doesn't end
with \n at all, ccache added it anyway.
It was probably unnoticed until now since gcc has no output at all, while
cl outputs the source file name.