http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47950
--- Comment #3 from Adam Butcher <dev.lists at jessamine dot co.uk> 2011-03-02 16:30:30 UTC --- (In reply to comment #1) > > Rolling back to my previous HEAD reveals that the reduced example above still > fails whereas the code I was originally trying to build worked. So obviously > my reduction has changed something. > Okay. My original reduction was okay but I also added additional examples that yielded the same assertion failure (obviously via different route!). The function-call case following is the one that causes the failure in non-dependent use of boost.foreach on the latest 4.6 HEAD. It compiles okay on my 4.6 build from last week (prior to 170488). if (from_int<int> x = via_function(7)) ; The constructor cases below have failed for a much longer time (though are okay in 4.5). if (empty<int> x = empty<int>()) ; if (from_int<int> x = from_int<int>(7)) ; So the only recent regression is the function-call case. But all cases are all still legitimate 4.5 -> 4.6 regressions. Before rev 170488 (25th Feb) the function-call case compiled. I don't know when the constructor cases stopped working -- I went quite a way back and they still failed.