Skip to content

[clang][deps] Always initialize module cache out params#194082

Merged
jansvoboda11 merged 1 commit into
llvm:mainfrom
jansvoboda11:uninit-memory-fix
Apr 24, 2026
Merged

[clang][deps] Always initialize module cache out params#194082
jansvoboda11 merged 1 commit into
llvm:mainfrom
jansvoboda11:uninit-memory-fix

Conversation

@jansvoboda11
Copy link
Copy Markdown
Contributor

We did not initialize the out parameters in #192347, causing the "sanitizer-x86_64-linux-fast" bot to complain with:

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName)
Exiting
==clang==3084515==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x586360f7a604 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63
    #1 <...>

This PR should fix that.

We did not initialize the out parameters in llvm#192347, causing the "sanitizer-x86_64-linux-fast" bot to complain with:

```
SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName)
Exiting
==clang==3084515==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x586360f7a604 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63
...
```

This PR should fix that.
@jansvoboda11 jansvoboda11 requested a review from Bigcheese April 24, 2026 22:50
@jansvoboda11 jansvoboda11 enabled auto-merge (squash) April 24, 2026 22:50
@llvmbot llvmbot added the clang Clang issues not falling into any other category label Apr 24, 2026
@llvmbot
Copy link
Copy Markdown
Member

llvmbot commented Apr 24, 2026

@llvm/pr-subscribers-clang

Author: Jan Svoboda (jansvoboda11)

Changes

We did not initialize the out parameters in #192347, causing the "sanitizer-x86_64-linux-fast" bot to complain with:

SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63 in compileModuleImpl(clang::CompilerInstance&amp;, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName)
Exiting
==clang==3084515==WARNING: MemorySanitizer: use-of-uninitialized-value
    #<!-- -->0 0x586360f7a604 in compileModuleImpl(clang::CompilerInstance&amp;, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63
    #<!-- -->1 &lt;...&gt;

This PR should fix that.


Full diff: https://github.com/llvm/llvm-project/pull/194082.diff

1 Files Affected:

  • (modified) clang/lib/DependencyScanning/InProcessModuleCache.cpp (+4)
diff --git a/clang/lib/DependencyScanning/InProcessModuleCache.cpp b/clang/lib/DependencyScanning/InProcessModuleCache.cpp
index 987703b0c2b6b..0e2286c18e902 100644
--- a/clang/lib/DependencyScanning/InProcessModuleCache.cpp
+++ b/clang/lib/DependencyScanning/InProcessModuleCache.cpp
@@ -147,12 +147,16 @@ class InProcessModuleCache : public ModuleCache {
     if (Entry.State == ModuleCacheEntry::S_Written) {
       assert(Entry.Buffer && *Entry.Buffer == Buffer &&
              "Wrote the same PCM with different contents");
+      Size = Entry.Buffer->getBufferSize();
+      ModTime = Entry.ModTime;
       return {};
     }
     Entry.Buffer =
         llvm::MemoryBuffer::getMemBufferCopy(Buffer.getBuffer(), Path);
     Entry.ModTime = llvm::sys::toTimeT(std::chrono::system_clock::now());
     Entry.State = ModuleCacheEntry::S_Written;
+    Size = Entry.Buffer->getBufferSize();
+    ModTime = Entry.ModTime;
     return {};
   }
 

@jansvoboda11 jansvoboda11 merged commit 5064b93 into llvm:main Apr 24, 2026
11 of 12 checks passed
@jansvoboda11 jansvoboda11 deleted the uninit-memory-fix branch April 27, 2026 15:43
yingopq pushed a commit to yingopq/llvm-project that referenced this pull request Apr 29, 2026
We did not initialize the out parameters in llvm#192347, causing the
"sanitizer-x86_64-linux-fast" bot to complain with:

```
SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName)
Exiting
==clang==3084515==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x586360f7a604 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63
    llvm#1 <...>
```

This PR should fix that.
KHicketts pushed a commit to KHicketts/llvm-project that referenced this pull request Apr 30, 2026
We did not initialize the out parameters in llvm#192347, causing the
"sanitizer-x86_64-linux-fast" bot to complain with:

```
SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName)
Exiting
==clang==3084515==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x586360f7a604 in compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::SourceLocation, clang::Module*, clang::ModuleFileName) /home/b/sanitizer-x86_64-linux-fast/build/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1525:63
    llvm#1 <...>
```

This PR should fix that.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants