summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-17 18:16:29 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2015-11-17 18:16:29 +0000
commit93a735edb363048fdfccb762d646fe27c48cc9d8 (patch)
tree09c659d3d639f355703734bc9746117837499ec0
parentfb9bafd61c45e96c65826cb68c03e321927a6323 (diff)
downloadgcc-93a735edb363048fdfccb762d646fe27c48cc9d8.tar.gz
PR bootstrap/68361
* cvt.c (cp_convert_and_check): Use warning_sentinel to suppress -Wparentheses. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230470 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/cvt.c2
-rw-r--r--gcc/testsuite/g++.dg/warn/Wparentheses-28.C14
3 files changed, 21 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 05b92528995..e4103004286 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2015-11-17 Jason Merrill <jason@redhat.com>
+
+ PR bootstrap/68361
+ * cvt.c (cp_convert_and_check): Use warning_sentinel to suppress
+ -Wparentheses.
+
2015-11-16 Jason Merrill <jason@redhat.com>
* constexpr.c (cxx_eval_builtin_function_call): Use cp_fully_fold
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 0231efc9527..ebca00497e1 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -644,7 +644,7 @@ cp_convert_and_check (tree type, tree expr, tsubst_flags_t complain)
else
{
/* Avoid bogus -Wparentheses warnings. */
- TREE_NO_WARNING (folded) = true;
+ warning_sentinel w (warn_parentheses);
folded_result = cp_convert (type, folded, tf_none);
}
folded_result = fold_simple (folded_result);
diff --git a/gcc/testsuite/g++.dg/warn/Wparentheses-28.C b/gcc/testsuite/g++.dg/warn/Wparentheses-28.C
new file mode 100644
index 00000000000..f6636cbc6b8
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/Wparentheses-28.C
@@ -0,0 +1,14 @@
+// PR bootstrap/68361
+// { dg-options -Wparentheses }
+
+struct A
+{
+ int p: 2;
+};
+
+A a, b;
+
+int main()
+{
+ bool t = (a.p = b.p);
+}