aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2019-05-13 14:39:21 -0700
committerNirbheek Chauhan <nirbheek.chauhan@gmail.com>2019-07-23 09:58:24 +0000
commitc8a6a44850485b61eca520f0153f5532f871db5e (patch)
tree9dddd0289113fce8299c3026da1994288fab9c57 /mesonbuild/compilers/compilers.py
parente0f036f3a4806c298961a61ccc8e7e38ab4b4587 (diff)
downloadmeson-c8a6a44850485b61eca520f0153f5532f871db5e.zip
meson-c8a6a44850485b61eca520f0153f5532f871db5e.tar.gz
meson-c8a6a44850485b61eca520f0153f5532f871db5e.tar.bz2
compilers: pull sanitzier args into compiler classes
This simplifies and cleans things up.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py24
1 files changed, 8 insertions, 16 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index 417e0e9..3b61e61 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -254,20 +254,6 @@ base_options = {'b_pch': coredata.UserBooleanOption('Use precompiled headers', T
'from_buildtype'),
}
-def sanitizer_compile_args(value):
- if value == 'none':
- return []
- args = ['-fsanitize=' + value]
- if 'address' in value: # For -fsanitize=address,undefined
- args.append('-fno-omit-frame-pointer')
- return args
-
-def sanitizer_link_args(value):
- if value == 'none':
- return []
- args = ['-fsanitize=' + value]
- return args
-
def option_enabled(boptions, options, option):
try:
if option not in boptions:
@@ -288,7 +274,7 @@ def get_base_compile_args(options, compiler):
except KeyError:
pass
try:
- args += sanitizer_compile_args(options['b_sanitize'].value)
+ args += compiler.sanitizer_compile_args(options['b_sanitize'].value)
except KeyError:
pass
try:
@@ -333,7 +319,7 @@ def get_base_link_args(options, linker, is_shared_module):
except KeyError:
pass
try:
- args += sanitizer_link_args(options['b_sanitize'].value)
+ args += linker.sanitizer_link_args(options['b_sanitize'].value)
except KeyError:
pass
try:
@@ -1201,6 +1187,12 @@ class Compiler:
def get_lto_link_args(self) -> List[str]:
return []
+ def sanitizer_compile_args(self, value: str) -> List[str]:
+ return []
+
+ def sanitizer_link_args(self, value: str) -> List[str]:
+ return []
+
@enum.unique
class CompilerType(enum.Enum):