Skip to content

Commit d131351

Browse files
authored
[NFC][Driver][CFI] Rename to clarify purpose of CFI runtime (#135885)
CFI runtime (diagnostics, or not) is only needed for cross-dso support.
1 parent f875dd1 commit d131351

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

clang/include/clang/Driver/SanitizerArgs.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ class SanitizerArgs {
105105
bool requiresMinimalRuntime() const { return MinimalRuntime; }
106106
bool needsDfsanRt() const { return Sanitizers.has(SanitizerKind::DataFlow); }
107107
bool needsSafeStackRt() const { return SafeStackRuntime; }
108-
bool needsCfiRt() const;
109-
bool needsCfiDiagRt() const;
108+
bool needsCfiCrossDsoRt() const;
109+
bool needsCfiCrossDsoDiagRt() const;
110110
bool needsStatsRt() const { return Stats; }
111111
bool needsScudoRt() const { return Sanitizers.has(SanitizerKind::Scudo); }
112112
bool needsNsanRt() const {

clang/lib/Driver/SanitizerArgs.cpp

+7-5
Original file line numberDiff line numberDiff line change
@@ -354,8 +354,8 @@ bool SanitizerArgs::needsFuzzerInterceptors() const {
354354
bool SanitizerArgs::needsUbsanRt() const {
355355
// All of these include ubsan.
356356
if (needsAsanRt() || needsMsanRt() || needsNsanRt() || needsHwasanRt() ||
357-
needsTsanRt() || needsDfsanRt() || needsLsanRt() || needsCfiDiagRt() ||
358-
(needsScudoRt() && !requiresMinimalRuntime()))
357+
needsTsanRt() || needsDfsanRt() || needsLsanRt() ||
358+
needsCfiCrossDsoDiagRt() || (needsScudoRt() && !requiresMinimalRuntime()))
359359
return false;
360360

361361
return (Sanitizers.Mask & NeedsUbsanRt & ~TrapSanitizers.Mask) ||
@@ -370,11 +370,13 @@ bool SanitizerArgs::needsUbsanCXXRt() const {
370370
~TrapSanitizers.Mask);
371371
}
372372

373-
bool SanitizerArgs::needsCfiRt() const {
374-
return !needsCfiDiagRt() && CfiCrossDso && !ImplicitCfiRuntime;
373+
bool SanitizerArgs::needsCfiCrossDsoRt() const {
374+
// Diag runtime includes cross dso runtime.
375+
return !needsCfiCrossDsoDiagRt() && CfiCrossDso && !ImplicitCfiRuntime;
375376
}
376377

377-
bool SanitizerArgs::needsCfiDiagRt() const {
378+
bool SanitizerArgs::needsCfiCrossDsoDiagRt() const {
379+
// UBSsan handles CFI diagnostics without cross-DSO suppport.
378380
return (Sanitizers.Mask & SanitizerKind::CFI & ~TrapSanitizers.Mask) &&
379381
CfiCrossDso && !ImplicitCfiRuntime;
380382
}

clang/lib/Driver/ToolChains/CommonArgs.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -1550,14 +1550,14 @@ collectSanitizerRuntimes(const ToolChain &TC, const ArgList &Args,
15501550
RequiredSymbols.push_back("__safestack_init");
15511551
}
15521552
if (!(SanArgs.needsSharedRt() && SanArgs.needsUbsanRt())) {
1553-
if (SanArgs.needsCfiRt())
1553+
if (SanArgs.needsCfiCrossDsoRt())
15541554
StaticRuntimes.push_back("cfi");
1555-
if (SanArgs.needsCfiDiagRt())
1555+
if (SanArgs.needsCfiCrossDsoDiagRt())
15561556
StaticRuntimes.push_back("cfi_diag");
15571557
}
15581558
if (SanArgs.linkCXXRuntimes() && !SanArgs.requiresMinimalRuntime() &&
15591559
((!SanArgs.needsSharedRt() && SanArgs.needsUbsanCXXRt()) ||
1560-
SanArgs.needsCfiDiagRt())) {
1560+
SanArgs.needsCfiCrossDsoDiagRt())) {
15611561
StaticRuntimes.push_back("ubsan_standalone_cxx");
15621562
}
15631563
if (SanArgs.needsStatsRt()) {

0 commit comments

Comments
 (0)