http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54207
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-08-09 11:39:10 UTC --- 4.7.1 gets an ICE too, but it works on trunk. As it's undefined behaviour (bool is a keyword) and it already works on trunk it might not be worth changing anything.