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

            Bug ID: 77425
           Summary: Pointer test follows dereference in sched-int.h
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
            Blocks: 77421
  Target Milestone: ---

sd_iterator_cond in gcc/sched-int.h has:

              it_ptr->linkp = &DEPS_LIST_FIRST (list);

              if (list)
                continue;

where DEPS_LIST_FIRST dereferences list, so either the test is always true or
the dereference is undefined behavious.

Maybe it should be:

              it_ptr->linkp = list ? &DEPS_LIST_FIRST (list) : NULL;

              if (list)
                continue;


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77421
[Bug 77421] Bugs found in GCC with the help of PVS-Studio

Reply via email to