Author: Vitaly Buka Date: 2025-04-16T08:12:27-07:00 New Revision: d13135134c43af674584780b1494316f6fdaf027
URL: https://github.com/llvm/llvm-project/commit/d13135134c43af674584780b1494316f6fdaf027 DIFF: https://github.com/llvm/llvm-project/commit/d13135134c43af674584780b1494316f6fdaf027.diff LOG: [NFC][Driver][CFI] Rename to clarify purpose of CFI runtime (#135885) CFI runtime (diagnostics, or not) is only needed for cross-dso support. Added: Modified: clang/include/clang/Driver/SanitizerArgs.h clang/lib/Driver/SanitizerArgs.cpp clang/lib/Driver/ToolChains/CommonArgs.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Driver/SanitizerArgs.h b/clang/include/clang/Driver/SanitizerArgs.h index 6a866ded0e75c..528e3b400f3dc 100644 --- a/clang/include/clang/Driver/SanitizerArgs.h +++ b/clang/include/clang/Driver/SanitizerArgs.h @@ -105,8 +105,8 @@ class SanitizerArgs { bool requiresMinimalRuntime() const { return MinimalRuntime; } bool needsDfsanRt() const { return Sanitizers.has(SanitizerKind::DataFlow); } bool needsSafeStackRt() const { return SafeStackRuntime; } - bool needsCfiRt() const; - bool needsCfiDiagRt() const; + bool needsCfiCrossDsoRt() const; + bool needsCfiCrossDsoDiagRt() const; bool needsStatsRt() const { return Stats; } bool needsScudoRt() const { return Sanitizers.has(SanitizerKind::Scudo); } bool needsNsanRt() const { diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index 1db9da1b60939..ee151d5c68b85 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -354,8 +354,8 @@ bool SanitizerArgs::needsFuzzerInterceptors() const { bool SanitizerArgs::needsUbsanRt() const { // All of these include ubsan. if (needsAsanRt() || needsMsanRt() || needsNsanRt() || needsHwasanRt() || - needsTsanRt() || needsDfsanRt() || needsLsanRt() || needsCfiDiagRt() || - (needsScudoRt() && !requiresMinimalRuntime())) + needsTsanRt() || needsDfsanRt() || needsLsanRt() || + needsCfiCrossDsoDiagRt() || (needsScudoRt() && !requiresMinimalRuntime())) return false; return (Sanitizers.Mask & NeedsUbsanRt & ~TrapSanitizers.Mask) || @@ -370,11 +370,13 @@ bool SanitizerArgs::needsUbsanCXXRt() const { ~TrapSanitizers.Mask); } -bool SanitizerArgs::needsCfiRt() const { - return !needsCfiDiagRt() && CfiCrossDso && !ImplicitCfiRuntime; +bool SanitizerArgs::needsCfiCrossDsoRt() const { + // Diag runtime includes cross dso runtime. + return !needsCfiCrossDsoDiagRt() && CfiCrossDso && !ImplicitCfiRuntime; } -bool SanitizerArgs::needsCfiDiagRt() const { +bool SanitizerArgs::needsCfiCrossDsoDiagRt() const { + // UBSsan handles CFI diagnostics without cross-DSO suppport. return (Sanitizers.Mask & SanitizerKind::CFI & ~TrapSanitizers.Mask) && CfiCrossDso && !ImplicitCfiRuntime; } diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp index ddeadff8f6dfb..7aab849abe0c1 100644 --- a/clang/lib/Driver/ToolChains/CommonArgs.cpp +++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp @@ -1550,14 +1550,14 @@ collectSanitizerRuntimes(const ToolChain &TC, const ArgList &Args, RequiredSymbols.push_back("__safestack_init"); } if (!(SanArgs.needsSharedRt() && SanArgs.needsUbsanRt())) { - if (SanArgs.needsCfiRt()) + if (SanArgs.needsCfiCrossDsoRt()) StaticRuntimes.push_back("cfi"); - if (SanArgs.needsCfiDiagRt()) + if (SanArgs.needsCfiCrossDsoDiagRt()) StaticRuntimes.push_back("cfi_diag"); } if (SanArgs.linkCXXRuntimes() && !SanArgs.requiresMinimalRuntime() && ((!SanArgs.needsSharedRt() && SanArgs.needsUbsanCXXRt()) || - SanArgs.needsCfiDiagRt())) { + SanArgs.needsCfiCrossDsoDiagRt())) { StaticRuntimes.push_back("ubsan_standalone_cxx"); } if (SanArgs.needsStatsRt()) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits