On Fri, Mar 6, 2015 at 6:00 PM, Tom Stellard <[email protected]> wrote:
> On Fri, Mar 06, 2015 at 11:50:51AM -0800, Hans Wennborg wrote: > > Tom, is this OK for 3.6.1? > > > > This is fine with me as long as Richard approves. LGTM for 3.6.1. > > -Tom > > > On Thu, Mar 5, 2015 at 10:01 PM, Nico Weber <[email protected]> wrote: > > > Author: nico > > > Date: Fri Mar 6 00:01:06 2015 > > > New Revision: 231451 > > > > > > URL: http://llvm.org/viewvc/llvm-project?rev=231451&view=rev > > > Log: > > > Don't crash on non-public referenced dtors in toplevel classes. > > > > > > Fixes PR22793, a bug that caused self-hosting to fail after the > innocuous > > > r231254. See the bug for details. > > > > > > Modified: > > > cfe/trunk/lib/Sema/SemaExpr.cpp > > > cfe/trunk/test/CodeGenCXX/trivial-constructor-init.cpp > > > > > > Modified: cfe/trunk/lib/Sema/SemaExpr.cpp > > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=231451&r1=231450&r2=231451&view=diff > > > > ============================================================================== > > > --- cfe/trunk/lib/Sema/SemaExpr.cpp (original) > > > +++ cfe/trunk/lib/Sema/SemaExpr.cpp Fri Mar 6 00:01:06 2015 > > > @@ -117,7 +117,7 @@ static AvailabilityResult DiagnoseAvaila > > > case AR_Available: > > > case AR_NotYetIntroduced: > > > break; > > > - > > > + > > > case AR_Deprecated: > > > if (S.getCurContextAvailability() != AR_Deprecated) > > > S.EmitAvailabilityWarning(Sema::AD_Deprecation, > > > @@ -11859,8 +11859,11 @@ void Sema::MarkFunctionReferenced(Source > > > } else if (CXXDestructorDecl *Destructor = > > > dyn_cast<CXXDestructorDecl>(Func)) { > > > Destructor = cast<CXXDestructorDecl>(Destructor->getFirstDecl()); > > > - if (Destructor->isDefaulted() && !Destructor->isDeleted()) > > > + if (Destructor->isDefaulted() && !Destructor->isDeleted()) { > > > + if (Destructor->isTrivial() && > !Destructor->hasAttr<DLLExportAttr>()) > > > + return; > > > DefineImplicitDestructor(Loc, Destructor); > > > + } > > > if (Destructor->isVirtual() && getLangOpts().AppleKext) > > > MarkVTableUsed(Loc, Destructor->getParent()); > > > } else if (CXXMethodDecl *MethodDecl = > dyn_cast<CXXMethodDecl>(Func)) { > > > > > > Modified: cfe/trunk/test/CodeGenCXX/trivial-constructor-init.cpp > > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/trivial-constructor-init.cpp?rev=231451&r1=231450&r2=231451&view=diff > > > > ============================================================================== > > > --- cfe/trunk/test/CodeGenCXX/trivial-constructor-init.cpp (original) > > > +++ cfe/trunk/test/CodeGenCXX/trivial-constructor-init.cpp Fri Mar 6 > 00:01:06 2015 > > > @@ -32,3 +32,17 @@ static C c[4]; > > > > > > int main() { > > > } > > > + > > > +namespace PR22793 { > > > +template <typename> > > > +struct foo { > > > +protected: > > > +// CHECK-NOT: _ZN7PR227933fooIiED2Ev > > > + ~foo() = default; > > > + friend void func(); > > > +}; > > > + > > > +void func() { foo<int> f; } > > > + > > > +template struct foo<int>; > > > +} > > > > > > > > > _______________________________________________ > > > cfe-commits mailing list > > > [email protected] > > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
