http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52139
--- Comment #11 from Steven Bosscher <steven at gcc dot gnu.org> 2013-04-11 19:26:09 UTC --- The proper fix is to simply prepend BB_HEADER_(b) to BB_FOOTER(b). The reason for linking BB_HEADER to BB_END(a) is that there used to be line notes there: /* Possible line number notes should appear in between. */ But that's ancient history. On top of that, anything in BB_FOOTER(b) should *never* end up in the insns chain, by definition of cfglayout's footers.