https://github.com/fmayer updated https://github.com/llvm/llvm-project/pull/168644
>From d2231031d7ecfffc97709d6bf2236ead4147aab8 Mon Sep 17 00:00:00 2001 From: Florian Mayer <[email protected]> Date: Wed, 19 Nov 2025 18:01:59 -0800 Subject: [PATCH 1/3] rename Created using spr 1.3.7 --- clang/include/clang/Basic/CodeGenOptions.def | 2 +- clang/include/clang/Driver/SanitizerArgs.h | 2 +- clang/include/clang/Options/Options.td | 6 +++--- clang/lib/Driver/SanitizerArgs.cpp | 11 ++++++----- clang/test/Driver/fsanitize.c | 4 ++-- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def index 3c9cdf5545c1f..76a6463881c6f 100644 --- a/clang/include/clang/Basic/CodeGenOptions.def +++ b/clang/include/clang/Basic/CodeGenOptions.def @@ -270,7 +270,7 @@ CODEGENOPT(SanitizeMemoryUseAfterDtor, 1, 0, Benign) ///< Enable use-after-delet CODEGENOPT(SanitizeCfiCrossDso, 1, 0, Benign) ///< Enable cross-dso support in CFI. CODEGENOPT(SanitizeMinimalRuntime, 1, 0, Benign) ///< Use "_minimal" sanitizer runtime for ///< diagnostics. -CODEGENOPT(SanitizePreserveRuntime, 1, 0, Benign) ///< Use "_preserve" sanitizer runtime for +CODEGENOPT(SanitizeHandlerPreserveAllRegs, 1, 0, Benign) ///< Use "_preserve" sanitizer runtime for ///< diagnostics. CODEGENOPT(SanitizeCfiICallGeneralizePointers, 1, 0, Benign) ///< Generalize pointer types in ///< CFI icall function signatures diff --git a/clang/include/clang/Driver/SanitizerArgs.h b/clang/include/clang/Driver/SanitizerArgs.h index eef482cb577a9..6fd059263fb4d 100644 --- a/clang/include/clang/Driver/SanitizerArgs.h +++ b/clang/include/clang/Driver/SanitizerArgs.h @@ -67,7 +67,7 @@ class SanitizerArgs { bool TsanFuncEntryExit = true; bool TsanAtomics = true; bool MinimalRuntime = false; - bool PreserveRuntime = false; + bool HandlerPreserveAllRegs = false; // True if cross-dso CFI support if provided by the system (i.e. Android). bool ImplicitCfiRuntime = false; bool NeedsMemProfRt = false; diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td index a3e0566d9763d..2c9876c305ffe 100644 --- a/clang/include/clang/Options/Options.td +++ b/clang/include/clang/Options/Options.td @@ -2656,9 +2656,9 @@ defm sanitize_minimal_runtime : BoolOption<"f", "sanitize-minimal-runtime", PosFlag<SetTrue>, NegFlag<SetFalse>>, Group<f_clang_Group>; -defm sanitize_preserve_runtime - : BoolOption<"f", "sanitize-preserve-runtime", - CodeGenOpts<"SanitizePreserveRuntime">, DefaultFalse, +defm sanitize_handler_preserve_all_regs_experimental + : BoolOption<"f", "sanitize-handler-preserve-all-regs-experimental", + CodeGenOpts<"SanitizeHandlerPreserveAllRegs">, DefaultFalse, PosFlag<SetTrue>, NegFlag<SetFalse>>, Group<f_clang_Group>; def fsanitize_link_runtime : Flag<["-"], "fsanitize-link-runtime">, diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index c5ef3018b2455..42d3f52e2de9f 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -423,9 +423,10 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, MinimalRuntime = Args.hasFlag(options::OPT_fsanitize_minimal_runtime, options::OPT_fno_sanitize_minimal_runtime, MinimalRuntime); - PreserveRuntime = - Args.hasFlag(options::OPT_fsanitize_preserve_runtime, - options::OPT_fno_sanitize_preserve_runtime, PreserveRuntime); + HandlerPreserveAllRegs = Args.hasFlag( + options::OPT_fsanitize_handler_preserve_all_regs_experimental, + options::OPT_fno_sanitize_handler_preserve_all_regs_experimental, + HandlerPreserveAllRegs); // The object size sanitizer should not be enabled at -O0. Arg *OptLevel = Args.getLastArg(options::OPT_O_Group); @@ -1472,8 +1473,8 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args, if (MinimalRuntime) CmdArgs.push_back("-fsanitize-minimal-runtime"); - if (PreserveRuntime) - CmdArgs.push_back("-fsanitize-preserve-runtime"); + if (HandlerPreserveAllRegs) + CmdArgs.push_back("-fsanitize-handler-preserve-all-regs-experimental"); if (AsanFieldPadding) CmdArgs.push_back(Args.MakeArgString("-fsanitize-address-field-padding=" + diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c index 03241c2fcf91a..18f2b74b7b580 100644 --- a/clang/test/Driver/fsanitize.c +++ b/clang/test/Driver/fsanitize.c @@ -984,10 +984,10 @@ // CHECK-UBSAN-MINIMAL: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute|function),?){18}"}} // CHECK-UBSAN-MINIMAL: "-fsanitize-minimal-runtime" -// RUN: %clang --target=x86_64-linux-gnu -fsanitize=undefined -fsanitize-minimal-runtime -fsanitize-preserve-runtime %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UBSAN-MINIMAL-PRESERVE +// RUN: %clang --target=x86_64-linux-gnu -fsanitize=undefined -fsanitize-minimal-runtime -fsanitize-handler-preserve-all-regs-experimental %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UBSAN-MINIMAL-PRESERVE // CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute|function),?){18}"}} // CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize-minimal-runtime" -// CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize-preserve-runtime" +// CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize-handler-preserve-all-regs-experimental" // RUN: %clang --target=x86_64-linux-gnu -fsanitize=integer -fsanitize-trap=integer %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-INTSAN-TRAP // CHECK-INTSAN-TRAP: "-fsanitize-trap=integer-divide-by-zero,shift-base,shift-exponent,signed-integer-overflow,unsigned-integer-overflow,unsigned-shift-base,implicit-unsigned-integer-truncation,implicit-signed-integer-truncation,implicit-integer-sign-change" >From 5a7c143d885af5aa333ddf3473242f857204684a Mon Sep 17 00:00:00 2001 From: Florian Mayer <[email protected]> Date: Wed, 19 Nov 2025 18:18:30 -0800 Subject: [PATCH 2/3] rename Created using spr 1.3.7 --- clang/include/clang/Options/Options.td | 4 ++-- clang/lib/Driver/SanitizerArgs.cpp | 10 +++++----- clang/test/Driver/fsanitize.c | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td index 2c9876c305ffe..9650e99754cd7 100644 --- a/clang/include/clang/Options/Options.td +++ b/clang/include/clang/Options/Options.td @@ -2656,8 +2656,8 @@ defm sanitize_minimal_runtime : BoolOption<"f", "sanitize-minimal-runtime", PosFlag<SetTrue>, NegFlag<SetFalse>>, Group<f_clang_Group>; -defm sanitize_handler_preserve_all_regs_experimental - : BoolOption<"f", "sanitize-handler-preserve-all-regs-experimental", +defm sanitize_handler_preserve_all_regs + : BoolOption<"f", "sanitize-handler-preserve-all-regs", CodeGenOpts<"SanitizeHandlerPreserveAllRegs">, DefaultFalse, PosFlag<SetTrue>, NegFlag<SetFalse>>, Group<f_clang_Group>; diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 42d3f52e2de9f..10f85b6bd1651 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -423,10 +423,10 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, MinimalRuntime = Args.hasFlag(options::OPT_fsanitize_minimal_runtime, options::OPT_fno_sanitize_minimal_runtime, MinimalRuntime); - HandlerPreserveAllRegs = Args.hasFlag( - options::OPT_fsanitize_handler_preserve_all_regs_experimental, - options::OPT_fno_sanitize_handler_preserve_all_regs_experimental, - HandlerPreserveAllRegs); + HandlerPreserveAllRegs = + Args.hasFlag(options::OPT_fsanitize_handler_preserve_all_regs, + options::OPT_fno_sanitize_handler_preserve_all_regs, + HandlerPreserveAllRegs); // The object size sanitizer should not be enabled at -O0. Arg *OptLevel = Args.getLastArg(options::OPT_O_Group); @@ -1474,7 +1474,7 @@ void SanitizerArgs::addArgs(const ToolChain &TC, const llvm::opt::ArgList &Args, CmdArgs.push_back("-fsanitize-minimal-runtime"); if (HandlerPreserveAllRegs) - CmdArgs.push_back("-fsanitize-handler-preserve-all-regs-experimental"); + CmdArgs.push_back("-fsanitize-handler-preserve-all-regs"); if (AsanFieldPadding) CmdArgs.push_back(Args.MakeArgString("-fsanitize-address-field-padding=" + diff --git a/clang/test/Driver/fsanitize.c b/clang/test/Driver/fsanitize.c index 18f2b74b7b580..f2a4d8c50ec23 100644 --- a/clang/test/Driver/fsanitize.c +++ b/clang/test/Driver/fsanitize.c @@ -984,10 +984,10 @@ // CHECK-UBSAN-MINIMAL: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute|function),?){18}"}} // CHECK-UBSAN-MINIMAL: "-fsanitize-minimal-runtime" -// RUN: %clang --target=x86_64-linux-gnu -fsanitize=undefined -fsanitize-minimal-runtime -fsanitize-handler-preserve-all-regs-experimental %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UBSAN-MINIMAL-PRESERVE +// RUN: %clang --target=x86_64-linux-gnu -fsanitize=undefined -fsanitize-minimal-runtime -fsanitize-handler-preserve-all-regs %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-UBSAN-MINIMAL-PRESERVE // CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize={{((signed-integer-overflow|integer-divide-by-zero|shift-base|shift-exponent|unreachable|return|vla-bound|alignment|null|pointer-overflow|float-cast-overflow|array-bounds|enum|bool|builtin|returns-nonnull-attribute|nonnull-attribute|function),?){18}"}} // CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize-minimal-runtime" -// CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize-handler-preserve-all-regs-experimental" +// CHECK-UBSAN-MINIMAL-PRESERVE: "-fsanitize-handler-preserve-all-regs // RUN: %clang --target=x86_64-linux-gnu -fsanitize=integer -fsanitize-trap=integer %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-INTSAN-TRAP // CHECK-INTSAN-TRAP: "-fsanitize-trap=integer-divide-by-zero,shift-base,shift-exponent,signed-integer-overflow,unsigned-integer-overflow,unsigned-shift-base,implicit-unsigned-integer-truncation,implicit-signed-integer-truncation,implicit-integer-sign-change" >From 145118df1c2c641e3dbb9e3bd7859705b368ee76 Mon Sep 17 00:00:00 2001 From: Florian Mayer <[email protected]> Date: Thu, 20 Nov 2025 14:56:54 -0800 Subject: [PATCH 3/3] help Created using spr 1.3.7 --- clang/include/clang/Options/Options.td | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td index 9650e99754cd7..1e713a1b06943 100644 --- a/clang/include/clang/Options/Options.td +++ b/clang/include/clang/Options/Options.td @@ -2657,9 +2657,13 @@ defm sanitize_minimal_runtime : BoolOption<"f", "sanitize-minimal-runtime", NegFlag<SetFalse>>, Group<f_clang_Group>; defm sanitize_handler_preserve_all_regs - : BoolOption<"f", "sanitize-handler-preserve-all-regs", - CodeGenOpts<"SanitizeHandlerPreserveAllRegs">, DefaultFalse, - PosFlag<SetTrue>, NegFlag<SetFalse>>, + : BoolOption< + "f", "sanitize-handler-preserve-all-regs", + CodeGenOpts<"SanitizeHandlerPreserveAllRegs">, DefaultFalse, + PosFlag<SetTrue, [], [], + "Enable handlers with preserve_all calling convention">, + NegFlag<SetFalse, [], [], + "Disable handlers with preserve_all calling convention">>, Group<f_clang_Group>; def fsanitize_link_runtime : Flag<["-"], "fsanitize-link-runtime">, Group<f_clang_Group>; _______________________________________________ llvm-branch-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
