symbol: flag builtins constant_p, safe_p and warning as constexprs
RFC PATCH 10/13 symbol: flag builtins constant_p, safe_p and warning as constexprs
Unconditionally flag the expressions
__builtin_constant_p(),
__builtin_safe_p(),
__builtin_warning()
as being integer constant expressions.
Signed-off-by Nicolai Stange <[email protected]>
--- symbol.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
symbol.c +5 -4
@@ -642,9 +642,10 @@ struct symbol *create_symbol(int stream, const char *name, int type, int namespareturn sym; } -static int evaluate_to_integer (struct expression *expr) +static int evaluate_to_int_const_expr (struct expression *expr) { expr->ctype = &int_ctype; + expr->flags |=expr_set_flag_mask (EXPR_FLAG_INT_CONST_EXPR );return 1 ; }
@@ -749,17 +750,17 @@ out: }static struct symbol_op constant_p_op = { - .evaluate = evaluate_to_integer, + .evaluate = evaluate_to_int_const_expr, .expand = expand_constant_p };static struct symbol_op safe_p_op = { - .evaluate = evaluate_to_integer, + .evaluate = evaluate_to_int_const_expr, .expand = expand_safe_p };static struct symbol_op warning_op = { - .evaluate = evaluate_to_integer, + .evaluate = evaluate_to_int_const_expr, .expand = expand_warning };
Signature · 1 line
2.4.5