diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-21 19:57:54 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-21 19:57:54 +0000 | 
| commit | e123fc8fd8677e4dc86f274cffd069e5d56f4a01 (patch) | |
| tree | 806fb806ca9ace304565efd09b494e81ac2aff6f /contrib/llvm/tools/clang/lib/Basic/Module.cpp | |
| parent | 54db30ce18663e6c2991958f3b5d18362e8e93c4 (diff) | |
| parent | 2298981669bf3bd63335a4be179bc0f96823a8f4 (diff) | |
Notes
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Basic/Module.cpp')
| -rw-r--r-- | contrib/llvm/tools/clang/lib/Basic/Module.cpp | 24 | 
1 files changed, 19 insertions, 5 deletions
| diff --git a/contrib/llvm/tools/clang/lib/Basic/Module.cpp b/contrib/llvm/tools/clang/lib/Basic/Module.cpp index fd552f2baaca..f394f26e550c 100644 --- a/contrib/llvm/tools/clang/lib/Basic/Module.cpp +++ b/contrib/llvm/tools/clang/lib/Basic/Module.cpp @@ -1,9 +1,8 @@  //===- Module.cpp - Describe a module -------------------------------------===//  // -//                     The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception  //  //===----------------------------------------------------------------------===//  // @@ -109,7 +108,7 @@ static bool hasFeature(StringRef Feature, const LangOptions &LangOpts,    bool HasFeature = llvm::StringSwitch<bool>(Feature)                          .Case("altivec", LangOpts.AltiVec)                          .Case("blocks", LangOpts.Blocks) -                        .Case("coroutines", LangOpts.CoroutinesTS) +                        .Case("coroutines", LangOpts.Coroutines)                          .Case("cplusplus", LangOpts.CPlusPlus)                          .Case("cplusplus11", LangOpts.CPlusPlus11)                          .Case("cplusplus14", LangOpts.CPlusPlus14) @@ -322,6 +321,21 @@ Module *Module::findSubmodule(StringRef Name) const {    return SubModules[Pos->getValue()];  } +Module *Module::findOrInferSubmodule(StringRef Name) { +  llvm::StringMap<unsigned>::const_iterator Pos = SubModuleIndex.find(Name); +  if (Pos != SubModuleIndex.end()) +    return SubModules[Pos->getValue()]; +  if (!InferSubmodules) +    return nullptr; +  Module *Result = new Module(Name, SourceLocation(), this, false, InferExplicitSubmodules, 0); +  Result->InferExplicitSubmodules = InferExplicitSubmodules; +  Result->InferSubmodules = InferSubmodules; +  Result->InferExportWildcard = InferExportWildcard; +  if (Result->InferExportWildcard) +    Result->Exports.push_back(Module::ExportDecl(nullptr, true)); +  return Result; +} +  void Module::getExportedModules(SmallVectorImpl<Module *> &Exported) const {    // All non-explicit submodules are exported.    for (std::vector<Module *>::const_iterator I = SubModules.begin(), | 
