@@ -134,7 +134,12 @@ extern "C" LLVMPassRef LLVMRustCreateMemorySanitizerPass(int TrackOrigins, bool
134134 const bool CompileKernel = false ;
135135
136136 return wrap (createMemorySanitizerLegacyPassPass (
137- MemorySanitizerOptions{TrackOrigins, Recover, CompileKernel}));
137+ #if LLVM_VERSION_GE(14, 0)
138+ MemorySanitizerOptions{TrackOrigins, Recover, CompileKernel, /* EagerChecks=*/ true }
139+ #else
140+ MemorySanitizerOptions{TrackOrigins, Recover, CompileKernel}
141+ #endif
142+ ));
138143#else
139144 report_fatal_error (" Legacy PM not supported with LLVM 15" );
140145#endif
@@ -930,10 +935,18 @@ LLVMRustOptimizeWithNewPassManager(
930935
931936 if (SanitizerOptions) {
932937 if (SanitizerOptions->SanitizeMemory ) {
938+ #if LLVM_VERSION_GE(14, 0)
939+ MemorySanitizerOptions Options (
940+ SanitizerOptions->SanitizeMemoryTrackOrigins ,
941+ SanitizerOptions->SanitizeMemoryRecover ,
942+ /* CompileKernel=*/ false ,
943+ /* EagerChecks=*/ true );
944+ #else
933945 MemorySanitizerOptions Options (
934946 SanitizerOptions->SanitizeMemoryTrackOrigins ,
935947 SanitizerOptions->SanitizeMemoryRecover ,
936948 /* CompileKernel=*/ false );
949+ #endif
937950 OptimizerLastEPCallbacks.push_back (
938951 [Options](ModulePassManager &MPM, OptimizationLevel Level) {
939952#if LLVM_VERSION_GE(14, 0) && LLVM_VERSION_LT(16, 0)
0 commit comments