aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Nemet <anemet@caviumnetworks.com>2006-01-13 23:26:47 +0000
committerAdam Nemet <nemet@gcc.gnu.org>2006-01-13 23:26:47 +0000
commit41e0c1a3ad9655a4a7bef8337f9940528181a2a1 (patch)
tree01e7279356791dbc65b1b824a2d655e88e05111f
parent4df8acd3c82998c4f18ec1fd3ee97b6d81c61135 (diff)
downloadgcc-41e0c1a3ad9655a4a7bef8337f9940528181a2a1.zip
gcc-41e0c1a3ad9655a4a7bef8337f9940528181a2a1.tar.gz
gcc-41e0c1a3ad9655a4a7bef8337f9940528181a2a1.tar.bz2
20060110-1.c: New test.
* gcc.c-torture/execute/20060110-1.c: New test. * gcc.c-torture/execute/20060110-2.c: New test. From-SVN: r109680
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20060110-1.c16
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/20060110-2.c19
3 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f951d73..cca26ea 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-13 Adam Nemet <anemet@caviumnetworks.com>
+
+ * gcc.c-torture/execute/20060110-1.c: New test.
+ * gcc.c-torture/execute/20060110-2.c: New test.
+
2006-01-13 Ulrich Weigand <uweigand@de.ibm.com>
* gcc.c-torture/compile/pr25310.c: Disable test on 16-bit targets.
diff --git a/gcc/testsuite/gcc.c-torture/execute/20060110-1.c b/gcc/testsuite/gcc.c-torture/execute/20060110-1.c
new file mode 100644
index 0000000..112528e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20060110-1.c
@@ -0,0 +1,16 @@
+extern void abort (void);
+
+long long
+f (long long a)
+{
+ return (a << 32) >> 32;
+}
+long long a = 0x1234567876543210LL;
+long long b = (0x1234567876543210LL << 32) >> 32;
+int
+main ()
+{
+ if (f (a) != b)
+ abort ();
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/execute/20060110-2.c b/gcc/testsuite/gcc.c-torture/execute/20060110-2.c
new file mode 100644
index 0000000..bf60f94
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/20060110-2.c
@@ -0,0 +1,19 @@
+extern void abort (void);
+
+long long
+f (long long a, long long b)
+{
+ return ((a + b) << 32) >> 32;
+}
+
+long long a = 0x1234567876543210LL;
+long long b = 0x2345678765432101LL;
+long long c = ((0x1234567876543210LL + 0x2345678765432101LL) << 32) >> 32;
+
+int
+main ()
+{
+ if (f (a, b) != c)
+ abort ();
+ return 0;
+}