On Tue, Jan 07, 2014 at 04:12:57PM +0100, Richard Biener wrote: > > What about if something post gimplification creates VCE(BFR(VCE())) or > > similar and tries to force_gimple_operand_gsi or similar, then without > > making the above invalid in the predicates we'd still not try to gimplify it > > at all (because it would pass the predicate), and then hit the verification > > ICE. > > I don't think it passes any predicate, certainly not is_gimple_val, > so we enter gimplification anyway. Or am I missing something?
It isn't is_gimple_val, sure, I was thinking about whatever predicate we have for say the RHS of a load, is that is_gimple_addressable? There is is_gimple_lvalue too. Apparently we are calling force_gimple_operand_1* with just is_gimple_condexpr if it is not is_gimple_val or is_gimple_reg_rhs, so perhaps we are fine. Jakub