https://github.com/benlangmuir created 
https://github.com/llvm/llvm-project/pull/173107

Update TextDiagnostic and SARIFDiagnostic emitFilename to use the FileManager's 
makeAbsolutePath instead of directly calling make_absolute. This fixes IO 
sandbox violation errors.

>From 232677858806aeb03d12fb284406704ff40dac1f Mon Sep 17 00:00:00 2001
From: Ben Langmuir <[email protected]>
Date: Fri, 19 Dec 2025 14:06:31 -0800
Subject: [PATCH] [clang] Fix IO sandbox violations in diagnostic filenames

Update TextDiagnostic and SARIFDiagnostic emitFilename to use the FileManager's
makeAbsolutePath instead of directly calling make_absolute. This fixes IO
sandbox violation errors.
---
 clang/lib/Frontend/SARIFDiagnostic.cpp | 2 +-
 clang/lib/Frontend/TextDiagnostic.cpp  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/lib/Frontend/SARIFDiagnostic.cpp 
b/clang/lib/Frontend/SARIFDiagnostic.cpp
index 2cd32ce97ea85..0179307bcbac3 100644
--- a/clang/lib/Frontend/SARIFDiagnostic.cpp
+++ b/clang/lib/Frontend/SARIFDiagnostic.cpp
@@ -219,7 +219,7 @@ llvm::StringRef SARIFDiagnostic::emitFilename(StringRef 
Filename,
       // on that system, both aforementioned paths point to the same place.
 #ifdef _WIN32
       SmallString<256> TmpFilename = File->getName();
-      llvm::sys::fs::make_absolute(TmpFilename);
+      SM.getFileManager().makeAbsolutePath(TmpFilename);
       llvm::sys::path::native(TmpFilename);
       llvm::sys::path::remove_dots(TmpFilename, /* remove_dot_dot */ true);
       Filename = StringRef(TmpFilename.data(), TmpFilename.size());
diff --git a/clang/lib/Frontend/TextDiagnostic.cpp 
b/clang/lib/Frontend/TextDiagnostic.cpp
index 10032184b5d94..3f30709b0447e 100644
--- a/clang/lib/Frontend/TextDiagnostic.cpp
+++ b/clang/lib/Frontend/TextDiagnostic.cpp
@@ -835,7 +835,7 @@ void TextDiagnostic::emitFilename(StringRef Filename, const 
SourceManager &SM) {
       // on that system, both aforementioned paths point to the same place.
 #ifdef _WIN32
       TmpFilename = File->getName();
-      llvm::sys::fs::make_absolute(TmpFilename);
+      SM.getFileManager().makeAbsolutePath(TmpFilename);
       llvm::sys::path::native(TmpFilename);
       llvm::sys::path::remove_dots(TmpFilename, /* remove_dot_dot */ true);
       Filename = StringRef(TmpFilename.data(), TmpFilename.size());

_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to