diff options
Diffstat (limited to 'gcc-4.8/gcc/testsuite/gcc.target/i386/pr58137.c')
-rw-r--r-- | gcc-4.8/gcc/testsuite/gcc.target/i386/pr58137.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/gcc.target/i386/pr58137.c b/gcc-4.8/gcc/testsuite/gcc.target/i386/pr58137.c new file mode 100644 index 000000000..0a7daf83c --- /dev/null +++ b/gcc-4.8/gcc/testsuite/gcc.target/i386/pr58137.c @@ -0,0 +1,33 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -mavx2" } */ + +typedef unsigned int U32; + +struct sv { + void* sv_any; + U32 sv_refcnt; + U32 sv_flags; +}; +typedef struct sv SV; + +struct xrv { + SV * xrv_rv; +}; +typedef struct xrv XRV; + +extern XRV * PL_xrv_root; + +void +more_xrv (void) +{ + register XRV* xrv; + register XRV* xrvend; + xrv = PL_xrv_root; + xrvend = &xrv[200 / sizeof (XRV) - 1]; + while (xrv < xrvend) + { + xrv->xrv_rv = (SV*)(xrv + 1); + xrv++; + } + xrv->xrv_rv = 0; +} |