https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97602

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Joseph Myers <js...@gcc.gnu.org>:

https://gcc.gnu.org/g:9ccffd1298b5235b25ad05b89e3104fb2935fe27

commit r11-5507-g9ccffd1298b5235b25ad05b89e3104fb2935fe27
Author: Joseph Myers <jos...@codesourcery.com>
Date:   Fri Nov 27 22:40:01 2020 +0000

    preprocessor: Fix #line overflow check [PR97602]

    The preprocessor check for overflow (of linenum_type = unsigned int)
    when reading the line number in a #line directive is incomplete; it
    checks "reg < reg_prev" which doesn't cover all cases where
    multiplying by 10 overflowed.  Fix this by checking for overflow
    before rather than after it occurs (using essentially the same logic
    as used by e.g. glibc printf when reading width and precision values
    from strings).

    Bootstrapped with no regressions for x86_64-pc-linux-gnu.

    libcpp/
    2020-11-27  Joseph Myers  <jos...@codesourcery.com>

            PR preprocessor/97602
            * directives.c (strtolinenum): Check for overflow before it
            occurs.  Correct comment.

    gcc/testsuite/
    2020-11-27  Joseph Myers  <jos...@codesourcery.com>

            PR preprocessor/97602
            * gcc.dg/cpp/line9.c, gcc.dg/cpp/line10.c: New tests.
  • [Bug preprocessor/97602] #line ... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to