aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-10-30 22:58:49 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-10-30 22:58:49 +0000
commit1db4252cead4efe2f13d88a8420a687acd5abe62 (patch)
tree6dcaf06d96bde38ddbba3efc2c708ce7f6cdcde9 /gcc/testsuite
parentde2d7877bae3da8afdf8a9939963867b43474235 (diff)
downloadgcc-1db4252cead4efe2f13d88a8420a687acd5abe62.zip
gcc-1db4252cead4efe2f13d88a8420a687acd5abe62.tar.gz
gcc-1db4252cead4efe2f13d88a8420a687acd5abe62.tar.bz2
re PR rtl-optimization/18084 (setfill coupled with inline function: incorrect results on Linux x86)
PR rtl-optimization/18084 * g++.dg/opt/pr18084-1.C: New testcase. From-SVN: r89900
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/opt/pr18084-1.C32
2 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3255d47..aa3247e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-30 Roger Sayle <roger@eyesopen.com>
+
+ PR rtl-optimization/18084
+ * g++.dg/opt/pr18084-1.C: New testcase.
+
2004-10-30 Matt Austern <austern@apple.com>
PR c++/17542
diff --git a/gcc/testsuite/g++.dg/opt/pr18084-1.C b/gcc/testsuite/g++.dg/opt/pr18084-1.C
new file mode 100644
index 0000000..bf62a7b
--- /dev/null
+++ b/gcc/testsuite/g++.dg/opt/pr18084-1.C
@@ -0,0 +1,32 @@
+// { dg-do run }
+// { dg-options "-O3" }
+
+extern "C" void abort (void);
+
+struct X {
+ bool init;
+ void foo() { if (!init) init = true; }
+ void bar() { foo(); }
+
+};
+
+typedef unsigned long long int uint64_t;
+uint64_t mask1, mask2;
+
+uint64_t calc() {
+ return mask1 & mask2;
+}
+
+int main()
+{
+ mask1 = 0x00000000FFFFFFFFull;
+ mask2 = 0x000000000000FFFFull;
+ uint64_t value = calc();
+
+ X().bar();
+
+ if(value != calc())
+ abort ();
+ return 0;
+}
+