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.