This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/47950] [4.6 Regression] [C++0x] Internal compiler error: non-dependent declaration as condition causes tsubst_copy_and_build assertion failure.


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]