diff --git a/.github/workflows/CITest.yml b/.github/workflows/CITest.yml index 9fc5a3ae6a..a9ae9230fc 100644 --- a/.github/workflows/CITest.yml +++ b/.github/workflows/CITest.yml @@ -24,6 +24,8 @@ concurrency: env: CI: true + UBSAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1" + ASAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1" jobs: Linux: diff --git a/CMakeLists.txt b/CMakeLists.txt index e79bf7c3d0..345740c993 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,8 +72,8 @@ option(ENABLE_COVERAGE "Enable test coverage" OFF) if (ENABLE_ASAN) message("Enabling ASAN") add_definitions(-DASAN_ENABLED) - add_compile_options(-fsanitize=address) - add_link_options(-fsanitize=address) + add_compile_options(-fsanitize=address,undefined) + add_link_options(-fsanitize=address,undefined) endif() if (ENABLE_COVERAGE) diff --git a/SStream.c b/SStream.c index e561345d00..ce7ca35b3c 100644 --- a/SStream.c +++ b/SStream.c @@ -330,9 +330,6 @@ void printInt32(SStream *O, int32_t val) SStream_concat(O, "%" PRId32, val); } else { if (val < -HEX_THRESHOLD) { - if (val == INT32_MIN) - SStream_concat(O, "-0x%" PRIx32, (uint32_t) INT32_MAX + 1); - else SStream_concat(O, "-0x%" PRIx32, (int32_t)-val); } else { SStream_concat(O, "-%" PRIu32, (uint32_t)-val);