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:
Jason Merrill 2017-02-10 13:01:27 -05:00 committed by Jason Merrill
parent 773acd5428
commit c16b872c8f
3 changed files with 28 additions and 1 deletions

View file

@ -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

View file

@ -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))

View 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)
{
}