aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/pt.c
diff options
context:
space:
mode:
authorJoseph Myers <jsm@polyomino.org.uk>2004-08-19 08:01:50 +0000
committerJoseph Myers <jsm@polyomino.org.uk>2004-08-19 08:01:50 +0000
commit3f44e2b49a38928434ef77ce65029675a986044e (patch)
tree116009208203aacb356d1646709739f9ef141289 /gcc/cp/pt.c
parentcdc6135b501615e63baac10d99039fc99b6be44b (diff)
PR c++/17041
* pt.c (tsubst_copy, tsubst_copy_and_build): Copy TREE_NO_WARNING from input for MODOP_EXPR. testsuite: * g++.dg/Wparentheses-3.C: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@86241 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r--gcc/cp/pt.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 4107d1ca1c6..f4e9362ff1b 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -7667,6 +7667,7 @@ tsubst_copy (tree t, tree args, tsubst_flags_t complain, tree in_decl)
(code, tsubst_copy (TREE_OPERAND (t, 0), args, complain, in_decl),
tsubst_copy (TREE_OPERAND (t, 1), args, complain, in_decl),
tsubst_copy (TREE_OPERAND (t, 2), args, complain, in_decl));
+ TREE_NO_WARNING (r) = TREE_NO_WARNING (t);
return r;
}
@@ -8331,10 +8332,14 @@ tsubst_copy_and_build (tree t,
return cxx_sizeof_or_alignof_expr (op1, TREE_CODE (t));
case MODOP_EXPR:
- return build_x_modify_expr
- (RECUR (TREE_OPERAND (t, 0)),
- TREE_CODE (TREE_OPERAND (t, 1)),
- RECUR (TREE_OPERAND (t, 2)));
+ {
+ tree r = build_x_modify_expr
+ (RECUR (TREE_OPERAND (t, 0)),
+ TREE_CODE (TREE_OPERAND (t, 1)),
+ RECUR (TREE_OPERAND (t, 2)));
+ TREE_NO_WARNING (r) = TREE_NO_WARNING (t);
+ return r;
+ }
case ARROW_EXPR:
op1 = tsubst_non_call_postfix_expression (TREE_OPERAND (t, 0),