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

            Bug ID: 117095
           Summary: [13/14/15 Regression] Wrong code since
                    r13-5103-g7c9f20fcfdc2d8
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: stefansf at gcc dot gnu.org
  Target Milestone: ---
            Target: s390*-*-*

short a, b;
int c, e, main_r;
long f, g;
int *h = &c, *i;
volatile __int128 j;
char k, l;
char m(char n, char o) { return n + o; }
char p(char n, char o) { return o == 0 ? n : n / o; }
short fn3(short n) { return n - a; }
int main() {
  char *q = &l;
  int **s = &i;
  *s = &main_r;
  for (e = 0; e <= 5; e++) {
    for (g = 1; g <= 5; g++) {
      k = m(9, *i);
      **s = p(f > 1, (1 && j) ^ k);
    }
  }
  b = fn3(q == &l);
  *h = b;
  if (c != 1)
    __builtin_abort();
}

If compiled using -march=z15 -O2 the program aborts and succeeds with -O{0,1}.

Bisection stops at r13-5103-g7c9f20fcfdc2d8 which itself is probably not the
culprit.

Reply via email to