motiejus/zig

fork of https://codeberg.org/ziglang/zig
git clone https://git.jakstys.lt/motiejus/zig.git
Log | Tree | Refs | README | LICENSE

commit c3e88a21fbe9c9e1d163bb7bef10cc5072aeb19e (tree)
parent 7c5412c7a49ff1bd387dcfdea4e1cbf0985a40d4
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Thu,  3 Apr 2025 07:23:23 +0200

compiler: Recognize -fno-sanitize=<...> in addition to -fsanitize=<...>.

Diffstat:
Msrc/clang_options_data.zig | 2+-
Msrc/main.zig | 10++++++----
Mtools/update_clang_options.zig | 4++++
3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/clang_options_data.zig b/src/clang_options_data.zig @@ -7043,7 +7043,7 @@ joinpd1("fmsc-version="), .{ .name = "fno-sanitize=", .syntax = .comma_joined, - .zig_equivalent = .other, + .zig_equivalent = .no_sanitize, .pd1 = true, .pd2 = false, .psl = false, diff --git a/src/main.zig b/src/main.zig @@ -2217,18 +2217,19 @@ fn buildOutputType( mod_opts.strip = false; create_module.opts.debug_format = .{ .dwarf = .@"64" }; }, - .sanitize => { + .sanitize, .no_sanitize => |t| { + const enable = t == .sanitize; var san_it = std.mem.splitScalar(u8, it.only_arg, ','); var recognized_any = false; while (san_it.next()) |sub_arg| { if (mem.eql(u8, sub_arg, "undefined")) { - mod_opts.sanitize_c = true; + mod_opts.sanitize_c = enable; recognized_any = true; } else if (mem.eql(u8, sub_arg, "thread")) { - mod_opts.sanitize_thread = true; + mod_opts.sanitize_thread = enable; recognized_any = true; } else if (mem.eql(u8, sub_arg, "fuzzer") or mem.eql(u8, sub_arg, "fuzzer-no-link")) { - mod_opts.fuzz = true; + mod_opts.fuzz = enable; recognized_any = true; } } @@ -5904,6 +5905,7 @@ pub const ClangArgIterator = struct { gdwarf32, gdwarf64, sanitize, + no_sanitize, linker_script, dry_run, verbose, diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig @@ -285,6 +285,10 @@ const known_options = [_]KnownOpt{ .ident = "sanitize", }, .{ + .name = "fno-sanitize", + .ident = "no_sanitize", + }, + .{ .name = "T", .ident = "linker_script", },