aboutsummaryrefslogtreecommitdiff
path: root/src/Compilation.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-12-22 20:45:37 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-12-24 01:18:48 -0700
commita4b134746f61a2f07ea5450c0504f51cba8f6be3 (patch)
tree51ca1272b331ae26832d327aef0ffb7915af8a61 /src/Compilation.zig
parent3002856a7ffcd68d91ac6200479f55c15f44b84d (diff)
downloadzig-a4b134746f61a2f07ea5450c0504f51cba8f6be3.tar.gz
zig-a4b134746f61a2f07ea5450c0504f51cba8f6be3.zip
zig cc: support both ubsan and tsan at the same time
Diffstat (limited to 'src/Compilation.zig')
-rw-r--r--src/Compilation.zig11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 6372dbff3a..5c38d131e6 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2076,10 +2076,6 @@ pub fn addCCArgs(
try argv.append("-ffunction-sections");
}
- if (comp.bin_file.options.tsan) {
- try argv.append("-fsanitize=thread");
- }
-
try argv.ensureCapacity(argv.items.len + comp.bin_file.options.framework_dirs.len * 2);
for (comp.bin_file.options.framework_dirs) |framework_dir| {
argv.appendAssumeCapacity("-iframework");
@@ -2203,9 +2199,14 @@ pub fn addCCArgs(
try argv.append("-fomit-frame-pointer");
}
- if (comp.sanitize_c) {
+ if (comp.sanitize_c and !comp.bin_file.options.tsan) {
try argv.append("-fsanitize=undefined");
try argv.append("-fsanitize-trap=undefined");
+ } else if (comp.sanitize_c and comp.bin_file.options.tsan) {
+ try argv.append("-fsanitize=undefined,thread");
+ try argv.append("-fsanitize-trap=undefined");
+ } else if (!comp.sanitize_c and comp.bin_file.options.tsan) {
+ try argv.append("-fsanitize=thread");
}
switch (comp.bin_file.options.optimize_mode) {