From 70dbc311d1b46b84a60c55b781272bc41b8570b8 Mon Sep 17 00:00:00 2001 From: HP van Braam Date: Fri, 13 Dec 2024 22:49:28 +0100 Subject: [PATCH] Exclude known thirdparty/ ubsan errors In my quest to make ubsan failures a build failure I've added all current ubsan errors by type to a new suppression file which we will then also use with CI. The idea is to only add known ubsan errors to this file, so this is not a blanket exclusion of thirdparty/ this means that if we get new or unexpected ubsan in thirdparty/ builds would fail. --- .github/workflows/linux_builds.yml | 1 + misc/error_suppressions/ubsan.txt | 32 ++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 misc/error_suppressions/ubsan.txt diff --git a/.github/workflows/linux_builds.yml b/.github/workflows/linux_builds.yml index 5a9fb57755f..193942a1bb3 100644 --- a/.github/workflows/linux_builds.yml +++ b/.github/workflows/linux_builds.yml @@ -10,6 +10,7 @@ env: DOTNET_NOLOGO: true DOTNET_CLI_TELEMETRY_OPTOUT: true TSAN_OPTIONS: suppressions=misc/error_suppressions/tsan.txt + UBSAN_OPTIONS: suppressions=misc/error_suppressions/ubsan.txt concurrency: group: ci-${{ github.actor }}-${{ github.head_ref || github.run_number }}-${{ github.ref }}-linux diff --git a/misc/error_suppressions/ubsan.txt b/misc/error_suppressions/ubsan.txt new file mode 100644 index 00000000000..b3e46a7ab1d --- /dev/null +++ b/misc/error_suppressions/ubsan.txt @@ -0,0 +1,32 @@ +implicit-integer-sign-change:thirdparty/basis_universal/transcoder/basisu_astc_helpers.h +implicit-integer-sign-change:thirdparty/harfbuzz/src/hb-algs.hh +implicit-integer-sign-change:thirdparty/harfbuzz/src/hb-buffer.hh +implicit-integer-sign-change:thirdparty/harfbuzz/src/hb-cache.hh +implicit-integer-sign-change:thirdparty/harfbuzz/src/hb-face.hh +implicit-integer-sign-change:thirdparty/harfbuzz/src/hb-ot-layout-gsubgpos.hh +implicit-integer-sign-change:thirdparty/harfbuzz/src/OT/name/name.hh +implicit-integer-sign-change:thirdparty/icu4c/common/bmpset.cpp +implicit-integer-sign-change:thirdparty/icu4c/common/ubidiln.cpp +implicit-integer-sign-change:thirdparty/icu4c/common/unicode/unistr.h +implicit-integer-sign-change:thirdparty/icu4c/common/unistr.cpp +implicit-integer-sign-change:thirdparty/icu4c/common/uresbund.cpp +implicit-integer-sign-change:thirdparty/icu4c/common/ustrtrns.cpp +implicit-integer-sign-change:thirdparty/jpeg-compressor/jpgd.cpp +implicit-integer-sign-change:thirdparty/libogg/bitwise.c +implicit-integer-sign-change:thirdparty/libvorbis/info.c +implicit-integer-sign-change:thirdparty/libvorbis/sharedbook.c +implicit-integer-sign-change:thirdparty/mbedtls/library/base64.c +implicit-integer-sign-change:thirdparty/misc/smolv.cpp +implicit-integer-sign-change:thirdparty/recastnavigation/Recast/Include/Recast.h +implicit-integer-sign-change:thirdparty/recastnavigation/Recast/Source/RecastMesh.cpp +implicit-integer-sign-change:thirdparty/thorvg/src/renderer/sw_engine/tvgSwRaster.cpp +implicit-integer-sign-change:thirdparty/tinyexr/tinyexr.h +implicit-integer-sign-change:thirdparty/vulkan/vk_mem_alloc.h +implicit-integer-sign-change:thirdparty/zlib/trees.c +implicit-integer-sign-change:thirdparty/zstd/compress/zstd_cwksp.h +integer-divide-by-zero:thirdparty/misc/ok_color.h +integer-divide-by-zero:thirdparty/rvo2/rvo2_2d/Agent2d.cpp +shift-base:thirdparty/libogg/bitwise.c +shift-base:thirdparty/libvorbis/sharedbook.c +shift-base:thirdparty/noise/FastNoiseLite.h +signed-integer-overflow:thirdparty/noise/FastNoiseLite.h