aboutsummaryrefslogtreecommitdiff
path: root/gcc/langhooks.h
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2002-04-04 22:19:58 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-04-04 22:19:58 +0000
commit78ef5b895f933cc8a82486aec27d6e7ac7a5acae (patch)
tree50dc6fe5e989dd9c497bfef9c4a8a5e5f0a8ba33 /gcc/langhooks.h
parent3900216066f8f2b9a8362daf4da8b225018e69d7 (diff)
downloadgcc-78ef5b895f933cc8a82486aec27d6e7ac7a5acae.zip
gcc-78ef5b895f933cc8a82486aec27d6e7ac7a5acae.tar.gz
gcc-78ef5b895f933cc8a82486aec27d6e7ac7a5acae.tar.bz2
c-common.c (truthvalue_conversion): Rename, update.
* c-common.c (truthvalue_conversion): Rename, update. * c-common.h (c_common_truthvalue_conversion): New. * c-convert.c (convert): Update. * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update. * c-typeck.c (build_binary_op, build_unary_op, build_conditional_expr): Update. * fold-const.c (constant_boolean_node, fold): Use langhook. * langhooks-def.h (LANGHOOK_INITIALIZER): Update. * langhooks.h (struct lang_hooks): New hook. * stmt.c (expand_decl_cleanup): Use langhook. * tree.h (truthvalue_conversion): Remove. ada: * gigi.h (truthvalue_conversion): Rename. * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. * trans.c (tree_transform): Update. * utils2.c (truthvalue_conversion): Rename, update. (build_binary_op, build_unary_op): Update. cp: * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. * cvt.c: Update comment. * init.c (expand_cleanup_for_base): Update. * semantics.c (finish_parenthesized_expr): Update. * typeck.c (cp_truthvalue_conversion): Update. f: * com.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. (truthvalue_conversion): Rename. Update. Make static. (ffecom_truth_value): Update. java: * expr.c (truthvalue_conversion): Rename. Update. (expand_compare): Update. * java-tree.h (java_truthvalue_conversion): New. * lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. objc: * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. From-SVN: r51880
Diffstat (limited to 'gcc/langhooks.h')
-rw-r--r--gcc/langhooks.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/langhooks.h b/gcc/langhooks.h
index 83e2e5a..2a50aa7 100644
--- a/gcc/langhooks.h
+++ b/gcc/langhooks.h
@@ -200,6 +200,19 @@ struct lang_hooks
Fourth argument is actually an enum expand_modifier. */
rtx (*expand_expr) PARAMS ((tree, rtx, enum machine_mode, int));
+ /* Prepare expr to be an argument of a TRUTH_NOT_EXPR or other logical
+ operation.
+
+ This preparation consists of taking the ordinary representation
+ of an expression expr and producing a valid tree boolean
+ expression describing whether expr is nonzero. We could simply
+ always do build_binary_op (NE_EXPR, expr, integer_zero_node, 1),
+ but we optimize comparisons, &&, ||, and !.
+
+ The result should be an expression of boolean type (if not an
+ error_mark_node). */
+ tree (*truthvalue_conversion) PARAMS ((tree));
+
/* Possibly apply default attributes to a function (represented by
a FUNCTION_DECL). */
void (*insert_default_attributes) PARAMS ((tree));