ahatanak marked 7 inline comments as done. ahatanak added inline comments.
================ Comment at: lib/Sema/SemaDecl.cpp:11700 + } + } + ---------------- rsmith wrote: > rjmccall wrote: > > I think it's correct not to call CheckDestructorAccess and > > DiagnoseUseOfDecl here, since according to the standard destructor access > > is always supposed to be checked at the call-site, but please leave a > > comment explaining that. > The corresponding code for `areArgsDestroyedLeftToRightInCallee` is in > `SemaChecking`. This should be done in the same place. > > More generally, we have at least three different places where we check > `CXXABI::areArgsDestroyedLeftToRightInCallee() || > Type->hasTrivialABIOverride()`. It would make sense to factor that out into a > `isParamDestroyedInCallee` function (probably on `ASTContext`, since we don't > have anywhere better for ABI-specific checks at a layering level that can > talk about types). I defined function ASTContext::isParamDestroyedInCallee and used it in two places. I didn't use it in CodeGenFunction::EmitParmDecl because the destructor cleanup is pushed only when the argument is passed indirectly in MSVC's case, whereas it is always pushed when the class is HasTrivialABIOverride. ================ Comment at: lib/Sema/SemaDeclCXX.cpp:7580 +static void checkIllFormedTrivialABIStruct(CXXRecordDecl &RD, Sema &S) { + auto PrintDiagAndRemoveAttr = [&]() { ---------------- rsmith wrote: > Either "ill-formed" is the wrong word here, or this needs to produce `ext_` > diagnostics that `-pedantic-errors` turns into hard errors. I made the warning derive from ExtWarn. https://reviews.llvm.org/D41039 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits