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

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The easiest fix is todo:
```
  for (int i = 0; i < N; ++i)
    {
      a[i] = BASE1 + i * 5;
      b[i] = BASE2 - i * 4;
      /* b[i] cannot be 0 as that is undefined for `% b[i]`. */
      b[i] = b[i] ? b[i] : 1;
      __asm__ volatile ("");
    }
```

On x86_64, I suspect we are getting a trap on the `% b[i]` rather than a
comparison difference too. Which is why the fix should be on the initialization
rather than the checking.

Reply via email to