This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/47950] [4.6 Regression] [C++0x] Internal compiler error: non-dependent declaration as condition causes tsubst_copy_and_build assertion failure.
- From: "dev.lists at jessamine dot co.uk" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 2 Mar 2011 16:30:32 +0000
- Subject: [Bug c++/47950] [4.6 Regression] [C++0x] Internal compiler error: non-dependent declaration as condition causes tsubst_copy_and_build assertion failure.
- Auto-submitted: auto-generated
- References: <bug-47950-4@http.gcc.gnu.org/bugzilla/>
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.