LGTM

On Nov 2, 2012, at 1:50 PM, Richard Trieu <[email protected]> wrote:

> On Tue, Oct 9, 2012 at 5:05 PM, Richard Trieu <[email protected]> wrote:
> On Tue, Oct 9, 2012 at 5:04 PM, Richard Trieu <[email protected]> wrote:
> The following code causes a crash:
> 
> template<typename T> class vector2 {};
> template<typename T> class vector : vector2<T> {};
> 
> template<typename T> void Foo(vector<const T*> V) {}
> 
> void test() {
>   Foo(vector<int*>());
> }
> 
> Once template deduction fails in vector, it tries again with with the base 
> class vector2 and also fails, but with a different status.  However, the 
> TemplateDeductionInfo is updated, but the old status is kept.  This leads to 
> an assert later when the diagnostic is produced.  This patch introduces a 
> temporary TemplateDeductionInfo to capture the information from the base 
> class template deduction, and only overrides the old info if the template 
> deduction is successful.
> 
> Oops.  And here's the patch.
> 
> Ping.
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to