aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 875f06b..f6f7f22 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -8172,12 +8172,17 @@ void CodeGenModule::printPostfixForExternalizedDecl(llvm::raw_ostream &OS,
// Get the UniqueID for the file containing the decl.
llvm::sys::fs::UniqueID ID;
- if (llvm::sys::fs::getUniqueID(PLoc.getFilename(), ID)) {
+ auto Status = FS->status(PLoc.getFilename());
+ if (!Status) {
PLoc = SM.getPresumedLoc(D->getLocation(), /*UseLineDirectives=*/false);
assert(PLoc.isValid() && "Source location is expected to be valid.");
- if (auto EC = llvm::sys::fs::getUniqueID(PLoc.getFilename(), ID))
- SM.getDiagnostics().Report(diag::err_cannot_open_file)
- << PLoc.getFilename() << EC.message();
+ Status = FS->status(PLoc.getFilename());
+ }
+ if (!Status) {
+ SM.getDiagnostics().Report(diag::err_cannot_open_file)
+ << PLoc.getFilename() << Status.getError().message();
+ } else {
+ ID = Status->getUniqueID();
}
OS << llvm::format("%x", ID.getFile()) << llvm::format("%x", ID.getDevice())
<< "_" << llvm::utohexstr(Result.low(), /*LowerCase=*/true, /*Width=*/8);