aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml18
-rw-r--r--wscript6
2 files changed, 24 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 47c96038..406dcf3d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -115,6 +115,24 @@ test:x64_static:
needs: ["x64_static"]
+x64_sanitize:
+ <<: *build_definition
+ image: lv2plugin/debian-x64-clang
+ script: python ./waf configure build -ST --werror
+ variables:
+ CC: "clang"
+ CFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+ CXX: "clang++"
+ CXXFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+ LINKFLAGS: "-fsanitize=address -fsanitize=undefined -fsanitize=float-divide-by-zero -fsanitize=unsigned-integer-overflow -fsanitize=implicit-conversion -fsanitize=local-bounds -fsanitize=nullability"
+
+test:x64_sanitize:
+ <<: *test_definition
+ image: lv2plugin/debian-x64-clang
+ script: python ./waf test
+ needs: ["x64_sanitize"]
+
+
mingw32_dbg:
<<: *build_definition
image: lv2plugin/debian-mingw32
diff --git a/wscript b/wscript
index bc21d526..faeaadaa 100644
--- a/wscript
+++ b/wscript
@@ -55,6 +55,7 @@ def configure(conf):
'clang': [
'-Wno-cast-align',
'-Wno-cast-qual',
+ '-Wno-conversion',
'-Wno-covered-switch-default',
'-Wno-disabled-macro-expansion',
'-Wno-double-promotion',
@@ -101,6 +102,11 @@ def configure(conf):
if 'mingw' in conf.env.CC[0]:
conf.env.append_value('CFLAGS', '-Wno-unused-macros')
+ if ('clang' in conf.env.CC[0] and (
+ '-fsanitize=address' in conf.env.CFLAGS or
+ '-fsanitize=undefined' in conf.env.CFLAGS)):
+ conf.env.LINKFLAGS.remove('-Wl,--no-undefined')
+
conf.env.update({
'BUILD_UTILS': not Options.options.no_utils,
'BUILD_SHARED': not Options.options.no_shared,