PR c++/78198 - inherited template ctor with default arg
* call.c (convert_default_arg): Look through inheriting ctors. From-SVN: r241843
This commit is contained in:
parent
491483b026
commit
866115cd8a
@ -1,3 +1,8 @@
|
||||
2016-11-03 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/78198
|
||||
* call.c (convert_default_arg): Look through inheriting ctors.
|
||||
|
||||
2016-11-03 Jakub Jelinek <jakub@redhat.com>
|
||||
Alexandre Oliva <aoliva@redhat.com>
|
||||
Jason Merrill <jason@redhat.com>
|
||||
|
@ -7193,6 +7193,9 @@ convert_default_arg (tree type, tree arg, tree fn, int parmnum,
|
||||
|
||||
/* See through clones. */
|
||||
fn = DECL_ORIGIN (fn);
|
||||
/* And inheriting ctors. */
|
||||
if (flag_new_inheriting_ctors)
|
||||
fn = strip_inheriting_ctors (fn);
|
||||
|
||||
/* Detect recursion. */
|
||||
FOR_EACH_VEC_SAFE_ELT (default_arg_context, i, t)
|
||||
|
16
gcc/testsuite/g++.dg/cpp0x/inh-ctor22.C
Normal file
16
gcc/testsuite/g++.dg/cpp0x/inh-ctor22.C
Normal file
@ -0,0 +1,16 @@
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
class A { };
|
||||
template<typename> using UniquePtr = int;
|
||||
template<typename AllocPolicy> struct BufferList {
|
||||
BufferList(unsigned, unsigned, unsigned, AllocPolicy = AllocPolicy());
|
||||
};
|
||||
class D : BufferList<A> {
|
||||
using BufferList::BufferList;
|
||||
};
|
||||
template<typename , typename... Args> UniquePtr<D> MakeUnique(Args... aArgs)
|
||||
{
|
||||
D d(aArgs...);
|
||||
return 0;
|
||||
}
|
||||
UniquePtr<D> setCloneBuffer_impl_buf = MakeUnique<D>(0, 0, 0);
|
Loading…
Reference in New Issue
Block a user