On Mon, Jan 25, 2016 at 03:53:38PM +0100, Nicolai Stange wrote: > Currently, the propagation of expressions' constness flags through > prefix expressions is done in two steps: > - Several flags are speculatively set at expression parsing time > - and possibly cleared again at evaluation time. > > Set aside this unfortunate split of code, the early propagation of > constness flags is not able to recognize constant expressions such as > -__builtin_choose_expr(0, 0, 0) > ~__builtin_choose_expr(0, 0, 0) > !__builtin_choose_expr(0, 0, 0) > since the final expression to be thrown into the prefix expression is > known only after evaluation. > > Move the whole calculation of prefix expressions' constness flags to > the evaluation phase. > > Introduce support for tracking arithmetic constness propagation through > prefix expressions. What about replacing the whole description with something:: Move the whole calculation of prefix expressions' constness flags to the evaluation phase so that we can now recognize constant expressions such as -__builtin_choose_expr(0, 0, 0) ~__builtin_choose_expr(0, 0, 0) !__builtin_choose_expr(0, 0, 0) and adding further explanation after this, if really needed? Luc -- 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