Skip to content

Commit 78a90fb

Browse files
authored
Merge pull request #8661 from adrian-prantl/abs
2 parents a36bdff + 869dba0 commit 78a90fb

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

lib/IRGen/IRGenDebugInfo.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -418,27 +418,27 @@ llvm::DIFile *IRGenDebugInfo::getOrCreateFile(StringRef Filename) {
418418
if (Filename.empty())
419419
return MainFile;
420420

421-
if (MainFile) {
422-
SmallString<256> AbsMainFile, ThisFile;
423-
AbsMainFile = Filename;
424-
llvm::sys::fs::make_absolute(AbsMainFile);
425-
llvm::sys::path::append(ThisFile, MainFile->getDirectory(),
426-
MainFile->getFilename());
427-
if (ThisFile == AbsMainFile) {
428-
DIFileCache[Filename] = llvm::TrackingMDNodeRef(MainFile);
429-
return MainFile;
430-
}
431-
}
432-
433421
// Look in the cache first.
434422
auto CachedFile = DIFileCache.find(Filename);
435-
436423
if (CachedFile != DIFileCache.end()) {
437424
// Verify that the information still exists.
438425
if (llvm::Metadata *V = CachedFile->second)
439426
return cast<llvm::DIFile>(V);
440427
}
441428

429+
// Detect the main file.
430+
if (MainFile && Filename.endswith(MainFile->getFilename())) {
431+
SmallString<256> AbsThisFile, AbsMainFile;
432+
AbsThisFile = Filename;
433+
llvm::sys::fs::make_absolute(AbsThisFile);
434+
llvm::sys::path::append(AbsMainFile, MainFile->getDirectory(),
435+
MainFile->getFilename());
436+
if (AbsThisFile == AbsMainFile) {
437+
DIFileCache[Filename] = llvm::TrackingMDNodeRef(MainFile);
438+
return MainFile;
439+
}
440+
}
441+
442442
// Create a new one.
443443
StringRef File = llvm::sys::path::filename(Filename);
444444
llvm::SmallString<512> Path(Filename);

0 commit comments

Comments
 (0)