call.c (convert_like_real): Avoid crashing on list initialization with bad conversions.

* call.c (convert_like_real): Avoid crashing on list
        initialization with bad conversions.

From-SVN: r147955
This commit is contained in:
Jason Merrill 2009-05-28 12:09:04 -04:00 committed by Jason Merrill
parent e92db00523
commit ab133536b8
4 changed files with 29 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2009-05-27 Jason Merrill <jason@redhat.com>
* call.c (convert_like_real): Avoid crashing on list
initialization with bad conversions.
2009-05-22 Jason Merrill <jason@redhat.com>
PR c++/38064

View File

@ -4529,6 +4529,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
if (convs->bad_p
&& convs->kind != ck_user
&& convs->kind != ck_list
&& convs->kind != ck_ambig
&& convs->kind != ck_ref_bind
&& convs->kind != ck_rvalue

View File

@ -1,3 +1,9 @@
2009-05-27 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/initlist15.C: New.
* g++.dg/cpp0x/initlist16.C: New.
* g++.dg/cpp0x/initlist17.C: New.
2009-05-28 Kai Tietz <kai.tietz@onevision.com>
* g++.dg/ext/packed6.C (size_t): Use __extension__ and

View File

@ -0,0 +1,17 @@
// { dg-options "-std=c++0x" }
#include <vector>
#include <typeinfo>
using namespace std;
template< typename ... ArgTypes >
void test( ArgTypes ... args ) {
vector<type_info*> x = { &typeid(ArgTypes)... }; // { dg-error "" }
}
int main()
{
test( 1, 3.14f, 2.78 );
return 0;
}