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

            Bug ID: 113726
           Summary: sanitizer reports signed overflow but not underflow
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jetrull at sbcglobal dot net
                CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org,
                    jakub at gcc dot gnu.org, kcc at gcc dot gnu.org
  Target Milestone: ---

This code produces both a warning and a sanitizer failure:

    long result = std::numeric_limits<long>::max() + 1l;

This code produces only a compiler warning:

    long result = std::numeric_limits<long>::min() - 1l;

The Clang sanitizer flags both operations.

This seems to be true for several versions, including 11.4 (my laptop) and
trunk.

https://godbolt.org/z/9nf3hhWsM
  • [Bug sanitizer/113726] New: sani... jetrull at sbcglobal dot net via Gcc-bugs

Reply via email to