aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb@suse.de>2004-07-18 23:57:31 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2004-07-18 23:57:31 +0000
commit31ec7d2ff721fc2e54c80cd76564f80ffbe63244 (patch)
tree3dd4f5aa8da168169bc05f6987d79fd7e9ab12a4 /gcc
parent383c9d5d29d8ad4dd934f457ae2777790f0f5a3c (diff)
downloadgcc-31ec7d2ff721fc2e54c80cd76564f80ffbe63244.zip
gcc-31ec7d2ff721fc2e54c80cd76564f80ffbe63244.tar.gz
gcc-31ec7d2ff721fc2e54c80cd76564f80ffbe63244.tar.bz2
c-common.c (c_common_truthvalue_conversion): Don't warn if TREE_NO_WARNING is set.
* c-common.c (c_common_truthvalue_conversion): Don't warn if TREE_NO_WARNING is set. cp/ * cp-tree.h (C_SET_EXP_ORIGINAL_CODE): Remove. * decl2.c (grokfield): Don't check current_class_depth via unused TREE_COMPLEXITY. * semantics.c (finish_parenthesized_expr): Set TREE_NO_WARNING to avoid the missing parentheses warning. Don't set C_SET_EXP_ORIGINAL_CODE. Co-Authored-By: Joseph Myers <jsm@polyomino.org.uk> From-SVN: r84903
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-common.c4
-rw-r--r--gcc/cp/ChangeLog10
-rw-r--r--gcc/cp/cp-tree.h4
-rw-r--r--gcc/cp/decl2.c11
-rw-r--r--gcc/cp/semantics.c2
6 files changed, 22 insertions, 15 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b62a65c..fcd9dc9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-07-10 Steven Bosscher <stevenb@suse.de>
+ Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * c-common.c (c_common_truthvalue_conversion): Don't warn if
+ TREE_NO_WARNING is set.
+
2004-07-18 Roger Sayle <roger@eyesopen.com>
* builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp,
diff --git a/gcc/c-common.c b/gcc/c-common.c
index cc743cc..b729fd8 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -2365,7 +2365,9 @@ c_common_truthvalue_conversion (tree expr)
break;
case MODIFY_EXPR:
- if (warn_parentheses && C_EXP_ORIGINAL_CODE (expr) == MODIFY_EXPR)
+ if (warn_parentheses
+ && C_EXP_ORIGINAL_CODE (expr) == MODIFY_EXPR
+ && !TREE_NO_WARNING (expr))
warning ("suggest parentheses around assignment used as truth value");
break;
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 97da2dd..cdbdc42 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,13 @@
+2004-07-10 Steven Bosscher <stevenb@suse.de>
+ Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * cp-tree.h (C_SET_EXP_ORIGINAL_CODE): Remove.
+ * decl2.c (grokfield): Don't check current_class_depth via
+ unused TREE_COMPLEXITY.
+ * semantics.c (finish_parenthesized_expr): Set TREE_NO_WARNING
+ to avoid the missing parentheses warning.
+ Don't set C_SET_EXP_ORIGINAL_CODE.
+
2004-07-18 Mark Mitchell <mark@codesourcery.com>
* mangle.c (write_expression): Issue a sorry for zero-operand
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 7ed1d5f..ca7eae3 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -370,10 +370,6 @@ typedef enum cp_id_kind
#define C_TYPE_FIELDS_READONLY(TYPE) \
(LANG_TYPE_CLASS_CHECK (TYPE)->fields_readonly)
-/* Store a value in that field. */
-#define C_SET_EXP_ORIGINAL_CODE(EXP, CODE) \
- (TREE_COMPLEXITY (EXP) = (int)(CODE))
-
/* The tokens stored in the default argument. */
#define DEFARG_TOKENS(NODE) \
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 7257f69..ea9aa49 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -816,15 +816,8 @@ grokfield (const cp_declarator *declarator,
&& TREE_CODE (declarator->u.id.name) == SCOPE_REF
&& (TREE_CODE (TREE_OPERAND (declarator->u.id.name, 1))
== IDENTIFIER_NODE))
- {
- /* Access declaration */
- if (! IS_AGGR_TYPE_CODE (TREE_CODE
- (TREE_OPERAND (declarator->u.id.name, 0))))
- ;
- else if (TREE_COMPLEXITY (declarator->u.id.name) == current_class_depth)
- pop_nested_class ();
- return do_class_using_decl (declarator->u.id.name);
- }
+ /* Access declaration */
+ return do_class_using_decl (declarator->u.id.name);
if (init
&& TREE_CODE (init) == TREE_LIST
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 6bc7e68f..3d8c643 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -1231,7 +1231,7 @@ finish_parenthesized_expr (tree expr)
{
if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (expr))))
/* This inhibits warnings in c_common_truthvalue_conversion. */
- C_SET_EXP_ORIGINAL_CODE (expr, ERROR_MARK);
+ TREE_NO_WARNING (expr) = 1;
if (TREE_CODE (expr) == OFFSET_REF)
/* [expr.unary.op]/3 The qualified id of a pointer-to-member must not be