Commit a33ad58b by Jason Merrill Committed by Jason Merrill

re PR c++/61242 (Bogus "no matching function for call to…

re PR c++/61242 (Bogus "no matching function for call to ‘Foo::Create(<brace-enclosed initializer list>)")

	PR c++/61242
	* call.c (build_aggr_conv): Ignore passed in flags.
	(build_array_conv, build_complex_conv): Likewise.

From-SVN: r211024
parent ecc7533a
2014-05-28 Jason Merrill <jason@redhat.com>
PR c++/61242
* call.c (build_aggr_conv): Ignore passed in flags.
(build_array_conv, build_complex_conv): Likewise.
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
* optimize.c (maybe_thunk_body): Use set_comdat_group.
......
......@@ -890,7 +890,9 @@ build_aggr_conv (tree type, tree ctor, int flags, tsubst_flags_t complain)
if (ctor == error_mark_node)
return NULL;
flags |= LOOKUP_NO_NARROWING;
/* The conversions within the init-list aren't affected by the enclosing
context; they're always simple copy-initialization. */
flags = LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING;
for (; field; field = next_initializable_field (DECL_CHAIN (field)))
{
......@@ -963,6 +965,8 @@ build_array_conv (tree type, tree ctor, int flags, tsubst_flags_t complain)
return NULL;
}
flags = LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING;
FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), i, val)
{
conversion *sub
......@@ -1007,6 +1011,8 @@ build_complex_conv (tree type, tree ctor, int flags,
if (len != 2)
return NULL;
flags = LOOKUP_IMPLICIT|LOOKUP_NO_NARROWING;
FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (ctor), i, val)
{
conversion *sub
......
// PR c++/61242
// { dg-do compile { target c++11 } }
struct Foo
{
struct A
{
const int &container;
const int &args;
};
static void Create (const A &);
};
int main ()
{
Foo::Create ({{}, {}});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment