about summary refs log tree commit diff homepage
path: root/test/regression/2007-08-06-64bit-shift.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/regression/2007-08-06-64bit-shift.c')
-rw-r--r--test/regression/2007-08-06-64bit-shift.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/regression/2007-08-06-64bit-shift.c b/test/regression/2007-08-06-64bit-shift.c
new file mode 100644
index 00000000..958e56c0
--- /dev/null
+++ b/test/regression/2007-08-06-64bit-shift.c
@@ -0,0 +1,20 @@
+// RUN: %llvmgcc %s -emit-llvm -O0 -c -o %t1.bc
+// RUN: %klee %t1.bc
+
+#include <assert.h>
+
+int main() {
+  int d;
+  
+  klee_make_symbolic( &d, sizeof(d) );
+
+  int l = d - 1;
+  unsigned long long m = ((unsigned long long) l << 32) / d;
+  if (d==2) {
+    assert(m == 2147483648u);
+  }
+
+  klee_silent_exit(0);
+
+  return 0;
+}