http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58048
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Right, thanks, but then the ICE doesn't occur, so this makes it pretty much ICE on invalid. Reduced nevertheless... void div3 (void) { double tmp1; asm volatile ("fscale":"=t" (tmp1):"0" (0), "u" (0)); } (with sed 's/(0/(0.0/g' the ICE's gone)