summaryrefslogtreecommitdiffstatshomepage
path: root/scripts
diff options
context:
space:
mode:
author Oliver Stöneberg <firewave@users.noreply.github.com>2018-01-12 01:18:12 +0100
committer R. Belmont <rb6502@users.noreply.github.com>2018-01-11 19:18:12 -0500
commit35e5a752439c927bd762518370d039f510975225 (patch)
tree2c1c747209882cf77a438a13002c7420a8335a4e /scripts
parentb8632487b804e106c32b127d455206a5d53fbb80 (diff)
restored SANITIZE make option (#3043)
* restored basic support for SANITIZE make option * disabled some unwanted UBSAN checks / enabled nullability checks / enabled ASAN use-after-scope checks (nw)
Diffstat (limited to 'scripts')
-rw-r--r--scripts/genie.lua41
1 files changed, 37 insertions, 4 deletions
diff --git a/scripts/genie.lua b/scripts/genie.lua
index 0c1a6abb179..a9f6f11be05 100644
--- a/scripts/genie.lua
+++ b/scripts/genie.lua
@@ -387,6 +387,11 @@ newoption {
}
newoption {
+ trigger = "SANITIZE",
+ description = "Specifies the santizer(s) to use."
+}
+
+newoption {
trigger = "PROJECT",
description = "Select projects to be built. Will look into project folder for files.",
}
@@ -950,14 +955,42 @@ end
buildoptions_cpp {
"-Woverloaded-virtual",
}
-
---ifdef SANITIZE
---CCOMFLAGS += -fsanitize=$(SANITIZE)
+
+if _OPTIONS["SANITIZE"] then
+ buildoptions {
+ "-fsanitize=".. _OPTIONS["SANITIZE"]
+ }
+ linkoptions {
+ "-fsanitize=".. _OPTIONS["SANITIZE"]
+ }
+ if string.find(_OPTIONS["SANITIZE"], "address") then
+ buildoptions {
+ "-fsanitize-address-use-after-scope"
+ }
+ linkoptions {
+ "-fsanitize-address-use-after-scope"
+ }
+ end
+ if string.find(_OPTIONS["SANITIZE"], "undefined") then
+ -- 'function' produces errors without delegates by design
+ -- 'alignment' produces a lot of errors which we are not interested in
+ -- 'nullability' errors are not actually undefined behavior but unintentional
+ buildoptions {
+ "-fno-sanitize=function",
+ "-fno-sanitize=alignment",
+ "-fsanitize=nullability"
+ }
+ linkoptions {
+ "-fno-sanitize=function",
+ "-fno-sanitize=alignment",
+ "-fsanitize=nullability"
+ }
+ end
+end
--ifneq (,$(findstring thread,$(SANITIZE)))
--CCOMFLAGS += -fPIE
--endif
---endif