summaryrefslogtreecommitdiff
path: root/cross/cross-gcc/pr65882.patch
diff options
context:
space:
mode:
Diffstat (limited to 'cross/cross-gcc/pr65882.patch')
-rw-r--r--cross/cross-gcc/pr65882.patch66
1 files changed, 0 insertions, 66 deletions
diff --git a/cross/cross-gcc/pr65882.patch b/cross/cross-gcc/pr65882.patch
deleted file mode 100644
index 673712b2b..000000000
--- a/cross/cross-gcc/pr65882.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff --git a/gcc/cp/call.c b/gcc/cp/call.c
-index 7bdf236..689d542 100644
---- a/gcc/cp/call.c
-+++ b/gcc/cp/call.c
-@@ -5677,8 +5677,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
- case TRUTH_ORIF_EXPR:
- case TRUTH_AND_EXPR:
- case TRUTH_OR_EXPR:
-- warn_logical_operator (loc, code, boolean_type_node,
-- code_orig_arg1, arg1, code_orig_arg2, arg2);
-+ if (complain & tf_warning)
-+ warn_logical_operator (loc, code, boolean_type_node,
-+ code_orig_arg1, arg1, code_orig_arg2, arg2);
- /* Fall through. */
- case GT_EXPR:
- case LT_EXPR:
-@@ -5686,8 +5687,9 @@ build_new_op_1 (location_t loc, enum tree_code code, int flags, tree arg1,
- case LE_EXPR:
- case EQ_EXPR:
- case NE_EXPR:
-- if ((code_orig_arg1 == BOOLEAN_TYPE)
-- ^ (code_orig_arg2 == BOOLEAN_TYPE))
-+ if ((complain & tf_warning)
-+ && ((code_orig_arg1 == BOOLEAN_TYPE)
-+ ^ (code_orig_arg2 == BOOLEAN_TYPE)))
- maybe_warn_bool_compare (loc, code, arg1, arg2);
- /* Fall through. */
- case PLUS_EXPR:
-diff --git a/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C
-new file mode 100644
-index 0000000..5655eb4
---- /dev/null
-+++ b/gcc/testsuite/g++.dg/diagnostic/inhibit-warn.C
-@@ -0,0 +1,32 @@
-+// PR c++/65882
-+// { dg-do compile { target c++11 } }
-+// { dg-options "-Wbool-compare" }
-+
-+// Check that we don't ICE because of reentering error reporting routines while
-+// evaluating template parameters
-+
-+template<typename>
-+struct type_function {
-+ static constexpr bool value = false;
-+};
-+
-+template<bool>
-+struct dependent_type {
-+ typedef int type;
-+};
-+
-+template<typename T>
-+typename dependent_type<(5 > type_function<T>::value)>::type
-+bar();
-+
-+template<typename T>
-+typename dependent_type<(5 > type_function<T>::value)>::type
-+foo()
-+{
-+ return bar<int>();
-+}
-+
-+int main()
-+{
-+ foo<int>();
-+}