diff --git a/lib/CodeGen/BackendUtil.cpp b/lib/CodeGen/BackendUtil.cpp index f5edea7810ab699e5f4a698b855c5131cb56a5b3..801b49f04c812cf8364df7aae1a5c3469f3b93c3 100644 --- a/lib/CodeGen/BackendUtil.cpp +++ b/lib/CodeGen/BackendUtil.cpp @@ -604,7 +604,10 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action, if (!TM) TM.reset(CreateTargetMachine(UsesCodeGen)); - if (UsesCodeGen && !TM) return; + if (UsesCodeGen && !TM) + return; + if (TM) + TheModule->setDataLayout(*TM->getDataLayout()); CreatePasses(); switch (Action) { diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 2216ec61afa74e67a3fcfe0c112cf2502486ec6a..adf8d977c93bb62f73b2e06a8ef99dd4ff27ef8d 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -3827,12 +3827,11 @@ CXString clang_Cursor_getMangling(CXCursor C) { // Now apply backend mangling. std::unique_ptr<llvm::DataLayout> DL( new llvm::DataLayout(Ctx.getTargetInfo().getTargetDescription())); - llvm::Mangler BackendMangler(DL.get()); std::string FinalBuf; llvm::raw_string_ostream FinalBufOS(FinalBuf); - BackendMangler.getNameWithPrefix(FinalBufOS, - llvm::Twine(FrontendBufOS.str())); + llvm::Mangler::getNameWithPrefix(FinalBufOS, llvm::Twine(FrontendBufOS.str()), + *DL); return cxstring::createDup(FinalBufOS.str()); }