https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119321
            Bug ID: 119321
           Summary: Jump threading causing false positive warnings with
                    integer ranges
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: peter0x44 at disroot dot org
  Target Milestone: ---

the following testcase:
https://gcc.godbolt.org/z/766zxEfKn

int* p;

void f(int x)
{
    for (int i = 0; i < x; i++) {
        *p = 0;
    }
    p = __builtin_malloc(x);
    for (int i = 0; i < x; i++) {
        *p = 0;
    }
}

when compiled with gcc -Wall -O1

produces a "bogus"/undesired warning with incorrect ranges for the call to
malloc:

<source>:8:9: warning: argument 1 range [18446744071562067968,
18446744073709551615] exceeds maximum object size 9223372036854775807
[-Walloc-size-larger-than=]
    8 |     p = __builtin_malloc(x);
      |         ^~~~~~~~~~~~~~~~~~~

adding `-fno-thread-jumps` removes this warning.
  • [Bug tree-optimization/119321] N... peter0x44 at disroot dot org via Gcc-bugs

Reply via email to