From Bernhards' tree, thanks to Sven Neuman for noticing. See also http://gcc.gnu.org/ml/gcc-patches/2008-09/msg01500.html