diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2004-02-19 07:58:05 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2004-02-19 07:58:05 +0000 |
commit | 9188db2d0021c8c715c7ce2115b77ef7650e9631 (patch) | |
tree | eec8f4c45dd0ec0c231967fe56092fb2ced465c6 /gcc | |
parent | c0cfc6913eda8fe934043848ee7c9462464f75f1 (diff) | |
download | gcc-9188db2d0021c8c715c7ce2115b77ef7650e9631.zip gcc-9188db2d0021c8c715c7ce2115b77ef7650e9631.tar.gz gcc-9188db2d0021c8c715c7ce2115b77ef7650e9631.tar.bz2 |
re PR target/14209 (Bug in cris.md, shrinking access size of postincrement.)
PR target/14209
* gcc.c-torture/execute/20040218-1.c: New test.
From-SVN: r78078
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20040218-1.c | 37 |
2 files changed, 42 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 424dd55..1e5ba50 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2004-02-19 Hans-Peter Nilsson <hp@axis.com> + + PR target/14209 + * gcc.c-torture/execute/20040218-1.c: New test. + 2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org> PR c++/14181 diff --git a/gcc/testsuite/gcc.c-torture/execute/20040218-1.c b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c new file mode 100644 index 0000000..4d1541a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20040218-1.c @@ -0,0 +1,37 @@ +/* PR target/14209. Bug in cris.md, shrinking access size of + postincrement. + Origin: <hp@axis.com>. */ + +long int xb (long int *y) __attribute__ ((__noinline__)); +long int xw (long int *y) __attribute__ ((__noinline__)); +short int yb (short int *y) __attribute__ ((__noinline__)); + +long int xb (long int *y) +{ + long int xx = *y & 255; + return xx + y[1]; +} + +long int xw (long int *y) +{ + long int xx = *y & 65535; + return xx + y[1]; +} + +short int yb (short int *y) +{ + short int xx = *y & 255; + return xx + y[1]; +} + +int main (void) +{ + long int y[] = {-1, 16000}; + short int yw[] = {-1, 16000}; + + if (xb (y) != 16255 + || xw (y) != 81535 + || yb (yw) != 16255) + abort (); + exit (0); +} |