Author: rsmith Date: Fri May 12 19:00:16 2017 New Revision: 302969 URL: http://llvm.org/viewvc/llvm-project?rev=302969&view=rev Log: Add LangOptions method to query whether we are tracking the owning module for a local declaration.
In preparation for expanding this behavior to cover additional cases. Modified: cfe/trunk/include/clang/Basic/LangOptions.h cfe/trunk/lib/AST/DeclBase.cpp cfe/trunk/lib/Sema/SemaDecl.cpp Modified: cfe/trunk/include/clang/Basic/LangOptions.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.h?rev=302969&r1=302968&r2=302969&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/LangOptions.h (original) +++ cfe/trunk/include/clang/Basic/LangOptions.h Fri May 12 19:00:16 2017 @@ -166,6 +166,11 @@ public: return getCompilingModule() != CMK_None; } + /// Do we need to track the owning module for a local declaration? + bool trackLocalOwningModule() const { + return ModulesLocalVisibility; + } + bool isSignedOverflowDefined() const { return getSignedOverflowBehavior() == SOB_Defined; } Modified: cfe/trunk/lib/AST/DeclBase.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/DeclBase.cpp?rev=302969&r1=302968&r2=302969&view=diff ============================================================================== --- cfe/trunk/lib/AST/DeclBase.cpp (original) +++ cfe/trunk/lib/AST/DeclBase.cpp Fri May 12 19:00:16 2017 @@ -75,7 +75,7 @@ void *Decl::operator new(std::size_t Siz assert(!Parent || &Parent->getParentASTContext() == &Ctx); // With local visibility enabled, we track the owning module even for local // declarations. - if (Ctx.getLangOpts().ModulesLocalVisibility) { + if (Ctx.getLangOpts().trackLocalOwningModule()) { // Ensure required alignment of the resulting object by adding extra // padding at the start if required. size_t ExtraAlign = @@ -96,7 +96,7 @@ Module *Decl::getOwningModuleSlow() cons } bool Decl::hasLocalOwningModuleStorage() const { - return getASTContext().getLangOpts().ModulesLocalVisibility; + return getASTContext().getLangOpts().trackLocalOwningModule(); } const char *Decl::getDeclKindName() const { Modified: cfe/trunk/lib/Sema/SemaDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=302969&r1=302968&r2=302969&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaDecl.cpp Fri May 12 19:00:16 2017 @@ -16038,7 +16038,7 @@ void Sema::ActOnModuleBegin(SourceLocati // The enclosing context is now part of this module. // FIXME: Consider creating a child DeclContext to hold the entities // lexically within the module. - if (getLangOpts().ModulesLocalVisibility) { + if (getLangOpts().trackLocalOwningModule()) { cast<Decl>(CurContext)->setHidden(true); cast<Decl>(CurContext)->setLocalOwningModule(Mod); } @@ -16072,7 +16072,7 @@ void Sema::ActOnModuleEnd(SourceLocation BuildModuleInclude(DirectiveLoc, Mod); // Any further declarations are in whatever module we returned to. - if (getLangOpts().ModulesLocalVisibility) { + if (getLangOpts().trackLocalOwningModule()) { cast<Decl>(CurContext)->setLocalOwningModule(getCurrentModule()); if (!getCurrentModule()) cast<Decl>(CurContext)->setHidden(false); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits