From 261450e857ea7f69f12dc9232cf884ade69ab53c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 2 Jul 1993 01:26:01 +0000 Subject: [PATCH] (TREE_OVERFLOW): New macro. (pushcase, pushcase_range): Add a new converter function argument that specifies how to convert case labels to the nominal type. From-SVN: r4826 --- gcc/tree.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/gcc/tree.h b/gcc/tree.h index 7142f494def..bf90d114f4f 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -246,13 +246,20 @@ struct tree_common implicitly and should not lead to an "unused value" warning. */ #define TREE_NO_UNUSED_WARNING(NODE) ((NODE)->common.static_flag) -/* In an INTEGER_CST, this means there was overflow in folding. */ -#define TREE_CONSTANT_OVERFLOW(NODE) ((NODE)->common.static_flag) - /* Nonzero for a TREE_LIST or TREE_VEC node means that the derivation chain is via a `virtual' declaration. */ #define TREE_VIA_VIRTUAL(NODE) ((NODE)->common.static_flag) +/* In an INTEGER_CST, this means there was an overflow in folding. + This is distinct from TREE_OVERFLOW because ANSI C requires a diagnostic + when overflows occur in constant expressions. */ +#define TREE_CONSTANT_OVERFLOW(NODE) ((NODE)->common.static_flag) + +/* In an INTEGER_CST, this means there was an overflow in folding, + and no warning has been issued for this subexpression. + TREE_OVERFLOW implies TREE_CONSTANT_OVERFLOW, but not vice versa. */ +#define TREE_OVERFLOW(NODE) ((NODE)->common.public_flag) + /* In a VAR_DECL or FUNCTION_DECL, nonzero means name is to be accessible from outside this module. In an identifier node, nonzero means an external declaration @@ -1415,8 +1422,8 @@ extern void expand_end_bindings PROTO((tree, int, int)); extern tree last_cleanup_this_contour PROTO((void)); extern void expand_start_case PROTO((int, tree, tree, char *)); extern void expand_end_case PROTO((tree)); -extern int pushcase PROTO((tree, tree, tree *)); -extern int pushcase_range PROTO((tree, tree, tree, tree *)); +extern int pushcase PROTO((tree, tree (*) (tree, tree), tree, tree *)); +extern int pushcase_range PROTO((tree, tree, tree (*) (tree, tree), tree, tree *)); /* In fold-const.c */ -- 2.30.2