Revert "Allow remapping Clang module include paths"

to investigate why this commit broke a test in the LLDB testsuite.

This reverts commit dca920a904.
This commit is contained in:
Adrian Prantl 2020-03-24 17:56:36 -07:00
parent bba8c92d54
commit c025235e96
2 changed files with 11 additions and 21 deletions

View File

@ -2483,17 +2483,6 @@ llvm::DIModule *CGDebugInfo::getOrCreateModuleRef(ASTSourceDescriptor Mod,
assert(StringRef(M->Name).startswith(CGM.getLangOpts().ModuleName) &&
"clang module without ASTFile must be specified by -fmodule-name");
// Return a StringRef to the remapped Path.
auto RemapPath = [this](StringRef Path) -> std::string {
std::string Remapped = remapDIPath(Path);
StringRef Relative(Remapped);
StringRef CompDir = TheCU->getDirectory();
if (Relative.consume_front(CompDir))
Relative.consume_front(llvm::sys::path::get_separator());
return Relative.str();
};
if (CreateSkeletonCU && IsRootModule && !Mod.getASTFile().empty()) {
// PCH files don't have a signature field in the control block,
// but LLVM detects skeleton CUs by looking for a non-zero DWO id.
@ -2507,12 +2496,16 @@ llvm::DIModule *CGDebugInfo::getOrCreateModuleRef(ASTSourceDescriptor Mod,
if (!llvm::sys::path::is_absolute(Mod.getASTFile()))
PCM = Mod.getPath();
llvm::sys::path::append(PCM, Mod.getASTFile());
DIB.createCompileUnit(
TheCU->getSourceLanguage(),
// TODO: Support "Source" from external AST providers?
DIB.createFile(Mod.getModuleName(), TheCU->getDirectory()),
TheCU->getProducer(), false, StringRef(), 0, RemapPath(PCM),
llvm::DICompileUnit::FullDebug, Signature);
std::string RemappedPCM = remapDIPath(PCM);
StringRef RelativePCM(RemappedPCM);
StringRef CompDir = TheCU->getDirectory();
if (RelativePCM.consume_front(CompDir))
RelativePCM.consume_front(llvm::sys::path::get_separator());
DIB.createCompileUnit(TheCU->getSourceLanguage(),
// TODO: Support "Source" from external AST providers?
DIB.createFile(Mod.getModuleName(), CompDir),
TheCU->getProducer(), false, StringRef(), 0, RelativePCM,
llvm::DICompileUnit::FullDebug, Signature);
DIB.finalize();
}
@ -2520,10 +2513,9 @@ llvm::DIModule *CGDebugInfo::getOrCreateModuleRef(ASTSourceDescriptor Mod,
IsRootModule ? nullptr
: getOrCreateModuleRef(ASTSourceDescriptor(*M->Parent),
CreateSkeletonCU);
std::string IncludePath = Mod.getPath().str();
llvm::DIModule *DIMod =
DBuilder.createModule(Parent, Mod.getModuleName(), ConfigMacros,
RemapPath(IncludePath));
Mod.getPath());
ModuleCache[M].reset(DIMod);
return DIMod;
}

View File

@ -34,11 +34,9 @@
// RUN: %clang_cc1 -debug-info-kind=limited -fmodules -fimplicit-module-maps \
// RUN: -fmodules-cache-path=%t -fdebug-prefix-map=%t=/MODULE-CACHE \
// RUN: -fdebug-prefix-map=%S=/SRCDIR \
// RUN: -fmodule-format=obj -dwarf-ext-refs \
// RUN: %s -I %S/Inputs -isysroot /tmp/.. -I %t -emit-llvm -o - \
// RUN: | FileCheck %s --check-prefix=SKEL-CHECK
// SKEL-CHECK: includePath: "/SRCDIR/Inputs"
// SKEL-CHECK: distinct !DICompileUnit({{.*}}file: ![[CUFILE:[0-9]+]]
// SKEL-CHECK: ![[CUFILE]] = !DIFile({{.*}}directory: "[[COMP_DIR:.*]]"
// SKEL-CHECK: distinct !DICompileUnit({{.*}}file: ![[DWOFILE:[0-9]+]]{{.*}}splitDebugFilename: "/MODULE-CACHE{{.*}}dwoId