zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit b483ec28e389130af63a6924276db6eef8ea4020 (tree)
parent 47d2e5de90faec1221f61255c36e2be81c9e3db3
Author: Meghan Denny <hello@nektro.net>
Date:   Thu,  4 Dec 2025 23:38:36 -0800

tools: better detect '=' in clang options


Diffstat:
Msrc/clang_options_data.zig | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++------------
Mtools/update_clang_options.zig | 2+-
2 files changed, 54 insertions(+), 13 deletions(-)

diff --git a/src/clang_options_data.zig b/src/clang_options_data.zig @@ -1372,7 +1372,7 @@ flagpsl("MT"), .{ .name = "fsanitize=address", .syntax = .flag, - .zig_equivalent = .other, + .zig_equivalent = .sanitize, .pd1 = true, .pd2 = false, .psl = true, @@ -2214,8 +2214,22 @@ flagpd1("nocudalib"), .pd2 = true, .psl = false, }, -flagpd1("mcpu=help"), -flagpd1("mtune=help"), +.{ + .name = "mcpu=help", + .syntax = .flag, + .zig_equivalent = .mcpu, + .pd1 = true, + .pd2 = false, + .psl = false, +}, +.{ + .name = "mtune=help", + .syntax = .flag, + .zig_equivalent = .mcpu, + .pd1 = true, + .pd2 = false, + .psl = false, +}, flagpd1("integrated-as"), flagpd1("no-integrated-as"), flagpd1("fopenmp-is-device"), @@ -2365,12 +2379,12 @@ flagpd1("fno-cuda-approx-transcendentals"), .pd2 = false, .psl = true, }, +flagpd1("shared-libasan"), sepd1("Xmicrosoft-visualc-tools-root"), sepd1("Xmicrosoft-visualc-tools-version"), sepd1("Xmicrosoft-windows-sdk-root"), sepd1("Xmicrosoft-windows-sdk-version"), sepd1("Xmicrosoft-windows-sys-root"), -flagpd1("shared-libasan"), .{ .name = "Qembed_debug", .syntax = .flag, @@ -3204,6 +3218,7 @@ flagpd1("flang-experimental-hlfir"), flagpd1("flarge-sizes"), flagpd1("flat_namespace"), flagpd1("flax-vector-conversions"), +flagpd1("fexperimental-lifetime-safety"), flagpd1("flimit-debug-info"), flagpd1("flogical-abbreviations"), flagpd1("floop-interchange"), @@ -3216,8 +3231,22 @@ flagpd1("fversion-loops-for-stride"), .pd2 = false, .psl = false, }, -flagpd1("flto=auto"), -flagpd1("flto=jobserver"), +.{ + .name = "flto=auto", + .syntax = .flag, + .zig_equivalent = .lto, + .pd1 = true, + .pd2 = false, + .psl = false, +}, +.{ + .name = "flto=jobserver", + .syntax = .flag, + .zig_equivalent = .lto, + .pd1 = true, + .pd2 = false, + .psl = false, +}, flagpd1("flto-unit"), flagpd1("flto-visibility-public-std"), flagpd1("fmath-errno"), @@ -3519,6 +3548,7 @@ flagpd1("fno-keep-static-consts"), flagpd1("fno-keep-system-includes"), flagpd1("fno-knr-functions"), flagpd1("fno-lax-vector-conversions"), +flagpd1("fno-experimental-lifetime-safety"), flagpd1("fno-limit-debug-info"), flagpd1("fno-logical-abbreviations"), flagpd1("fno-loop-interchange"), @@ -3651,6 +3681,7 @@ flagpd1("fno-profile-values"), flagpd1("fno-protect-parens"), flagpd1("fno-pseudo-probe-for-profiling"), flagpd1("fno-ptrauth-auth-traps"), +flagpd1("fno-ptrauth-block-descriptor-pointers"), flagpd1("fno-ptrauth-calls"), flagpd1("fno-ptrauth-elf-got"), flagpd1("fno-ptrauth-function-pointer-type-discrimination"), @@ -3972,6 +4003,7 @@ flagpd1("fprofile-values"), flagpd1("fprotect-parens"), flagpd1("fpseudo-probe-for-profiling"), flagpd1("fptrauth-auth-traps"), +flagpd1("fptrauth-block-descriptor-pointers"), flagpd1("fptrauth-calls"), flagpd1("fptrauth-elf-got"), flagpd1("fptrauth-function-pointer-type-discrimination"), @@ -4503,9 +4535,9 @@ m("maes"), sepd1("main-file-name"), flagpd1("maix32"), flagpd1("maix64"), -m("maix-shared-lib-tls-model-opt"), -m("maix-small-local-dynamic-tls"), -m("maix-small-local-exec-tls"), +flagpd1("maix-shared-lib-tls-model-opt"), +flagpd1("maix-small-local-dynamic-tls"), +flagpd1("maix-small-local-exec-tls"), flagpd1("maix-struct-return"), flagpd1("malign-double"), m("maltivec"), @@ -4530,10 +4562,10 @@ flagpd1("massembler-no-warn"), m("matomics"), m("mavx"), flagpd1("mavx10.1"), -m("mavx10.1-256"), +flagpd1("mavx10.1-256"), m("mavx10.1-512"), flagpd1("mavx10.2"), -m("mavx10.2-256"), +flagpd1("mavx10.2-256"), m("mavx10.2-512"), m("mavx2"), m("mavx512bf16"), @@ -4750,7 +4782,7 @@ flagpd1("mno-apxf"), m("mno-atomics"), m("mno-avx"), flagpd1("mno-avx10.1"), -m("mno-avx10.1-256"), +flagpd1("mno-avx10.1-256"), m("mno-avx10.1-512"), flagpd1("mno-avx10.2"), m("mno-avx2"), @@ -6544,6 +6576,14 @@ joinpd1("msmall-data-threshold="), joinpd1("mvscale-streaming-max="), joinpd1("mvscale-streaming-min="), joinpd1("Wlarge-by-value-copy="), +.{ + .name = "Xthinlto-distributor=", + .syntax = .comma_joined, + .zig_equivalent = .other, + .pd1 = true, + .pd2 = false, + .psl = false, +}, joinpd1("analyzer-constraints="), joinpd1("analyzer-dump-egraph="), jspd1("compatibility_version"), @@ -6562,6 +6602,7 @@ joinpd1("fmodules-prune-after="), }, joinpd1("fopenmp-target-debug="), joinpd1("fsanitize-ignorelist="), +joinpd1("fthinlto-distributor="), joinpd1("fzero-call-used-regs="), jspd1("iframeworkwithsysroot"), joinpd1("mcode-object-version="), diff --git a/tools/update_clang_options.zig b/tools/update_clang_options.zig @@ -593,7 +593,7 @@ const known_options = [_]KnownOpt{ const blacklisted_options = [_][]const u8{}; fn knownOption(name: []const u8) ?[]const u8 { - const chopped_name = if (std.mem.endsWith(u8, name, "=")) name[0 .. name.len - 1] else name; + const chopped_name = if (std.mem.indexOfScalar(u8, name, '=')) |idx| name[0..idx] else name; for (known_options) |item| { if (std.mem.eql(u8, chopped_name, item.name)) { return item.ident;