[llvm] r216701 - Introduce -DLLVM_USE_SANITIZER=Undefined CMake option to build UBSan-ified version of LLVM/Clang.
Alexey Samsonov
vonosmas at gmail.com
Thu Aug 28 17:50:36 PDT 2014
Author: samsonov
Date: Thu Aug 28 19:50:36 2014
New Revision: 216701
URL: http://llvm.org/viewvc/llvm-project?rev=216701&view=rev
Log:
Introduce -DLLVM_USE_SANITIZER=Undefined CMake option to build UBSan-ified version of LLVM/Clang.
I've fixed most of the simple bugs and currently "check-llvm" test suite
has 26 failures, and "check-clang" suite has 5 failures.
Modified:
llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
llvm/trunk/docs/CMake.rst
llvm/trunk/test/lit.cfg
Modified: llvm/trunk/cmake/modules/HandleLLVMOptions.cmake
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/cmake/modules/HandleLLVMOptions.cmake?rev=216701&r1=216700&r2=216701&view=diff
==============================================================================
--- llvm/trunk/cmake/modules/HandleLLVMOptions.cmake (original)
+++ llvm/trunk/cmake/modules/HandleLLVMOptions.cmake Thu Aug 28 19:50:36 2014
@@ -363,6 +363,10 @@ if(LLVM_USE_SANITIZER)
if(LLVM_USE_SANITIZER STREQUAL "MemoryWithOrigins")
append("-fsanitize-memory-track-origins" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
endif()
+ elseif (LLVM_USE_SANITIZER STREQUAL "Undefined")
+ append_common_sanitizer_flags()
+ append("-fsanitize=undefined -fno-sanitize=vptr -fno-sanitize-recover"
+ CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
else()
message(WARNING "Unsupported value of LLVM_USE_SANITIZER: ${LLVM_USE_SANITIZER}")
endif()
Modified: llvm/trunk/docs/CMake.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/CMake.rst?rev=216701&r1=216700&r2=216701&view=diff
==============================================================================
--- llvm/trunk/docs/CMake.rst (original)
+++ llvm/trunk/docs/CMake.rst Thu Aug 28 19:50:36 2014
@@ -288,8 +288,8 @@ LLVM-specific variables
**LLVM_USE_SANITIZER**:STRING
Define the sanitizer used to build LLVM binaries and tests. Possible values
- are ``Address``, ``Memory`` and ``MemoryWithOrigins``. Defaults to empty
- string.
+ are ``Address``, ``Memory``, ``MemoryWithOrigins`` and ``Undefined``.
+ Defaults to empty string.
**LLVM_BUILD_DOCS**:BOOL
Enables all enabled documentation targets (i.e. Doxgyen and Sphinx targets) to
Modified: llvm/trunk/test/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/lit.cfg?rev=216701&r1=216700&r2=216701&view=diff
==============================================================================
--- llvm/trunk/test/lit.cfg (original)
+++ llvm/trunk/test/lit.cfg Thu Aug 28 19:50:36 2014
@@ -96,7 +96,7 @@ for symbolizer in ['ASAN_SYMBOLIZER_PATH
config.environment[symbolizer] = os.environ[symbolizer]
# Propagate options for sanitizers.
-for options in ['ASAN_OPTIONS']:
+for options in ['ASAN_OPTIONS', 'UBSAN_OPTIONS']:
if options in os.environ:
config.environment[options] = os.environ[options]
More information about the llvm-commits
mailing list