From: Dale Johannesen Date: Sun, 5 Jun 2005 01:22:31 +0000 (+0000) Subject: 20050603-1.c: New. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1c3250edc2e78ad7b844264daac0e5596747878d;p=gcc.git 20050603-1.c: New. 2005-06-04 Dale Johannesen * gcc.c-torture/execute/20050603-1.c: New. * gcc.c-torture/execute/20050603-2.c: New. * gcc.dg/20050603-3.c: New. From-SVN: r100611 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index aba8829e76f..e2c887a2200 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-06-04 Dale Johannesen + + * gcc.c-torture/execute/20050603-1.c: New. + * gcc.c-torture/execute/20050603-2.c: New. + * gcc.dg/20050603-3.c: New. + 2005-06-04 Tobias Schl"uter PR fortran/19195 diff --git a/gcc/testsuite/gcc.c-torture/execute/20050603-1.c b/gcc/testsuite/gcc.c-torture/execute/20050603-1.c new file mode 100644 index 00000000000..2da1b1077b5 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050603-1.c @@ -0,0 +1,23 @@ +/* { dg-do run { target powerpc*-*-* } } */ +#include +#include +register int *testreg asm ("r29"); + +int x; +int y; +int *ext_func (int *p) { return p; } + +void test_reg_save_restore (int*) __attribute__((noinline)); +void +test_reg_save_restore (int *p) +{ + setlocale (LC_ALL, "C"); + testreg = ext_func(p); +} +main() { + testreg = &x; + test_reg_save_restore (&y); + if (testreg != &y) + abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.c-torture/execute/20050603-2.c b/gcc/testsuite/gcc.c-torture/execute/20050603-2.c new file mode 100644 index 00000000000..b923c229442 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20050603-2.c @@ -0,0 +1,20 @@ +/* { dg-do run } */ +#include +struct s { + unsigned short f: 16; + unsigned short y: 8; + unsigned short g: 2; + unsigned int x; +}; + +void set (struct s*, int) __attribute__((noinline)); +void set (struct s* p, int flags) { + p->g = flags << 1; +} +main() { + struct s foo = {0 , 0, 3, 0}; + set (&foo, -1); + if (foo.g != 2) + abort(); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/20050603-3.c b/gcc/testsuite/gcc.dg/20050603-3.c new file mode 100644 index 00000000000..35be6602155 --- /dev/null +++ b/gcc/testsuite/gcc.dg/20050603-3.c @@ -0,0 +1,15 @@ +/* { dg-do compile { target "powerpc-*-*" } } */ +/* { dg-options "-O2" } */ +struct Q +{ + long x:20; + long y:4; + long z:8; +}b; +/* This should generate a single rl[w]imi. */ +void rotins (unsigned int x) +{ + b.y = (x<<12) | (x>>20); +} + +/* { dg-final { scan-assembler-not "inm" } } */