On Tue, Mar 14, 2017 at 10:43 AM, Nathan Sidwell <nat...@acm.org> wrote: > On 03/13/2017 06:20 PM, Nathan Sidwell wrote: >> >> On 03/13/2017 05:05 PM, Jason Merrill wrote: >> >>> It looks like you're ignoring the access for all base destructors; >>> handling this in synthesized_method_base_walk would let you limit the >>> change to vbases with virtual destructors. That function also already >>> handles ignoring access control for an inherited constructor. > > > Committed this. It looked to me that the inheriting ctor case should be > using dk_no_check rather than dk_deferring, given the comment. But I didn't > want to change that in this patch.
The difference is that dk_no_check overrides any further pushes; see push_deferring_access_checks. I don't remember why that is, but that's why we instead use dk_deferring and then throw away the deferred checks. Jason