https://github.com/boomanaiden154 created 
https://github.com/llvm/llvm-project/pull/174515

computeDependencies takes in a pointer to an OverlayFileSystem, checks if it is 
null, and creates a FileSystem object if it is. But then the code later 
unconditionally uses OverlayFS, which may be null. Use the pointer that is 
created/moved by the nullptr check.

We saw this come up in some downstream builds where we were seeing SIGILL.

>From ac07a56975decf32c1d5ce2513a50f7bfd05cc59 Mon Sep 17 00:00:00 2001
From: Aiden Grossman <[email protected]>
Date: Tue, 6 Jan 2026 01:54:53 +0000
Subject: [PATCH] [DependencyScanning] Do not use maybe null OverlayFS

computeDependencies takes in a pointer to an OverlayFileSystem, checks
if it is null, and creates a FileSystem object if it is. But then the
code later unconditionally uses OverlayFS, which may be null. Use the
pointer that is created/moved by the nullptr check.

We saw this come up in some downstream builds where we were seeing
SIGILL.
---
 clang/lib/DependencyScanning/DependencyScanningWorker.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/DependencyScanning/DependencyScanningWorker.cpp 
b/clang/lib/DependencyScanning/DependencyScanningWorker.cpp
index 266660cdfab28..25c8a092d38c2 100644
--- a/clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+++ b/clang/lib/DependencyScanning/DependencyScanningWorker.cpp
@@ -96,7 +96,7 @@ bool DependencyScanningWorker::computeDependencies(
     }
 
     auto DiagEngineWithDiagOpts =
-        DiagnosticsEngineWithDiagOpts(Cmd, OverlayFS, DiagConsumer);
+        DiagnosticsEngineWithDiagOpts(Cmd, FS, DiagConsumer);
     auto &Diags = *DiagEngineWithDiagOpts.DiagEngine;
 
     // Create an invocation that uses the underlying file system to ensure that

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

Reply via email to