aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2018-06-20 23:46:48 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2018-06-30 00:50:06 +0300
commitbde99eb6c40a9c7bc4055b0dc84a31021b7623d2 (patch)
tree0e30bc253ba763d1a421ff5f62067d8b9433231a /mesonbuild/interpreter.py
parente1eb84eb9e78a5905c8585bd5ea61c9880dd05cb (diff)
downloadmeson-bde99eb6c40a9c7bc4055b0dc84a31021b7623d2.zip
meson-bde99eb6c40a9c7bc4055b0dc84a31021b7623d2.tar.gz
meson-bde99eb6c40a9c7bc4055b0dc84a31021b7623d2.tar.bz2
Warn if using Clang+asan+b_lundef. Closes #764.
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index d008eb9..bf4a1e6 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -3645,6 +3645,25 @@ different subdirectory.
mlog.log('Build targets in project:', mlog.bold(str(len(self.build.targets))))
FeatureNew.called_features_report()
FeatureDeprecated.called_features_report()
+ if self.subproject == '':
+ self.print_extra_warnings()
+
+ def print_extra_warnings(self):
+ for c in self.build.compilers.values():
+ if c.get_id() == 'clang':
+ self.check_clang_asan_lundef()
+ break
+
+ def check_clang_asan_lundef(self):
+ if 'b_lundef' not in self.coredata.base_options:
+ return
+ if 'b_sanitize' not in self.coredata.base_options:
+ return
+ if 'address' in self.coredata.base_options['b_sanitize'].value:
+ if self.coredata.base_options['b_lundef'].value:
+ mlog.warning('''Trying to use address sanitizer on Clang with b_lundef.
+This will probably not work.
+Try setting b_lundef to false instead.''')
def evaluate_subproject_info(self, path_from_source_root, subproject_dirname):
depth = 0