Intel® oneAPI DPC++/C++ Compiler

Developer Guide and Reference

ID 767253
Date 6/30/2025
Public
Document Table of Contents

Host-Side Compiler Sanitizers

Host-side sanitizers do not support the RTLD_DEEPBIND flag when a sanitized application loads other shared libraries. You must ignore this flag when you load shared libraries with RTLD_DEEPBIND. To address this, we have introduced the following environment variables to clear this flag:

Environment Variable Description
export ASAN_OPTIONS=clear_deepbind_flag= 1

Used for AddressSanitizer (Asan)

export MSAN_OPTIONS=clear_deepbind_flag=1

Used for MemorySanitizer (MSan)

export TSAN_OPTIONS=clear_deepbind_flag=1

Used for ThreadSanitizer (Tsan)

NOTE:

If your application strongly depends on the RTLD_DEEPBIND flag, issues may arise when enabling this flag for host-side sanitizers.

For host-side MSan, false negative reports may occur because the MSan-instrumented application might rely on instrumented versions of all libraries, including GPU drivers (such as Intel® Graphics Compiler libraries, SYCL* runtime libraries, and others) to propagate correct memory information. Since many of these libraries are written in C++, the MSan-instrumented libc++ would also need to be used. However, we do not provide MSan-instrumented versions for these libraries.

Clang Sanitizers

The following Clang sanitizers are provided with the compiler, for host code only:

Sanitizer OS Support

AddressSanitizer

Linux, Windows

LeakSanitizer

Linux

MemorySanitizer

Linux

ThreadSanitizer

Linux

UndefinedBehaviorSanitizer

Linux, Windows

For detailed information about each sanitizer, refer to the Clang documentation Clang documentation.