Currently CPP will silently convert line numbers from unsigned long to unsigned int. It will also wrap-around line numbers higher than ULONG_MAX. This patch adds a warning when any of these events occur. Boostrapped and regression tested on x86_64-unknown-linux-gnu. 2008-02-27 Manuel Lopez-Ibanez PR28079 libcpp/ * directives.c (strtoul_for_line): Add a parameter 'wrapped'. (do_line): Update call to strtoul_for_line. Warn if wrapped or if truncated. (do_linemarker): Update call to strtoul_for_line. testsuite/ * gcc.dg/cpp/line6.c: New.