Index: clang/lib/Driver/ToolChains.cpp =================================================================== --- clang/lib/Driver/ToolChains.cpp +++ clang/lib/Driver/ToolChains.cpp @@ -4974,12 +4974,16 @@ } SanitizerMask CudaToolChain::getSupportedSanitizers() const { - // The CudaToolChain only supports address sanitization in the sense that it - // allows ASAN arguments on the command line. It must not error out on these - // command line arguments because the host code compilation supports them. - // However, it doesn't actually do any address sanitization for device code; - // instead, it just ignores any ASAN command line arguments it sees. - return SanitizerKind::Address; + // The CudaToolChain only supports sanitizers in the sense that it allows + // sanitizer arguments on the command line if they are supported by the host + // toolchain. The CudaToolChain will actually ignore any command line + // arguments for any of these "supported" sanitizers. That means that no + // sanitization of device code is actually supported at this time. + // + // This behavior is necessary because the host and device toolchains + // invocations often share the command line, so the device toolchain must + // tolerate flags meant only for the host toolchain. + return HostTC.getSupportedSanitizers(); } /// XCore tool chain