On Sun, May 13, 2012 at 7:50 PM, Eric Botcazou <ebotca...@adacore.com> wrote: >> I get a bootstrap failure on x86 (verify_flow_info failed) with it. > > It's actually pre-existing: it's PRE value-numbering a call that can make an > abnormal goto, hence the CFG mess in the end. The call is ECF_PURE but also > ECF_LOOPING_CONST_OR_PURE, so gimple_has_side_effects returns true and, in > turn, call_can_make_abnormal_goto . The bug is in can_value_number_call. > > I can come up with two solutions: > - testing ECF_LOOPING_CONST_OR_PURE as well, like gimple_has_side_effects, or > - calling call_can_make_abnormal_goto explicitly. > > The attached patch implements the former. With it, I could bootstrap and test > the stor-layout.c patch on our internal testsuite. > > What do you think?
I'd say simply test gimple_has_side_effects instead. Richard. > > * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype > in a PLUS_EXPR byte offset. > > * tree-ssa-pre.c (can_value_number_call): Return false if the call > has the ECF_LOOPING_CONST_OR_PURE flag. > > > -- > Eric Botcazou