diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp')
| -rw-r--r-- | contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp | 33 | 
1 files changed, 21 insertions, 12 deletions
| diff --git a/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp b/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp index 25e57401fd57..def56a963126 100644 --- a/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp +++ b/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp @@ -32,6 +32,8 @@ namespace {      DiagnosticsEngine &Diags;      std::unique_ptr<const llvm::DataLayout> TD;      ASTContext *Ctx; +    const HeaderSearchOptions &HeaderSearchOpts; // Only used for debug info. +    const PreprocessorOptions &PreprocessorOpts; // Only used for debug info.      const CodeGenOptions CodeGenOpts;  // Intentionally copied in.      unsigned HandlingTopLevelDecls; @@ -56,12 +58,15 @@ namespace {      SmallVector<CXXMethodDecl *, 8> DeferredInlineMethodDefinitions;    public: -    CodeGeneratorImpl(DiagnosticsEngine &diags, const std::string& ModuleName, -                      const CodeGenOptions &CGO, llvm::LLVMContext& C, +    CodeGeneratorImpl(DiagnosticsEngine &diags, const std::string &ModuleName, +                      const HeaderSearchOptions &HSO, +                      const PreprocessorOptions &PPO, const CodeGenOptions &CGO, +                      llvm::LLVMContext &C,                        CoverageSourceInfo *CoverageInfo = nullptr) -      : Diags(diags), Ctx(nullptr), CodeGenOpts(CGO), HandlingTopLevelDecls(0), -        CoverageInfo(CoverageInfo), -        M(new llvm::Module(ModuleName, C)) {} +        : Diags(diags), Ctx(nullptr), HeaderSearchOpts(HSO), +          PreprocessorOpts(PPO), CodeGenOpts(CGO), HandlingTopLevelDecls(0), +          CoverageInfo(CoverageInfo), +          M(new llvm::Module(ModuleName, C)) {}      ~CodeGeneratorImpl() override {        // There should normally not be any leftover inline method definitions. @@ -97,7 +102,10 @@ namespace {        M->setDataLayout(Ctx->getTargetInfo().getTargetDescription());        TD.reset(            new llvm::DataLayout(Ctx->getTargetInfo().getTargetDescription())); -      Builder.reset(new CodeGen::CodeGenModule(Context, CodeGenOpts, *M, *TD, +      Builder.reset(new CodeGen::CodeGenModule(Context, +                                               HeaderSearchOpts, +                                               PreprocessorOpts, +                                               CodeGenOpts, *M, *TD,                                                 Diags, CoverageInfo));        for (size_t i = 0, e = CodeGenOpts.DependentLibraries.size(); i < e; ++i) @@ -236,10 +244,11 @@ namespace {  void CodeGenerator::anchor() { } -CodeGenerator *clang::CreateLLVMCodeGen(DiagnosticsEngine &Diags, -                                        const std::string& ModuleName, -                                        const CodeGenOptions &CGO, -                                        llvm::LLVMContext& C, -                                        CoverageSourceInfo *CoverageInfo) { -  return new CodeGeneratorImpl(Diags, ModuleName, CGO, C, CoverageInfo); +CodeGenerator *clang::CreateLLVMCodeGen( +    DiagnosticsEngine &Diags, const std::string &ModuleName, +    const HeaderSearchOptions &HeaderSearchOpts, +    const PreprocessorOptions &PreprocessorOpts, const CodeGenOptions &CGO, +    llvm::LLVMContext &C, CoverageSourceInfo *CoverageInfo) { +  return new CodeGeneratorImpl(Diags, ModuleName, HeaderSearchOpts, +                               PreprocessorOpts, CGO, C, CoverageInfo);  } | 
