From 29c26d5b26397eaa3606d22d71309ecd1eb6b223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 2 Jun 2022 02:57:23 +0200 Subject: [PATCH] compilers: Add support for stand-alone leak sanitizer Leak sanitizer can be enabled without the whole AddressSanitizer, this can be done by passing -fsanitize=leak as documented at [1]. Meson doesn't support this, so add support for it. [1] https://clang.llvm.org/docs/LeakSanitizer.html --- docs/markdown/Builtin-options.md | 2 +- docs/markdown/Configuring-a-build-directory.md | 2 +- mesonbuild/compilers/compilers.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/markdown/Builtin-options.md b/docs/markdown/Builtin-options.md index 1e24144cf..80c32a60e 100644 --- a/docs/markdown/Builtin-options.md +++ b/docs/markdown/Builtin-options.md @@ -142,7 +142,7 @@ available on all platforms or with all compilers: | b_vscrt | from_buildtype | none, md, mdd, mt, mtd, from_buildtype, static_from_buildtype | VS runtime library to use (since 0.48.0) (static_from_buildtype since 0.56.0) | The value of `b_sanitize` can be one of: `none`, `address`, `thread`, -`undefined`, `memory`, `address,undefined`, but note that some +`undefined`, `memory`, `leak`, `address,undefined`, but note that some compilers might not support all of them. For example Visual Studio only supports the address sanitizer. diff --git a/docs/markdown/Configuring-a-build-directory.md b/docs/markdown/Configuring-a-build-directory.md index 34bde4d99..37080eff7 100644 --- a/docs/markdown/Configuring-a-build-directory.md +++ b/docs/markdown/Configuring-a-build-directory.md @@ -53,7 +53,7 @@ a sample output for a simple project. b_ndebug false [true, false, if-release] Disable asserts b_pch true [true, false] Use precompiled headers b_pgo off [off, generate, use] Use profile guided optimization - b_sanitize none [none, address, thread, undefined, memory, address,undefined] Code sanitizer to use + b_sanitize none [none, address, thread, undefined, leak, memory, address,undefined] Code sanitizer to use b_staticpic true [true, false] Build static libraries as position independent Compiler options: diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py index 03c1199a5..18ba6e951 100644 --- a/mesonbuild/compilers/compilers.py +++ b/mesonbuild/compilers/compilers.py @@ -278,7 +278,7 @@ base_options: 'KeyedOptionDictType' = { ['default', 'thin'], 'default'), OptionKey('b_sanitize'): coredata.UserComboOption('Code sanitizer to use', - ['none', 'address', 'thread', 'undefined', 'memory', 'address,undefined'], + ['none', 'address', 'thread', 'undefined', 'memory', 'leak', 'address,undefined'], 'none'), OptionKey('b_lundef'): coredata.UserBooleanOption('Use -Wl,--no-undefined when linking', True), OptionKey('b_asneeded'): coredata.UserBooleanOption('Use -Wl,--as-needed when linking', True),