Always allocate room for a ModuleDecl on the TranslationUnitDecl.

Sometimes we create the ASTContext and thus the TranslationUnitDecl before we know the LangOptions. This should fix the asan buildbot failures after r312467.

llvm-svn: 312506
This commit is contained in:
Richard Smith 2017-09-05 00:50:19 +00:00
parent 8d7c8c7960
commit debbaefb76
1 changed files with 3 additions and 2 deletions

View File

@ -74,8 +74,9 @@ void *Decl::operator new(std::size_t Size, const ASTContext &Ctx,
DeclContext *Parent, std::size_t Extra) {
assert(!Parent || &Parent->getParentASTContext() == &Ctx);
// With local visibility enabled, we track the owning module even for local
// declarations.
if (Ctx.getLangOpts().trackLocalOwningModule()) {
// declarations. We create the TU decl early and may not yet know what the
// LangOpts are, so conservatively allocate the storage.
if (Ctx.getLangOpts().trackLocalOwningModule() || !Parent) {
// Ensure required alignment of the resulting object by adding extra
// padding at the start if required.
size_t ExtraAlign =