diff --git a/libcxx/CMakeLists.txt b/libcxx/CMakeLists.txt --- a/libcxx/CMakeLists.txt +++ b/libcxx/CMakeLists.txt @@ -704,6 +704,8 @@ endif() if (USE_SANITIZER STREQUAL "Address") append_flags(SANITIZER_FLAGS "-fsanitize=address") + elseif (USE_SANITIZER STREQUAL "HWAddress") + append_flags(SANITIZER_FLAGS "-fsanitize=hwaddress") elseif (USE_SANITIZER MATCHES "Memory(WithOrigins)?") append_flags(SANITIZER_FLAGS -fsanitize=memory) if (USE_SANITIZER STREQUAL "MemoryWithOrigins") @@ -714,6 +716,9 @@ elseif (USE_SANITIZER STREQUAL "Address;Undefined" OR USE_SANITIZER STREQUAL "Undefined;Address") append_flags(SANITIZER_FLAGS "-fsanitize=address,undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all") + elseif (USE_SANITIZER STREQUAL "HWAddress;Undefined" OR + USE_SANITIZER STREQUAL "Undefined;HWAddress") + append_flags(SANITIZER_FLAGS "-fsanitize=hwaddress,undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all") elseif (USE_SANITIZER STREQUAL "Thread") append_flags(SANITIZER_FLAGS -fsanitize=thread) elseif (USE_SANITIZER STREQUAL "DataFlow") diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py --- a/libcxx/utils/libcxx/test/params.py +++ b/libcxx/utils/libcxx/test/params.py @@ -136,6 +136,8 @@ AddFlag('-fsanitize=address') if sanitizer == 'Address' else None, AddFeature('asan') if sanitizer == 'Address' else None, + AddFlag('-fsanitize=hwaddress') if sanitizer == 'HWAddress' else None, + AddFeature('hwasan') if sanitizer == 'HWAddress' else None, AddFlag('-fsanitize=memory') if sanitizer in ['Memory', 'MemoryWithOrigins'] else None, AddFeature('msan') if sanitizer in ['Memory', 'MemoryWithOrigins'] else None,