PR c++/79401 - protected inherited constructor
* call.c (enforce_access): For inheriting constructor, find a base binfo in the path we already have. From-SVN: r245339
This commit is contained in:
parent
773acd5428
commit
c16b872c8f
3 changed files with 28 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2017-02-10 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/79401 - protected inherited constructor
|
||||
* call.c (enforce_access): For inheriting constructor, find a base
|
||||
binfo in the path we already have.
|
||||
|
||||
2017-02-10 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/79435
|
||||
|
|
|
@ -6420,7 +6420,8 @@ enforce_access (tree basetype_path, tree decl, tree diag_decl,
|
|||
accessible when used to construct an object of the corresponding base
|
||||
class. */
|
||||
decl = strip_inheriting_ctors (decl);
|
||||
basetype_path = TYPE_BINFO (DECL_CONTEXT (decl));
|
||||
basetype_path = lookup_base (basetype_path, DECL_CONTEXT (decl),
|
||||
ba_any, NULL, complain);
|
||||
}
|
||||
|
||||
if (!accessible_p (basetype_path, decl, true))
|
||||
|
|
20
gcc/testsuite/g++.dg/cpp0x/inh-ctor25.C
Normal file
20
gcc/testsuite/g++.dg/cpp0x/inh-ctor25.C
Normal file
|
@ -0,0 +1,20 @@
|
|||
// PR c++/79401
|
||||
// { dg-do compile { target c++11 } }
|
||||
|
||||
class B
|
||||
{
|
||||
protected:
|
||||
B (int, int);
|
||||
};
|
||||
class C : public B
|
||||
{
|
||||
protected:
|
||||
using B::B;
|
||||
};
|
||||
class A : public C
|
||||
{
|
||||
A (char *);
|
||||
};
|
||||
A::A (char *) : C (0, 0)
|
||||
{
|
||||
}
|
Loading…
Add table
Reference in a new issue