diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-12-22 20:45:37 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-12-24 01:18:48 -0700 |
| commit | a4b134746f61a2f07ea5450c0504f51cba8f6be3 (patch) | |
| tree | 51ca1272b331ae26832d327aef0ffb7915af8a61 /src/Compilation.zig | |
| parent | 3002856a7ffcd68d91ac6200479f55c15f44b84d (diff) | |
| download | zig-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.zig | 11 |
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) { |
