ChuanqiXu accepted this revision. ChuanqiXu added a comment. This revision is now accepted and ready to land.
LGTM basically. I still feel we need a FIXME there. But I don't want to block this for this reason especially we need to land this before the branch. ================ Comment at: clang/lib/Sema/SemaDecl.cpp:15258 + // units. Deleted and Defaulted functions are implicitly inline (but the + // inline state is not set at this point, so check the BodyKind explicitly). if (getLangOpts().CPlusPlusModules && currentModuleIsHeaderUnit() && ---------------- iains wrote: > ChuanqiXu wrote: > > I prefer to add a FIXME here to say that we need to find a better place for > > the check to eliminate the unnecessary check for `BodyKind `. The current > > check for `BodyKind` looks a little bit hacky to me. > When the patch was originally done, this was found to be a good place to do > the check (i.e. less duplication of testing and to avoid duplication of > diagnostics) so I do not think I agree that there is a FIXME to move it. > > BodyKind is already used elsewhere in this function for similar purposes - it > does not look hacky to me. It looks hacky to me since we shouldn't care if it is deleted or defaulted here and it should be enough to check `FD->isInlied()`. And I don't see similar usage of `BodyKind ` in this function. ================ Comment at: clang/lib/Sema/SemaDecl.cpp:15261 + FD->getFormalLinkage() == Linkage::ExternalLinkage && + !FD->isInvalidDecl() && BodyKind == FnBodyKind::Other && + !FD->isInlined()) { ---------------- iains wrote: > ChuanqiXu wrote: > > It looks like we need to check `FD->isThisDeclarationADefinition()` too. > > > > And personally, I prefer to check BodyKind explicitly. Otherwise the > > readers need to checkout the definition of `FnBodyKind` to understand the > > code. > > It looks like we need to check `FD->isThisDeclarationADefinition()` too. > > This is an unnecessary test, it will always return true at this point. > > > And personally, I prefer to check BodyKind explicitly. Otherwise the > > readers need to checkout the definition of `FnBodyKind` to understand the > > code. > > You prefer two tests instead of one? > OK, I guess > This is an unnecessary test, it will always return true at this point. Oh, I found it now. It may be better to have an assertion `assert(FD->isThisDeclarationADefinition())`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141908/new/ https://reviews.llvm.org/D141908 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits