twoh added a comment.
I think the context is Derived here. My understanding of
http://wg21.link/p0968r0#2227 (in this patch's context) is that when Derived is
aggregate initialized, the destructor for each element of Base is potentially
invoked as well.
For me it seems that the bug is checking destructor accessibility of Base
itself, not fields of Base. I think the right fix for 1956-1960 is
if (!VerifyOnly) {
auto *BaseRD = Base.getType()->getAs<RecordType>()->getDecl();
for (FieldDecl *FD : BaseRD->fields()) {
QualType ET = SemaRef.Context.getBaseElementType(FD->getType());
if (hasAccessibleDestructor(ET, InitLoc, SemaRef)) {
hadError = true;
return;
}
}
}
Repository:
rC Clang
https://reviews.llvm.org/D53860
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits