================ @@ -1014,17 +1014,20 @@ RocmInstallationDetector::getCommonBitcodeLibs( bool isOpenMP = false) const { llvm::SmallVector<ToolChain::BitCodeLibraryInfo, 12> BCLibs; - auto GPUSanEnabled = [GPUSan]() { return std::get<bool>(GPUSan); }; + // GPU Sanitizer currently only supports ASan and is enabled through host + // ASan. + auto GPUSanEnabled = [GPUSan]() { + return std::get<bool>(GPUSan) && + std::get<const SanitizerArgs>(GPUSan).needsAsanRt(); + }; ---------------- ampandey-1995 wrote:
> Why is this using a lambda and capture for a simple and? If we have other sanitizers apart from asan such as msan for GPU. Then , what I think we would be having another msanrtl.bc linked so that future code would be something like below for easy readability and maintainability purpose. Note: we cannot enable both ASan and MSan simultaneously at compile time. ``` auto GPUSanEnabled = [GPUSan](){ auto SanArgs = std::get<const SanitizerArgs>(GPUSan); return std::get<bool>(GPUSan) && (SanArgs.needsAsanRt() || SanArgs.needsMsanRt()) ; }; ``` > I'm also surprised `get<bool>` works instead of `get<0>` Yes, since the tuple contents are of unique types it works. Should I change it? https://github.com/llvm/llvm-project/pull/126671 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits