From: Nicolai Stange <nicstange@xxxxxxxxx> Unconditionally flag the expressions __builtin_constant_p(), __builtin_safe_p(), __builtin_warning() as being integer constant expressions. Signed-off-by: Nicolai Stange <nicstange@xxxxxxxxx> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> --- builtin.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/builtin.c b/builtin.c index dbb81032b..a427b45ee 100644 --- a/builtin.c +++ b/builtin.c @@ -27,9 +27,10 @@ #include "expand.h" #include "symbol.h" -static int evaluate_to_integer(struct expression *expr) +static int evaluate_to_int_const_expr(struct expression *expr) { expr->ctype = &int_ctype; + expr->flags |= CEF_SET_ICE; return 1; } @@ -152,17 +153,17 @@ static int expand_safe_p(struct expression *expr, int cost) } 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 }; -- 2.12.0 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html