Message ID | 20191004194333.GA3137@SDF.ORG |
---|---|
State | New |
Headers | show |
Series | [PR,target/85401] Add test-cases | expand |
On 10/4/19 1:43 PM, coypu@sdf.org wrote: > On Tue, Oct 01, 2019 at 01:26:16PM -0600, Jeff Law wrote: >> On 9/30/19 2:45 PM, coypu@sdf.org wrote: >>> On Mon, Sep 30, 2019 at 11:46:24AM -0400, Vladimir Makarov wrote: >>>> Yes, the patch is mostly ok. You can commit it into the trunk after >>>> applying changes mentioned below. If you do not have a write access, let me >>>> know I'll commit the patch by myself. >>> >>> I don't have commit access. It would be nice if you committed it :) >> I took care of the nits and committed the patch. >> >> >>> >>>> It would be nice to add a small test too. But it is not obligatory for this >>>> case as the patch is obvious and it might be hard to create a small test to >>>> reproduce the bug. >>> >>> I have the C code that produces this failure. I can creduce it, but I'm >>> not sure there's a relationship between it and the bug. >>> Doing unrelated changes (adding instruction scheduling) to vax also hid it. >>> >>> Is this kind of test still valuable? >> Often they are. >> >> jeff > > Here's the two tests I used. It might be too machine-made. > One is in the vax specific directory since it needed -fno-pic. > > > 2019-10-04 Maya Rashish <coypu@sdf.org> > * gcc.c-torture/compile/pr85401-2.c: New test. > * gcc.target/vax/pr85401-1.c: New test. ISTM that both should be in c-torture. We can use dg-* things in there too. jeff
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr85401-2.c b/gcc/testsuite/gcc.c-torture/compile/pr85401-2.c new file mode 100644 index 0000000..1d68d0b --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr85401-2.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +int h(void); +int i(int); + +struct a b; +struct a { + unsigned c : 4; +} d() { + int e, f = b.c << 2, g = h(); + for (; g;) + ; + if (e == 0) + if (f) + i(f); + return b; +} diff --git a/gcc/testsuite/gcc.target/vax/pr85401-1.c b/gcc/testsuite/gcc.target/vax/pr85401-1.c new file mode 100644 index 0000000..3a06f45 --- /dev/null +++ b/gcc/testsuite/gcc.target/vax/pr85401-1.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fno-pic" } */ + +int f; +struct ac g; +void h(); +void j() {} +struct c { + int d; +} k() { + ((struct c *)j)->d ^= f; +} +int *l(); +struct ac { + unsigned i : 4; +} m() { + int *a, *c; + int b = g.i << 2, d, e; + ((struct c *)j)->d & 8; + a = l(); + c = a; + h(); + if (c) + goto aj; + h(); + d = b; + for (; d; d -= e += e) + h(); +aj: + k(); +}