Commit ceeb230c23

Andrew Kelley <andrew@ziglang.org>
2021-11-22 01:00:41
zig cc: add -ffunction-sections integration
Also update to latest LLVM 13 command line options. See #6290
1 parent b644d49
src/clang_options_data.zig
@@ -132,6 +132,7 @@ flagpd1("Qy"),
 flagpd1("WCL4"),
 flagpd1("Wall"),
 flagpd1("Wdeprecated"),
+flagpd1("Wframe-larger-than"),
 flagpd1("Wlarge-by-value-copy"),
 flagpd1("Wno-deprecated"),
 flagpd1("Wno-rewrite-macros"),
@@ -145,6 +146,7 @@ sepd1("Xassembler"),
 sepd1("Xclang"),
 sepd1("Xcuda-fatbinary"),
 sepd1("Xcuda-ptxas"),
+sepd1("Xflang"),
 .{
     .name = "Xlinker",
     .syntax = .separate,
@@ -1186,7 +1188,7 @@ flagpsl("MT"),
     .psl = true,
 },
 .{
-    .name = "fallback",
+    .name = "exportHeader",
     .syntax = .flag,
     .zig_equivalent = .other,
     .pd1 = true,
@@ -1233,6 +1235,14 @@ flagpsl("MT"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "fsanitize=address",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "help",
     .syntax = .flag,
@@ -1305,6 +1315,14 @@ flagpsl("MT"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "permissive",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "permissive-",
     .syntax = .flag,
@@ -1361,6 +1379,14 @@ flagpsl("MT"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "translateInclude",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "u",
     .syntax = .flag,
@@ -2071,6 +2097,28 @@ flagpd1("analyzer-viz-egraph-graphviz"),
 flagpd1("analyzer-werror"),
 flagpd1("fslp-vectorize-aggressive"),
 flagpd1("fno-slp-vectorize-aggressive"),
+flagpd1("grecord-gcc-switches"),
+flagpd1("gno-record-gcc-switches"),
+flagpd1("nocudainc"),
+flagpd1("nocudalib"),
+.{
+    .name = "system-header-prefix",
+    .syntax = .separate,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
+.{
+    .name = "no-system-header-prefix",
+    .syntax = .separate,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
+flagpd1("integrated-as"),
+flagpd1("no-integrated-as"),
 flagpd1("shared-libasan"),
 .{
     .name = "Gs",
@@ -2202,6 +2250,7 @@ flagpd1("fdefer-pop"),
 flagpd1("fno-defer-pop"),
 flagpd1("fextended-identifiers"),
 flagpd1("fno-extended-identifiers"),
+flagpd1("fno-sanitize-blacklist"),
 flagpd1("fhonor-infinites"),
 flagpd1("fno-honor-infinites"),
 flagpd1("fcuda-rdc"),
@@ -2216,28 +2265,6 @@ flagpd1("fno-tree-vectorize"),
 flagpd1("ftree-slp-vectorize"),
 flagpd1("fno-tree-slp-vectorize"),
 flagpd1("fterminated-vtables"),
-flagpd1("grecord-gcc-switches"),
-flagpd1("gno-record-gcc-switches"),
-flagpd1("nocudainc"),
-flagpd1("nocudalib"),
-.{
-    .name = "system-header-prefix",
-    .syntax = .separate,
-    .zig_equivalent = .other,
-    .pd1 = false,
-    .pd2 = true,
-    .psl = false,
-},
-.{
-    .name = "no-system-header-prefix",
-    .syntax = .separate,
-    .zig_equivalent = .other,
-    .pd1 = false,
-    .pd2 = true,
-    .psl = false,
-},
-flagpd1("integrated-as"),
-flagpd1("no-integrated-as"),
 .{
     .name = "ansi",
     .syntax = .flag,
@@ -2295,6 +2322,7 @@ flagpd1("cl-fp32-correctly-rounded-divide-sqrt"),
 flagpd1("cl-kernel-arg-info"),
 flagpd1("cl-mad-enable"),
 flagpd1("cl-no-signed-zeros"),
+flagpd1("cl-no-stdinc"),
 flagpd1("cl-opt-disable"),
 flagpd1("cl-single-precision-constant"),
 flagpd1("cl-strict-aliasing"),
@@ -2429,6 +2457,7 @@ flagpd1("dynamic"),
     .pd2 = false,
     .psl = false,
 },
+flagpd1("ehcontguard"),
 flagpd1("emit-ast"),
 flagpd1("emit-codegen-only"),
 flagpd1("emit-header-module"),
@@ -2458,6 +2487,7 @@ flagpd1("emit-pch"),
     .pd2 = true,
     .psl = false,
 },
+flagpd1("enable-noundef-analysis"),
 flagpd1("enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang"),
 sepd1("error-on-deserialized-decl"),
 sepd1("exception-model"),
@@ -2491,10 +2521,13 @@ flagpd1("faligned-allocation"),
 flagpd1("fall-intrinsics"),
 flagpd1("fallow-editor-placeholders"),
 flagpd1("fallow-half-arguments-and-returns"),
+flagpd1("fallow-pch-with-different-modules-cache-path"),
 flagpd1("fallow-pch-with-compiler-errors"),
 flagpd1("fallow-pcm-with-compiler-errors"),
 flagpd1("fallow-unsupported"),
+flagpd1("falternative-parameter-statement"),
 flagpd1("faltivec"),
+flagpd1("fanalyzed-objects-for-unparse"),
 flagpd1("fkeep-inline-functions"),
 flagpd1("fansi-escape-codes"),
 flagpd1("fapple-kext"),
@@ -2510,6 +2543,7 @@ flagpd1("fassume-sane-operator-new"),
 flagpd1("fast"),
 flagpd1("fastcp"),
 flagpd1("fastf"),
+flagpd1("fasync-exceptions"),
 flagpd1("fasynchronous-unwind-tables"),
 flagpd1("fauto-profile"),
 flagpd1("fauto-profile-accurate"),
@@ -2570,13 +2604,25 @@ flagpd1("fd-lines-as-code"),
 flagpd1("fd-lines-as-comments"),
 flagpd1("fdata-sections"),
 sepd1("fdebug-compilation-dir"),
+flagpd1("fdebug-dump-all"),
+flagpd1("fdebug-dump-parse-tree"),
+flagpd1("fdebug-dump-parse-tree-no-sema"),
+flagpd1("fdebug-dump-parsing-log"),
+flagpd1("fdebug-dump-provenance"),
+flagpd1("fdebug-dump-symbols"),
 flagpd1("fdebug-info-for-profiling"),
 flagpd1("fdebug-macro"),
+flagpd1("fdebug-measure-parse-tree"),
+flagpd1("fdebug-module-writer"),
 flagpd1("fdebug-pass-arguments"),
 flagpd1("fdebug-pass-manager"),
 flagpd1("fdebug-pass-structure"),
+flagpd1("fdebug-pre-fir-tree"),
 flagpd1("fdebug-ranges-base-address"),
 flagpd1("fdebug-types-section"),
+flagpd1("fdebug-unparse"),
+flagpd1("fdebug-unparse-no-sema"),
+flagpd1("fdebug-unparse-with-symbols"),
 flagpd1("fdebugger-cast-result-to-id"),
 flagpd1("fdebugger-objc-literal"),
 flagpd1("fdebugger-support"),
@@ -2613,6 +2659,8 @@ flagpd1("fdump-fortran-optimized"),
 flagpd1("fdump-fortran-original"),
 flagpd1("fdump-parse-tree"),
 flagpd1("fdump-record-layouts"),
+flagpd1("fdump-record-layouts-canonical"),
+flagpd1("fdump-record-layouts-complete"),
 flagpd1("fdump-record-layouts-simple"),
 flagpd1("fdump-vtable-layouts"),
 flagpd1("fdwarf2-cfi-asm"),
@@ -2647,6 +2695,21 @@ flagpd1("ffine-grained-bitfield-accesses"),
 flagpd1("ffinite-loops"),
 flagpd1("ffinite-math-only"),
 flagpd1("finline-limit"),
+flagpd1("ffixed-a0"),
+flagpd1("ffixed-a1"),
+flagpd1("ffixed-a2"),
+flagpd1("ffixed-a3"),
+flagpd1("ffixed-a4"),
+flagpd1("ffixed-a5"),
+flagpd1("ffixed-a6"),
+flagpd1("ffixed-d0"),
+flagpd1("ffixed-d1"),
+flagpd1("ffixed-d2"),
+flagpd1("ffixed-d3"),
+flagpd1("ffixed-d4"),
+flagpd1("ffixed-d5"),
+flagpd1("ffixed-d6"),
+flagpd1("ffixed-d7"),
 flagpd1("ffixed-form"),
 flagpd1("ffixed-point"),
 flagpd1("ffixed-r19"),
@@ -2693,11 +2756,27 @@ flagpd1("ffreestanding"),
 flagpd1("ffriend-injection"),
 flagpd1("ffrontend-optimize"),
 flagpd1("ffunction-attribute-list"),
-flagpd1("ffunction-sections"),
+.{
+    .name = "ffunction-sections",
+    .syntax = .flag,
+    .zig_equivalent = .function_sections,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = false,
+},
 flagpd1("fgcse"),
 flagpd1("fgcse-after-reload"),
 flagpd1("fgcse-las"),
 flagpd1("fgcse-sm"),
+.{
+    .name = "fget-definition",
+    .syntax = .{.multi_arg=3},
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = false,
+},
+flagpd1("fget-symbols-sources"),
 flagpd1("fglobal-isel"),
 flagpd1("fgnu"),
 flagpd1("fgnu89-inline"),
@@ -2707,10 +2786,13 @@ flagpd1("fgnu-runtime"),
 flagpd1("fgpu-allow-device-init"),
 flagpd1("fgpu-defer-diag"),
 flagpd1("fgpu-exclude-wrong-side-overloads"),
+flagpd1("fgpu-flush-denormals-to-zero"),
 flagpd1("fgpu-rdc"),
+flagpd1("fgpu-sanitize"),
 flagpd1("fhalf-no-semantic-interposition"),
 flagpd1("fheinous-gnu-extensions"),
 flagpd1("fhip-dump-offload-linker-script"),
+flagpd1("fhip-fp32-correctly-rounded-divide-sqrt"),
 flagpd1("fhip-new-launch-api"),
 flagpd1("fhonor-infinities"),
 flagpd1("fhonor-nans"),
@@ -2736,7 +2818,7 @@ flagpd1("finstrument-functions-after-inlining"),
 flagpd1("finteger-4-integer-8"),
 flagpd1("fintegrated-as"),
 flagpd1("fintegrated-cc1"),
-flagpd1("fintrinsic-modules-path"),
+sepd1("fintrinsic-modules-path"),
 flagpd1("fipa-cp"),
 flagpd1("fivopts"),
 flagpd1("fix-only-warnings"),
@@ -2746,10 +2828,12 @@ flagpd1("fixit-recompile"),
 flagpd1("fixit-to-temporary"),
 flagpd1("fjump-tables"),
 flagpd1("fkeep-static-consts"),
+flagpd1("flarge-sizes"),
 flagpd1("flat_namespace"),
 flagpd1("flax-vector-conversions"),
 flagpd1("flegacy-pass-manager"),
 flagpd1("flimit-debug-info"),
+flagpd1("flogical-abbreviations"),
 .{
     .name = "flto",
     .syntax = .flag,
@@ -2758,6 +2842,8 @@ flagpd1("flimit-debug-info"),
     .pd2 = false,
     .psl = false,
 },
+flagpd1("flto=auto"),
+flagpd1("flto=jobserver"),
 flagpd1("flto-unit"),
 flagpd1("flto-visibility-public-std"),
 sepd1("fmacro-backtrace-limit"),
@@ -2772,7 +2858,6 @@ flagpd1("fmodule-file-deps"),
 sepd1("fmodule-implementation-of"),
 flagpd1("fmodule-map-file-home-is-cwd"),
 flagpd1("fmodule-maps"),
-sepd1("fmodule-name"),
 flagpd1("fmodule-private"),
 flagpd1("fmodules"),
 flagpd1("fmodules-codegen"),
@@ -2829,6 +2914,7 @@ flagpd1("fno-aligned-allocation"),
 flagpd1("fno-all-intrinsics"),
 flagpd1("fno-allow-editor-placeholders"),
 flagpd1("fno-altivec"),
+flagpd1("fno-analyzed-objects-for-unparse"),
 flagpd1("fno-keep-inline-functions"),
 flagpd1("fno-apple-pragma-pack"),
 flagpd1("fno-application-extension"),
@@ -2836,6 +2922,7 @@ flagpd1("fno-asm"),
 flagpd1("fno-asm-blocks"),
 flagpd1("fno-associative-math"),
 flagpd1("fno-assume-sane-operator-new"),
+flagpd1("fno-async-exceptions"),
 flagpd1("fno-asynchronous-unwind-tables"),
 flagpd1("fno-auto-profile"),
 flagpd1("fno-auto-profile-accurate"),
@@ -2879,10 +2966,7 @@ flagpd1("fno-debug-pass-manager"),
 flagpd1("fno-debug-ranges-base-address"),
 flagpd1("fno-debug-types-section"),
 flagpd1("fno-declspec"),
-flagpd1("fno-default-double-8"),
 flagpd1("fno-default-inline"),
-flagpd1("fno-default-integer-8"),
-flagpd1("fno-default-real-8"),
 flagpd1("fno-delayed-template-parsing"),
 flagpd1("fno-delete-null-pointer-checks"),
 flagpd1("fno-deprecated-macro"),
@@ -2925,18 +3009,23 @@ flagpd1("fno-fine-grained-bitfield-accesses"),
 flagpd1("fno-finite-loops"),
 flagpd1("fno-finite-math-only"),
 flagpd1("fno-inline-limit"),
-flagpd1("fno-fixed-form"),
 flagpd1("fno-fixed-point"),
 flagpd1("fno-float-store"),
 flagpd1("fno-for-scope"),
 flagpd1("fno-force-dwarf-frame"),
 flagpd1("fno-force-emit-vtables"),
 flagpd1("fno-force-enable-int128"),
-flagpd1("fno-free-form"),
 flagpd1("fno-friend-injection"),
 flagpd1("fno-frontend-optimize"),
 flagpd1("fno-function-attribute-list"),
-flagpd1("fno-function-sections"),
+.{
+    .name = "fno-function-sections",
+    .syntax = .flag,
+    .zig_equivalent = .no_function_sections,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = false,
+},
 flagpd1("fno-gcse"),
 flagpd1("fno-gcse-after-reload"),
 flagpd1("fno-gcse-las"),
@@ -2949,7 +3038,10 @@ flagpd1("fno-gnu-keywords"),
 flagpd1("fno-gpu-allow-device-init"),
 flagpd1("fno-gpu-defer-diag"),
 flagpd1("fno-gpu-exclude-wrong-side-overloads"),
+flagpd1("fno-gpu-flush-denormals-to-zero"),
 flagpd1("fno-gpu-rdc"),
+flagpd1("fno-gpu-sanitize"),
+flagpd1("fno-hip-fp32-correctly-rounded-divide-sqrt"),
 flagpd1("fno-hip-new-launch-api"),
 flagpd1("fno-honor-infinities"),
 flagpd1("fno-honor-nans"),
@@ -2966,7 +3058,6 @@ flagpd1("fno-inline-small-functions"),
 flagpd1("fno-integer-4-integer-8"),
 flagpd1("fno-integrated-as"),
 flagpd1("fno-integrated-cc1"),
-flagpd1("fno-intrinsic-modules-path"),
 flagpd1("fno-ipa-cp"),
 flagpd1("fno-ivopts"),
 flagpd1("fno-jump-tables"),
@@ -2974,6 +3065,7 @@ flagpd1("fno-keep-static-consts"),
 flagpd1("fno-lax-vector-conversions"),
 flagpd1("fno-legacy-pass-manager"),
 flagpd1("fno-limit-debug-info"),
+flagpd1("fno-logical-abbreviations"),
 .{
     .name = "fno-lto",
     .syntax = .flag,
@@ -3009,11 +3101,13 @@ flagpd1("fno-non-call-exceptions"),
 flagpd1("fno-objc-arc"),
 flagpd1("fno-objc-arc-exceptions"),
 flagpd1("fno-objc-convert-messages-to-runtime-calls"),
+flagpd1("fno-objc-encode-cxx-class-template-spec"),
 flagpd1("fno-objc-exceptions"),
 flagpd1("fno-objc-infer-related-result-type"),
 flagpd1("fno-objc-legacy-dispatch"),
 flagpd1("fno-objc-nonfragile-abi"),
 flagpd1("fno-objc-weak"),
+flagpd1("fno-offload-lto"),
 .{
     .name = "fno-omit-frame-pointer",
     .syntax = .flag,
@@ -3025,9 +3119,9 @@ flagpd1("fno-objc-weak"),
 flagpd1("fno-openmp"),
 flagpd1("fno-openmp-cuda-force-full-runtime"),
 flagpd1("fno-openmp-cuda-mode"),
-flagpd1("fno-openmp-cuda-parallel-target-regions"),
 flagpd1("fno-openmp-optimistic-collapse"),
 flagpd1("fno-openmp-simd"),
+flagpd1("fno-openmp-target-new-runtime"),
 flagpd1("fno-operator-names"),
 flagpd1("fno-optimize-sibling-calls"),
 flagpd1("fno-pack-derived"),
@@ -3105,12 +3199,14 @@ flagpd1("fno-rtlib-add-rpath"),
 flagpd1("fno-rtti"),
 flagpd1("fno-rtti-data"),
 flagpd1("fno-rwpi"),
+flagpd1("fno-sanitize-address-outline-instrumentation"),
 flagpd1("fno-sanitize-address-poison-custom-array-cookie"),
 flagpd1("fno-sanitize-address-use-after-scope"),
 flagpd1("fno-sanitize-address-use-odr-indicator"),
-flagpd1("fno-sanitize-blacklist"),
 flagpd1("fno-sanitize-cfi-canonical-jump-tables"),
 flagpd1("fno-sanitize-cfi-cross-dso"),
+flagpd1("fno-sanitize-hwaddress-experimental-aliasing"),
+flagpd1("fno-sanitize-ignorelist"),
 flagpd1("fno-sanitize-link-c++-runtime"),
 flagpd1("fno-sanitize-link-runtime"),
 flagpd1("fno-sanitize-memory-track-origins"),
@@ -3147,6 +3243,7 @@ flagpd1("fno-spell-checking"),
 flagpd1("fno-split-dwarf-inlining"),
 flagpd1("fno-split-lto-unit"),
 flagpd1("fno-split-machine-functions"),
+flagpd1("fno-split-stack"),
 flagpd1("fno-stack-arrays"),
 flagpd1("fno-stack-check"),
 flagpd1("fno-stack-clash-protection"),
@@ -3193,6 +3290,7 @@ flagpd1("fno-unswitch-loops"),
     .pd2 = false,
     .psl = false,
 },
+flagpd1("fno-use-ctor-homing"),
 flagpd1("fno-use-cxa-atexit"),
 flagpd1("fno-use-init-array"),
 flagpd1("fno-use-line-directives"),
@@ -3205,6 +3303,7 @@ flagpd1("fno-vectorize"),
 flagpd1("fno-verbose-asm"),
 flagpd1("fno-virtual-function-elimination"),
 flagpd1("fno-visibility-from-dllstorageclass"),
+flagpd1("fno-visibility-inlines-hidden"),
 flagpd1("fno-visibility-inlines-hidden-static-local-var"),
 flagpd1("fno-wchar"),
 flagpd1("fno-web"),
@@ -3214,6 +3313,7 @@ flagpd1("fno-whole-program-vtables"),
 flagpd1("fno-working-directory"),
 flagpd1("fno-wrapv"),
 flagpd1("fno-xl-pragma-pack"),
+flagpd1("fno-xor-operator"),
 flagpd1("fno-xray-always-emit-customevents"),
 flagpd1("fno-xray-always-emit-typedevents"),
 flagpd1("fno-xray-function-index"),
@@ -3230,6 +3330,8 @@ flagpd1("fobjc-arc-exceptions"),
 flagpd1("fobjc-atdefs"),
 flagpd1("fobjc-call-cxx-cdtors"),
 flagpd1("fobjc-convert-messages-to-runtime-calls"),
+flagpd1("fobjc-disable-direct-methods-for-testing"),
+flagpd1("fobjc-encode-cxx-class-template-spec"),
 flagpd1("fobjc-exceptions"),
 flagpd1("fobjc-gc"),
 flagpd1("fobjc-gc-only"),
@@ -3242,6 +3344,7 @@ flagpd1("fobjc-runtime-has-weak"),
 flagpd1("fobjc-sender-dependent-dispatch"),
 flagpd1("fobjc-subscripting-legacy-runtime"),
 flagpd1("fobjc-weak"),
+flagpd1("foffload-lto"),
 .{
     .name = "fomit-frame-pointer",
     .syntax = .flag,
@@ -3250,18 +3353,20 @@ flagpd1("fobjc-weak"),
     .pd2 = false,
     .psl = false,
 },
+flagpd1("fopenacc"),
 flagpd1("fopenmp"),
 flagpd1("fopenmp-cuda-force-full-runtime"),
 flagpd1("fopenmp-cuda-mode"),
-flagpd1("fopenmp-cuda-parallel-target-regions"),
 flagpd1("fopenmp-enable-irbuilder"),
 sepd1("fopenmp-host-ir-file-path"),
 flagpd1("fopenmp-is-device"),
 flagpd1("fopenmp-optimistic-collapse"),
 flagpd1("fopenmp-relocatable-target"),
 flagpd1("fopenmp-simd"),
+flagpd1("fopenmp-target-new-runtime"),
 flagpd1("fopenmp-use-tls"),
 sepd1("foperator-arrow-depth"),
+flagpd1("foperator-names"),
 flagpd1("foptimize-sibling-calls"),
 flagpd1("force_cpusubtype_ALL"),
 flagpd1("force_flat_namespace"),
@@ -3310,7 +3415,6 @@ flagpd1("fprofile-generate"),
 flagpd1("fprofile-generate-sampling"),
 flagpd1("fprofile-instr-generate"),
 flagpd1("fprofile-instr-use"),
-sepd1("fprofile-remapping-file"),
 flagpd1("fprofile-reusedist"),
 flagpd1("fprofile-sample-accurate"),
 flagpd1("fprofile-sample-use"),
@@ -3350,7 +3454,6 @@ flagpd1("freroll-loops"),
 flagpd1("fretain-comments-from-system-headers"),
 flagpd1("frewrite-imports"),
 flagpd1("frewrite-includes"),
-sepd1("frewrite-map-file"),
 flagpd1("fripa"),
 flagpd1("fropi"),
 flagpd1("frounding-math"),
@@ -3359,6 +3462,7 @@ flagpd1("frtti"),
 flagpd1("frtti-data"),
 flagpd1("frwpi"),
 flagpd1("fsanitize-address-globals-dead-stripping"),
+flagpd1("fsanitize-address-outline-instrumentation"),
 flagpd1("fsanitize-address-poison-custom-array-cookie"),
 flagpd1("fsanitize-address-use-after-scope"),
 flagpd1("fsanitize-address-use-odr-indicator"),
@@ -3378,6 +3482,7 @@ flagpd1("fsanitize-coverage-trace-div"),
 flagpd1("fsanitize-coverage-trace-gep"),
 flagpd1("fsanitize-coverage-trace-pc"),
 flagpd1("fsanitize-coverage-trace-pc-guard"),
+flagpd1("fsanitize-hwaddress-experimental-aliasing"),
 flagpd1("fsanitize-link-c++-runtime"),
 flagpd1("fsanitize-link-runtime"),
 flagpd1("fsanitize-memory-track-origins"),
@@ -3400,6 +3505,7 @@ flagpd1("fsemantic-interposition"),
 flagpd1("fshort-enums"),
 flagpd1("fshort-wchar"),
 flagpd1("fshow-column"),
+flagpd1("fshow-skipped-includes"),
 flagpd1("fshow-source-location"),
 flagpd1("fsign-zero"),
 flagpd1("fsignaling-math"),
@@ -3426,6 +3532,7 @@ flagpd1("fstack-protector"),
 flagpd1("fstack-protector-all"),
 flagpd1("fstack-protector-strong"),
 flagpd1("fstack-size-section"),
+flagpd1("fstack-usage"),
 flagpd1("fstandalone-debug"),
 flagpd1("fstrength-reduce"),
 flagpd1("fstrict-aliasing"),
@@ -3437,6 +3544,7 @@ flagpd1("fstrict-vtable-pointers"),
 flagpd1("fstruct-path-tbaa"),
 flagpd1("fsycl"),
 flagpd1("fsycl-is-device"),
+flagpd1("fsycl-is-host"),
 flagpd1("fsyntax-only"),
 flagpd1("fsystem-module"),
 sepd1("ftabstop"),
@@ -3491,6 +3599,7 @@ flagpd1("fvariable-expansion-in-unroller"),
 flagpd1("fvect-cost-model"),
 flagpd1("fvectorize"),
 flagpd1("fverbose-asm"),
+flagpd1("fverify-debuginfo-preserve"),
 flagpd1("fvirtual-function-elimination"),
 sepd1("fvisibility"),
 flagpd1("fvisibility-from-dllstorageclass"),
@@ -3506,6 +3615,7 @@ flagpd1("fwhole-program-vtables"),
 flagpd1("fwrapv"),
 flagpd1("fwritable-strings"),
 flagpd1("fxl-pragma-pack"),
+flagpd1("fxor-operator"),
 flagpd1("fxray-always-emit-customevents"),
 flagpd1("fxray-always-emit-typedevents"),
 flagpd1("fxray-function-index"),
@@ -3537,6 +3647,7 @@ sepd1("gcc-toolchain"),
 flagpd1("gcodeview"),
 flagpd1("gcodeview-ghash"),
 flagpd1("gcolumn-info"),
+flagpd1("gdbx"),
 flagpd1("gdwarf"),
 flagpd1("gdwarf32"),
 flagpd1("gdwarf64"),
@@ -3577,6 +3688,14 @@ flagpd1("gno-pubnames"),
 flagpd1("gno-record-command-line"),
 flagpd1("gno-split-dwarf"),
 flagpd1("gno-strict-dwarf"),
+.{
+    .name = "gpu-bundle-output",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
 .{
     .name = "gpu-use-aux-triple-only",
     .syntax = .flag,
@@ -3627,6 +3746,12 @@ flagpd1("m32"),
 flagpd1("m3dnow"),
 flagpd1("m3dnowa"),
 flagpd1("m64"),
+flagpd1("m68000"),
+flagpd1("m68010"),
+flagpd1("m68020"),
+flagpd1("m68030"),
+flagpd1("m68040"),
+flagpd1("m68060"),
 flagpd1("m80387"),
 flagpd1("mseses"),
 flagpd1("mabi=ieeelongdouble"),
@@ -3639,6 +3764,7 @@ sepd1("main-file-name"),
 flagpd1("maix-struct-return"),
 flagpd1("malign-double"),
 flagpd1("maltivec"),
+flagpd1("mamdgpu-ieee"),
 flagpd1("mamx-bf16"),
 flagpd1("mamx-tile"),
 flagpd1("marm"),
@@ -3804,6 +3930,7 @@ flagpd1("mno-abicalls"),
 flagpd1("mno-adx"),
 flagpd1("mno-aes"),
 flagpd1("mno-altivec"),
+flagpd1("mno-amdgpu-ieee"),
 flagpd1("mno-amx-bf16"),
 flagpd1("mno-amx-int8"),
 flagpd1("mno-amx-tile"),
@@ -3915,7 +4042,6 @@ flagpd1("mno-pascal-strings"),
 flagpd1("mno-pclmul"),
 flagpd1("mno-pconfig"),
 flagpd1("mno-pcrel"),
-flagpd1("mno-pie-copy-relocations"),
 flagpd1("mno-pku"),
 flagpd1("mno-popcnt"),
 flagpd1("mno-popcntd"),
@@ -3923,6 +4049,7 @@ flagpd1("mno-power10-vector"),
 flagpd1("mno-power8-vector"),
 flagpd1("mno-power9-vector"),
 flagpd1("mno-prefetchwt1"),
+flagpd1("mno-prefixed"),
 flagpd1("mno-prfchw"),
 flagpd1("mno-ptwrite"),
 flagpd1("mno-pure-code"),
@@ -3970,12 +4097,12 @@ flagpd1("mno-stack-arg-probe"),
 flagpd1("mno-stackrealign"),
 flagpd1("mno-tail-call"),
 flagpd1("mno-tbm"),
+flagpd1("mno-tgsplit"),
 flagpd1("mno-thumb"),
 flagpd1("mno-tls-direct-seg-refs"),
 flagpd1("mno-tsxldtrk"),
 flagpd1("mno-uintr"),
 flagpd1("mno-unaligned-access"),
-flagpd1("mno-unimplemented-simd128"),
 flagpd1("mno-unsafe-fp-atomics"),
 flagpd1("mno-vaes"),
 flagpd1("mno-virt"),
@@ -4006,8 +4133,10 @@ flagpd1("mnvj"),
 flagpd1("mnvs"),
 flagpd1("modd-spreg"),
 sepd1("module-dependency-dir"),
+sepd1("module-dir"),
 flagpd1("module-file-deps"),
 flagpd1("module-file-info"),
+sepd1("module-suffix"),
 flagpd1("momit-leaf-frame-pointer"),
 flagpd1("moutline"),
 flagpd1("moutline-atomics"),
@@ -4018,7 +4147,6 @@ flagpd1("mpascal-strings"),
 flagpd1("mpclmul"),
 flagpd1("mpconfig"),
 flagpd1("mpcrel"),
-flagpd1("mpie-copy-relocations"),
 flagpd1("mpku"),
 flagpd1("mpopcnt"),
 flagpd1("mpopcntd"),
@@ -4027,7 +4155,9 @@ flagpd1("mcrypto"),
 flagpd1("mpower8-vector"),
 flagpd1("mpower9-vector"),
 flagpd1("mprefetchwt1"),
+flagpd1("mprefixed"),
 flagpd1("mprfchw"),
+flagpd1("mprivileged"),
 flagpd1("mptwrite"),
 flagpd1("mpure-code"),
 flagpd1("mqdsp6-compat"),
@@ -4062,6 +4192,7 @@ sepd1("mrelocation-model"),
 flagpd1("mrestrict-it"),
 flagpd1("mretpoline"),
 flagpd1("mretpoline-external-thunk"),
+flagpd1("mrop-protect"),
 flagpd1("mrtd"),
 flagpd1("mrtm"),
 flagpd1("msahf"),
@@ -4096,6 +4227,7 @@ sepd1("mt-migrate-directory"),
 flagpd1("mtail-call"),
 flagpd1("mamx-int8"),
 flagpd1("mtbm"),
+flagpd1("mtgsplit"),
 sepd1("mthread-model"),
 flagpd1("mthumb"),
 flagpd1("mtls-direct-seg-refs"),
@@ -4108,7 +4240,6 @@ flagpd1("multi_module"),
 sepd1("multiply_defined"),
 sepd1("multiply_defined_unused"),
 flagpd1("munaligned-access"),
-flagpd1("munimplemented-simd128"),
 flagpd1("munsafe-fp-atomics"),
 flagpd1("munwind-tables"),
 flagpd1("mv5"),
@@ -4119,6 +4250,7 @@ flagpd1("mv65"),
 flagpd1("mv66"),
 flagpd1("mv67"),
 flagpd1("mv67t"),
+flagpd1("mv68"),
 flagpd1("mvaes"),
 flagpd1("mvirt"),
 flagpd1("mvpclmulqdq"),
@@ -4163,6 +4295,14 @@ flagpd1("no-cpp-precomp"),
     .psl = false,
 },
 flagpd1("no-emit-llvm-uselists"),
+.{
+    .name = "no-gpu-bundle-output",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
 flagpd1("no-implicit-float"),
 .{
     .name = "no-integrated-cpp",
@@ -4189,6 +4329,7 @@ flagpd1("no-implicit-float"),
     .psl = false,
 },
 flagpd1("no-pthread"),
+flagpd1("no-round-trip-args"),
 flagpd1("no-struct-path-tbaa"),
 flagpd1("nobuiltininc"),
 flagpd1("nocpp"),
@@ -4370,6 +4511,14 @@ flagpd1("print-ivar-layout"),
     .pd2 = true,
     .psl = false,
 },
+.{
+    .name = "print-multiarch",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = true,
+    .psl = false,
+},
 flagpd1("print-preamble"),
 .{
     .name = "print-resource-dir",
@@ -4379,6 +4528,22 @@ flagpd1("print-preamble"),
     .pd2 = true,
     .psl = false,
 },
+.{
+    .name = "print-rocm-search-dirs",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = true,
+    .psl = false,
+},
+.{
+    .name = "print-runtime-dir",
+    .syntax = .flag,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = true,
+    .psl = false,
+},
 .{
     .name = "print-search-dirs",
     .syntax = .flag,
@@ -4442,6 +4607,7 @@ flagpd1("rewrite-legacy-objc"),
 flagpd1("rewrite-macros"),
 flagpd1("rewrite-objc"),
 flagpd1("rewrite-test"),
+flagpd1("round-trip-args"),
 sepd1("rpath"),
 .{
     .name = "s",
@@ -4560,9 +4726,9 @@ flagpd1("single_module"),
 },
 sepd1("split-dwarf-file"),
 sepd1("split-dwarf-output"),
-flagpd1("split-stacks"),
 sepd1("stack-protector"),
 sepd1("stack-protector-buffer-size"),
+sepd1("stack-usage-file"),
 .{
     .name = "static",
     .syntax = .flag,
@@ -4662,6 +4828,7 @@ sepd1("weak_framework"),
 sepd1("weak_library"),
 sepd1("weak_reference_mismatches"),
 flagpd1("whatsloaded"),
+flagpd1("why_load"),
 flagpd1("whyload"),
 .{
     .name = "z",
@@ -4675,30 +4842,66 @@ joinpd1("fsanitize-undefined-strip-path-components="),
 joinpd1("fopenmp-cuda-teams-reduction-recs-num="),
 joinpd1("fvisibility-externs-nodllstorageclass="),
 joinpd1("analyzer-config-compatibility-mode="),
+joinpd1("fsanitize-address-use-after-return="),
+.{
+    .name = "fsanitize-address-use-after-return",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 joinpd1("ftrivial-auto-var-init-stop-after="),
+joinpd1("fverify-debuginfo-preserve-export="),
 joinpd1("fpatchable-function-entry-offset="),
 joinpd1("analyzer-inline-max-stack-depth="),
 joinpd1("fsanitize-address-field-padding="),
+.{
+    .name = "fno-sanitize-address-vcasan-lib",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 joinpd1("fdiagnostics-hotness-threshold="),
 joinpd1("fsanitize-memory-track-origins="),
 joinpd1("mwatchos-simulator-version-min="),
+joinpd1("fsanitize-coverage-ignorelist="),
 joinpd1("fvisibility-externs-dllimport="),
 joinpd1("fvisibility-nodllstorageclass="),
 joinpd1("fxray-selected-function-group="),
 joinpd1("mappletvsimulator-version-min="),
 joinpd1("mstack-protector-guard-offset="),
+.{
+    .name = "sourceDependencies:directives",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 joinpd1("fsanitize-coverage-whitelist="),
 joinpd1("fsanitize-coverage-blacklist="),
 joinpd1("fobjc-nonfragile-abi-version="),
 joinpd1("fprofile-instrument-use-path="),
 joinpd1("fsanitize-coverage-allowlist="),
-joinpd1("fsanitize-coverage-blocklist="),
 jspd1("fxray-instrumentation-bundle="),
 joinpd1("miphonesimulator-version-min="),
+joinpd1("fsanitize-address-destructor="),
 joinpd1("faddress-space-map-mangling="),
 joinpd1("foptimization-record-passes="),
+joinpd1("fsanitize-system-ignorelist="),
 joinpd1("ftest-module-file-extension="),
 jspd1("fxray-instruction-threshold="),
+.{
+    .name = "libomptarget-amdgcn-bc-path=",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
 joinpd1("mno-default-build-attributes"),
 joinpd1("mtvos-simulator-version-min="),
 joinpd1("mwatchsimulator-version-min="),
@@ -4711,12 +4914,12 @@ joinpd1("mwatchsimulator-version-min="),
     .psl = false,
 },
 joinpd1("objcmt-white-list-dir-path="),
+joinpd1("fsanitize-system-blacklist="),
 joinpd1("error-on-deserialized-decl="),
 joinpd1("fconstexpr-backtrace-limit="),
 joinpd1("fdiagnostics-show-category="),
 joinpd1("fdiagnostics-show-location="),
 joinpd1("fopenmp-cuda-blocks-per-sm="),
-joinpd1("fsanitize-system-blacklist="),
 jspd1("fxray-instruction-threshold"),
 joinpd1("headerpad_max_install_names"),
 .{
@@ -4737,6 +4940,7 @@ joinpd1("mstack-protector-guard-reg="),
     .pd2 = true,
     .psl = false,
 },
+joinpd1("fcoverage-compilation-dir="),
 joinpd1("fms-compatibility-version="),
 joinpd1("fopenmp-cuda-number-of-sm="),
 joinpd1("foptimization-record-file="),
@@ -4836,6 +5040,8 @@ joinpd1("Wnonportable-cfstrings"),
 joinpd1("fbasic-block-sections="),
 joinpd1("fdefault-calling-conv="),
 joinpd1("fdenormal-fp-math-f32="),
+joinpd1("ffile-compilation-dir="),
+joinpd1("fgpu-inline-threshold="),
 joinpd1("fmax-subrecord-length="),
 joinpd1("fmodules-ignore-macro="),
 .{
@@ -4860,6 +5066,7 @@ joinpd1("analyzer-constraints="),
 joinpd1("analyzer-dump-egraph="),
 jspd1("compatibility_version"),
 jspd1("dylinker_install_name"),
+joinpd1("fcoverage-prefix-map="),
 joinpd1("fcs-profile-generate="),
 joinpd1("fmodules-prune-after="),
 .{
@@ -4870,6 +5077,7 @@ joinpd1("fmodules-prune-after="),
     .pd2 = false,
     .psl = false,
 },
+joinpd1("fsanitize-ignorelist="),
 jspd1("iframeworkwithsysroot"),
 joinpd1("mcode-object-version="),
 joinpd1("mpad-max-prefix-size="),
@@ -4900,6 +5108,8 @@ joinpd1("mwatchos-version-min="),
     .pd2 = true,
     .psl = false,
 },
+joinpd1("faltivec-src-compat="),
+joinpd1("fsanitize-blacklist="),
 .{
     .name = "hip-device-lib-path=",
     .syntax = .joined,
@@ -4915,9 +5125,7 @@ joinpd1("fmax-stack-var-size="),
 joinpd1("fmodules-cache-path="),
 joinpd1("fmodules-embed-file="),
 joinpd1("fprofile-instrument="),
-joinpd1("fprofile-prefix-map="),
 joinpd1("fprofile-sample-use="),
-joinpd1("fsanitize-blacklist="),
 joinpd1("mmacosx-version-min="),
 .{
     .name = "no-cuda-include-ptx=",
@@ -4932,6 +5140,7 @@ joinpd1("code-completion-at="),
 joinpd1("coverage-data-file="),
 joinpd1("fblas-matmul-limit="),
 joinpd1("fdiagnostics-color="),
+joinpd1("ffixed-line-length="),
 joinpd1("ffixed-line-length-"),
 joinpd1("flimited-precision="),
 joinpd1("fprofile-instr-use="),
@@ -4964,6 +5173,14 @@ joinpd1("target-sdk-version="),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "sourceDependencies",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "include-directory=",
     .syntax = .joined,
@@ -4994,6 +5211,7 @@ joinpd1("fcompile-resource="),
 joinpd1("fdebug-prefix-map="),
 joinpd1("fdenormal-fp-math="),
 joinpd1("fexcess-precision="),
+joinpd1("fextend-arguments="),
 joinpd1("ffree-line-length-"),
 joinpd1("fmacro-prefix-map="),
 .{
@@ -5023,6 +5241,14 @@ joinpd1("msmall-data-limit="),
 joinpd1("mstack-probe-size="),
 joinpd1("mtvos-version-min="),
 joinpd1("working-directory="),
+.{
+    .name = "amdgpu-arch-tool=",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
 joinpd1("analyze-function="),
 joinpd1("analyzer-checker="),
 joinpd1("coverage-version="),
@@ -5041,6 +5267,7 @@ joinpd1("ffile-prefix-map="),
 joinpd1("fmodule-map-file="),
 joinpd1("fobjc-arc-cxxlib="),
 joinpd1("fproc-stat-report"),
+joinpd1("fwarn-stack-size="),
 jspd1("iwithprefixbefore"),
 joinpd1("malign-functions="),
 joinpd1("mios-version-min="),
@@ -5055,6 +5282,22 @@ joinpd1("msve-vector-bits="),
     .psl = false,
 },
 jspd1("working-directory"),
+.{
+    .name = "headerUnit:angle",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
+.{
+    .name = "headerUnit:quote",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 joinpd1("analyzer-output="),
 .{
     .name = "config-user-dir=",
@@ -5198,6 +5441,14 @@ joinpd1("preamble-bytes="),
     .pd2 = false,
     .psl = false,
 },
+.{
+    .name = "vctoolsversion",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "bootclasspath=",
     .syntax = .joined,
@@ -5261,6 +5512,30 @@ joinpd1("vtordisp-mode="),
 joinpd1("Rpass-missed="),
 joinpd1("Wlarger-than-"),
 joinpd1("Wlarger-than="),
+.{
+    .name = "experimental:",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
+.{
+    .name = "external:env:",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
+.{
+    .name = "winsdkversion",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "define-macro=",
     .syntax = .joined,
@@ -5295,6 +5570,7 @@ joinpd1("fmsc-version="),
     .pd2 = false,
     .psl = false,
 },
+joinpd1("foffload-lto="),
 joinpd1("fpack-struct="),
 joinpd1("fpass-plugin="),
 joinpd1("fprofile-dir="),
@@ -5392,6 +5668,14 @@ jspd1("sub_umbrella"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "headerName:",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "for-linker=",
     .syntax = .joined,
@@ -5467,6 +5751,22 @@ jspd1("sub_library"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "external:I",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
+.{
+    .name = "headerUnit",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "vctoolsdir",
     .syntax = .joined_or_separate,
@@ -5475,6 +5775,14 @@ jspd1("sub_library"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "winsysroot",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "classpath=",
     .syntax = .joined,
@@ -5503,6 +5811,7 @@ joinpd1("flto-jobs="),
     .pd2 = false,
     .psl = false,
 },
+joinpd1("fuse-cuid="),
 jspd1("iframework"),
 joinpd1("mtls-size="),
 .{
@@ -5530,6 +5839,30 @@ joinpd1("segs_read_"),
     .pd2 = false,
     .psl = true,
 },
+.{
+    .name = "external:",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
+.{
+    .name = "reference",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
+.{
+    .name = "winsdkdir",
+    .syntax = .joined_or_separate,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "encoding=",
     .syntax = .joined,
@@ -5566,8 +5899,17 @@ joinpd1("ast-dump="),
 jspd1("c-isystem"),
 joinpd1("fcoarray="),
 joinpd1("fconvert="),
+joinpd1("fc++-abi="),
 joinpd1("fextdirs="),
 joinpd1("ftabstop="),
+.{
+    .name = "hip-path=",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = false,
+    .pd2 = true,
+    .psl = false,
+},
 jspd1("idirafter"),
 joinpd1("mregparm="),
 joinpd1("sycl-std="),
@@ -5731,6 +6073,14 @@ joinpd1("Rpass="),
     .pd2 = false,
     .psl = false,
 },
+.{
+    .name = "await:",
+    .syntax = .joined,
+    .zig_equivalent = .other,
+    .pd1 = true,
+    .pd2 = false,
+    .psl = true,
+},
 .{
     .name = "clang:",
     .syntax = .joined,
@@ -5858,6 +6208,7 @@ jspd1("Ttext"),
     .pd2 = true,
     .psl = false,
 },
+joinpd1("cuid="),
 .{
     .name = "flto=",
     .syntax = .joined,
src/main.zig
@@ -1290,6 +1290,8 @@ fn buildOutputType(
                     .no_red_zone => want_red_zone = false,
                     .omit_frame_pointer => omit_frame_pointer = true,
                     .no_omit_frame_pointer => omit_frame_pointer = false,
+                    .function_sections => function_sections = true,
+                    .no_function_sections => function_sections = false,
                     .unwind_tables => want_unwind_tables = true,
                     .no_unwind_tables => want_unwind_tables = false,
                     .nostdlib => ensure_libc_on_non_freestanding = false,
@@ -3821,6 +3823,8 @@ pub const ClangArgIterator = struct {
         strip,
         exec_model,
         emit_llvm,
+        function_sections,
+        no_function_sections,
     };
 
     const Args = struct {
tools/update_clang_options.zig
@@ -308,6 +308,14 @@ const known_options = [_]KnownOpt{
         .name = "fno-omit-frame-pointer",
         .ident = "no_omit_frame_pointer",
     },
+    .{
+        .name = "ffunction-sections",
+        .ident = "function_sections",
+    },
+    .{
+        .name = "fno-function-sections",
+        .ident = "no_function_sections",
+    },
     .{
         .name = "MD",
         .ident = "dep_file",