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

            Bug ID: 80847
           Summary: UBSAN: yet another false positive (part2)
           Product: gcc
           Version: 8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: sanitizer
          Assignee: unassigned at gcc dot gnu.org
          Reporter: babokin at gmail dot com
                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, marxin at 
gcc dot gnu.org
  Target Milestone: ---

gcc rev248312, x86_64.

> cat f.cpp
long long int a = -8619712598616233901LL;
long long int b = -2492839055825936744LL;
long long int c = 0;
int main() {
  if (c * a + b * c)
    return 1;
  return 0;
}

> g++ -fsanitize=undefined -O0 f.cpp

> ./a.out
f.cpp:5:13: runtime error: signed integer overflow: -8619712598616233901 +
-2492839055825936744 cannot be represented in type 'long long int'

Reply via email to