summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture
diff options
context:
space:
mode:
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2012-09-14 16:59:10 +0000
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>2012-09-14 16:59:10 +0000
commitbb554051056e54cf82993d6680c3f3c2aabaf85b (patch)
tree95a34b6ced24ac7d8b25b3d0768dbbb429f9ac2e /gcc/testsuite/gcc.c-torture
parent79256e60cf0e2c0ac194fb454918f52559c988e1 (diff)
downloadgcc-bb554051056e54cf82993d6680c3f3c2aabaf85b.tar.gz
c:
PR c/54103 * c-typeck.c (build_unary_op): Pass original argument of TRUTH_NOT_EXPR to c_objc_common_truthvalue_conversion, then remove any C_MAYBE_CONST_EXPR, if it has integer operands. (build_binary_op): Pass original arguments of TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR to c_objc_common_truthvalue_conversion, then remove any C_MAYBE_CONST_EXPR, if they have integer operands. Use c_objc_common_truthvalue_conversion not c_common_truthvalue_conversion. (c_objc_common_truthvalue_conversion): Build NE_EXPR directly and call note_integer_operands for arguments with integer operands that are not integer constants. testsuite: * gcc.c-torture/compile/pr54103-1.c, gcc.c-torture/compile/pr54103-2.c, gcc.c-torture/compile/pr54103-3.c, gcc.c-torture/compile/pr54103-4.c, gcc.c-torture/compile/pr54103-5.c, gcc.c-torture/compile/pr54103-6.c: New tests. * gcc.dg/c90-const-expr-8.c: Update expected column number. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191304 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr54103-1.c5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr54103-2.c5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr54103-3.c5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr54103-4.c5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr54103-5.c5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr54103-6.c5
6 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54103-1.c b/gcc/testsuite/gcc.c-torture/compile/pr54103-1.c
new file mode 100644
index 00000000000..d941f3e1fdf
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54103-1.c
@@ -0,0 +1,5 @@
+void
+f (void)
+{
+ 0 || 0 / 0 ? : 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54103-2.c b/gcc/testsuite/gcc.c-torture/compile/pr54103-2.c
new file mode 100644
index 00000000000..4bd624965e8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54103-2.c
@@ -0,0 +1,5 @@
+void
+f (void)
+{
+ 0 / 0 || 0 ? : 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54103-3.c b/gcc/testsuite/gcc.c-torture/compile/pr54103-3.c
new file mode 100644
index 00000000000..9be0b94ce31
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54103-3.c
@@ -0,0 +1,5 @@
+void
+f (void)
+{
+ 1 && 0 / 0 ? : 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54103-4.c b/gcc/testsuite/gcc.c-torture/compile/pr54103-4.c
new file mode 100644
index 00000000000..89ce24cd912
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54103-4.c
@@ -0,0 +1,5 @@
+void
+f (void)
+{
+ 0 / 0 && 1 ? : 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54103-5.c b/gcc/testsuite/gcc.c-torture/compile/pr54103-5.c
new file mode 100644
index 00000000000..9594b28955f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54103-5.c
@@ -0,0 +1,5 @@
+void
+f (void)
+{
+ !(0 / 0);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr54103-6.c b/gcc/testsuite/gcc.c-torture/compile/pr54103-6.c
new file mode 100644
index 00000000000..2b0b0baa916
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr54103-6.c
@@ -0,0 +1,5 @@
+void
+f (void)
+{
+ 0 || 65536*65536 ? : 0;
+}