From 8d5e6e2527f07e6cfda3b62f1fd826006931d551 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 27 May 2000 15:21:17 +0000 Subject: tree.h (TREE_CODE_LENGTH): New macro. * tree.h (TREE_CODE_LENGTH): New macro. * c-common.c (c_find_base_decl): Use it. * expr.c (safe_from_p): Likewise. * print-tree.c (print_node): Likewise. * tree.c (make_node, copy_node, get_identifier): Likewie. (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise. (build, build_nt, build_parse_node, simple_cst_equal): Likewise. * fold-const.c (make_range): Likewise. (fold): Likewise; also use first_rtl_op. * c-iterate.c (collect_iterators): Use first_rtl_op. * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS. Use IS_EXPR_CODE_CLASS. (preexpand_calls): Likewise. * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op and TREE_CODE_LENGTH. * stmt.c (warn_if_unused_value): If no operands, no unused value. * ch/lang.c (deep_const_expr): Use first_rtl_op. * ch/satisfy.c (satisfy): Use TREE_CODE_LENGTH. * cp/method.c (mangle_expression): Use TREE_CODE_LENGTH. * cp/tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. (built_min, cp_tree_equal): Likewise. From-SVN: r34203 --- gcc/stmt.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/stmt.c') diff --git a/gcc/stmt.c b/gcc/stmt.c index 76dcdc3..a1beb46 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -2004,6 +2004,14 @@ warn_if_unused_value (exp) || TREE_CODE_CLASS (TREE_CODE (exp)) == 'r') && TREE_THIS_VOLATILE (exp)) return 0; + + /* If this is an expression which has no operands, there is no value + to be unused. There are no such language-independent codes, + but front ends may define such. */ + if (TREE_CODE_CLASS (TREE_CODE (exp)) == 'e' + && TREE_CODE_LENGTH (TREE_CODE (exp)) == 0) + return 0; + warn: warning_with_file_and_line (emit_filename, emit_lineno, "value computed is not used"); -- cgit v1.1