forked from OSchip/llvm-project
[clang][ARM] re-use arm::isHardTPSupported for hardware TLS check
This conditional check for -mstack-protector-guard=tls got out of sync with the conditional check for -mtp=cp15 by me in D114116, because I forgot about the similar check added in D113026. Re-use the code in arm::isHardTPSupported so that these aren't out of sync. Interestingly, our CI reported this when testing -mstack-protector-guard=tls; it was only reproducible with Debian's LLVM and not upstream LLVM due to this out of tree patch: https://salsa.debian.org/pkg-llvm-team/llvm-toolchain/-/blob/snapshot/debian/patches/930008-arm.diff Fixes: https://github.com/ClangBuiltLinux/linux/issues/1502 Reviewed By: ardb Differential Revision: https://reviews.llvm.org/D116233
This commit is contained in:
parent
357c8031ff
commit
cd284b7ac0
|
@ -3217,9 +3217,7 @@ static void RenderSSPOptions(const Driver &D, const ToolChain &TC,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Check whether the target subarch supports the hardware TLS register
|
// Check whether the target subarch supports the hardware TLS register
|
||||||
if (arm::getARMSubArchVersionNumber(EffectiveTriple) < 7 &&
|
if (!arm::isHardTPSupported(EffectiveTriple)) {
|
||||||
llvm::ARM::parseArch(EffectiveTriple.getArchName()) !=
|
|
||||||
llvm::ARM::ArchKind::ARMV6T2) {
|
|
||||||
D.Diag(diag::err_target_unsupported_tp_hard)
|
D.Diag(diag::err_target_unsupported_tp_hard)
|
||||||
<< EffectiveTriple.getArchName();
|
<< EffectiveTriple.getArchName();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue