diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/20010717-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/20010717-1.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/20010717-1.c b/gcc/testsuite/gcc.c-torture/execute/20010717-1.c new file mode 100644 index 000000000..65199da90 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/20010717-1.c @@ -0,0 +1,22 @@ +extern void abort (void); + +int +main () +{ + int i, j; + unsigned long u, r1, r2; + + i = -16; + j = 1; + u = i + j; + + /* no sign extension upon shift */ + r1 = u >> 1; + /* sign extension upon shift, but there shouldn't be */ + r2 = ((unsigned long) (i + j)) >> 1; + + if (r1 != r2) + abort (); + + return 0; +} |