Based on the error, I suspect we've got a block ending with a GIMPLE_COND
with no successors in the CFG.
Except that I'm also seeing a different error:
/home/brq/mpolacek/gcc/libgo/go/text/template/exec.go:303:1: error: wrong
outgoing edge flags at end of bb 6
We have this bb:
<bb 6>:
# iftmp.1693_53 = PHI <0B(4)>
_54 = t_5(D)->Pipe;
GOTMP.163 = template.evalPipeline.pN19_text_template.state (s_7(D), dot, _31);
[return slot optimization]
dot = GOTMP.163;
_61 = __go_new (&__go_tdn_text_template..text_template.state, 64);
*_35 = *s_7(D);
# DEBUG newState => _35
_35->tmpl = iftmp.1693_55;
GOTMP.166.value = dot;
_66 = __go_new (&__go_td_AN22_text_template.variable1e, 40);
SR.4170_67 = "$";
SR.4171_68 = 1;
MEM[(struct .text/template.variable *)&GOTMP.166] = "$";
MEM[(struct .text/template.variable *)&GOTMP.166 + 8B] = 1;
MEM[(struct .text/template.variable[1] *)_40][0] = GOTMP.166;
_35->vars.__values = _40;
_35->vars.__count = 1;
_35->vars.__capacity = 1;
_75 ={v} iftmp.1693_55->Tree;
__builtin_trap ();
_76 = _46->Root;
D.8248.__methods =
&__go_pimt__I25_.text_template_parse.treeFrpN24_text_template_parse.Treeee4_CopyFrN24_text_template_parse.Nodeee8_PositionFrN23_text_template_parse.Posee6_StringFrN6_stringee4_TypeFrN28_text_template_parse.NodeTypeeee__N28_text_template_parse.ListNode;
D.8248.__object = _47;
template.walk.pN19_text_template.state (_35, dot, D.8248);
return;
and single_succ_p (bb) is not satisfied, so it must have more outgoing edges.
Not sure how can that happen...