https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84864
--- Comment #9 from Jonny Grant <jg at jguk dot org> --- I'm sure you all know more than me. But I understood #line 0 was not allowed. Therefore, it can simply be unsigned, and 0 used to indicate an error, instead of negative values. #line 0 is not currently an error, but probably should right? file line numbers start at 1. If it was changed to a uint64, at least this issue wouldn't occur for a long time. BTW, could this message clarify what the supported range is? Probably 2147483648 ? Output of x86-64 gcc (trunk) (Compiler #1) <source>:1:7: warning: line number out of range 1 | #line 4444884444 | ^~~~~~~~~~ Compiler returned: 0