aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/optim/trunc-not0.c
diff options
context:
space:
mode:
Diffstat (limited to 'validation/optim/trunc-not0.c')
-rw-r--r--validation/optim/trunc-not0.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/validation/optim/trunc-not0.c b/validation/optim/trunc-not0.c
new file mode 100644
index 00000000..febed165
--- /dev/null
+++ b/validation/optim/trunc-not0.c
@@ -0,0 +1,21 @@
+typedef __INT32_TYPE__ int32;
+typedef __INT64_TYPE__ int64;
+
+static _Bool sfoo(int64 a) { return ((int32) ~a) == (~ (int32)a); }
+static _Bool sbar(int64 a) { return (~(int32) ~a) == (int32)a; }
+
+
+typedef __UINT32_TYPE__ uint32;
+typedef __UINT64_TYPE__ uint64;
+
+static _Bool ufoo(uint64 a) { return ((uint32) ~a) == (~ (uint32)a); }
+static _Bool ubar(uint64 a) { return (~(uint32) ~a) == (uint32)a; }
+
+/*
+ * check-name: trunc-not0
+ * check-command: test-linearize -Wno-decl $file
+ * check-known-to-fail
+ *
+ * check-output-ignore
+ * check-output-returns: 1
+ */