Currently, the expression evaluation code explicitly opts out from constness at evaluation if certain criteria regarding the subexpressions are not matched. Instead of this active opt-out, we want to have subexpression constness attributes to get propagated from child expressions to their parents in the future. A prerequisite is that each expression's ->constexpr_flags is in a defined state at all times. Set ->constexpr_flags to CONSTEXPR_FLAG_NONE at expression allocation time, i.e. in alloc_expression() as well as in alloc_const_expression(). Signed-off-by: Nicolai Stange <nicstange@xxxxxxxxx> --- expression.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/expression.h b/expression.h index 3725a73..8a943a4 100644 --- a/expression.h +++ b/expression.h @@ -255,6 +255,7 @@ static inline struct expression *alloc_expression(struct position pos, int type) struct expression *expr = __alloc_expression(0); expr->type = type; expr->pos = pos; + expr->constexpr_flags = CONSTEXPR_FLAG_NONE; return expr; } @@ -265,6 +266,7 @@ static inline struct expression *alloc_const_expression(struct position pos, int expr->pos = pos; expr->value = value; expr->ctype = &int_ctype; + expr->constexpr_flags = CONSTEXPR_FLAG_NONE; return expr; } -- 2.7.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