diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/i386/combine-mul.c')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/combine-mul.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/i386/combine-mul.c b/gcc/testsuite/gcc.target/i386/combine-mul.c new file mode 100644 index 000000000..8a2e86284 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/combine-mul.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-require-effective-target nonpic } */ +/* { dg-final { scan-assembler-not "12345" } } */ + +static inline unsigned int myrnd (void) +{ + static unsigned int s = 1388815473; + s *= 1103515245; + s += 12345; +} + +struct __attribute__ ((packed)) A { + unsigned short i:1, l:1, j:3, k:11; +}; + +struct A sA; +void testA (void) +{ + char *p = (char *) &sA; + *p++ = myrnd (); + *p++ = myrnd (); + sA.k = -1; +} |