Files
rocm-systems/source/scripts/setup-sanitizer-env.sh
T
Madsen, Jonathan e743bf5a93 Undefined behavior warnings caught by ROCPROFILER_DEFAULT_FAIL_REGEX (#23)
* Add regex for undefined behavior to ROCPROFILER_DEFAULT_FAIL_REGEX

- add UBSAN_OPTIONS to setup-sanitizer-env.sh

* Improve ROCPROFILER_DEFAULT_FAIL_REGEX

* Use -fno-sanitize-recover=undefined flag

- this compiler flag causes all undefined behavior errors to exit

* Revert ROCPROFILER_DEFAULT_FAIL_REGEX

* fix for shift overflow

---------

Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
Co-authored-by: Manjunath-Jakaraddi <manjunath.jakaraddi@amd.com>
2025-02-06 08:55:57 -06:00

49 строки
1.4 KiB
Bash
Исполняемый файл

#!/bin/bash -e
#
# This file will export the same environment variables for running sanitizers as run-ci.py
# This file is useful to set the suppressions files
#
# Example usage:
#
# source ./source/scripts/setup-sanitizer-env.sh
#
SUPPR_DIR=$(cd $(dirname ${BASH_SOURCE[0]}) &> /dev/null && pwd)
find-symbolizer()
{
set +e
SYMBOLIZER=$(which ${1})
set -e
if [ -n "${SYMBOLIZER}" ]; then
: ${EXTERNAL_SYMBOLIZER_PATH:="${SYMBOLIZER}"}
fi
}
for i in $(seq 20 -1 8)
do
find-symbolizer llvm-symbolizer-${i}
done
find-symbolizer llvm-symbolizer
if [ -n "${EXTERNAL_SYMBOLIZER_PATH}" ]; then
EXTERNAL_SYMBOLIZER=" external_symbolizer_path=${EXTERNAL_SYMBOLIZER_PATH}"
fi
: ${ASAN_OPTIONS="detect_leaks=0 use_sigaltstack=0 suppressions=${SUPPR_DIR}/address-sanitizer-suppr.txt"}
: ${LSAN_OPTIONS="suppressions=${SUPPR_DIR}/leak-sanitizer-suppr.txt"}
: ${TSAN_OPTIONS="history_size=5 detect_deadlocks=0 suppressions=${SUPPR_DIR}/thread-sanitizer-suppr.txt${EXTERNAL_SYMBOLIZER}"}
: ${UBSAN_OPTIONS="print_stacktrace=1 suppressions=${SUPPR_DIR}/undef-behavior-sanitizer-suppr.txt${EXTERNAL_SYMBOLIZER}"}
export ASAN_OPTIONS
export LSAN_OPTIONS
export TSAN_OPTIONS
export UBSAN_OPTIONS
echo "ASAN_OPTIONS=\"${ASAN_OPTIONS}\""
echo "LSAN_OPTIONS=\"${LSAN_OPTIONS}\""
echo "TSAN_OPTIONS=\"${TSAN_OPTIONS}\""
echo "UBSAN_OPTIONS=\"${UBSAN_OPTIONS}\""