git: b0da3d887c4b - stable/13 - Clang: Add Diags for targets pre to i686 for -fcf-protection
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 10 Nov 2022 21:48:06 UTC
The branch stable/13 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b0da3d887c4b3e9e1b35f4c0e9696fa6d339e82f commit b0da3d887c4b3e9e1b35f4c0e9696fa6d339e82f Author: Ed Maste <emaste@FreeBSD.org> AuthorDate: 2022-11-04 15:59:49 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2022-11-10 21:47:48 +0000 Clang: Add Diags for targets pre to i686 for -fcf-protection Intel Control-flow Enforcement Technology (CET) provides new instructions `endbr32/64` for the indirect branch control. They are NOPs on i686 and new targets. We need to check for that in case it crashes on older targets. PR: 264497, 267401 Reviewed by: dim MFC after: 1 week Obtained from: LLVM commit 52516782972730ff065a34123a9d8876da08c254 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D37268 (cherry picked from commit 9c231325e77b1989c006daf083a3e9bd143c3d07) --- contrib/llvm-project/clang/lib/Basic/Targets/X86.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/contrib/llvm-project/clang/lib/Basic/Targets/X86.h b/contrib/llvm-project/clang/lib/Basic/Targets/X86.h index d1b66432e38b..b34a16bb5f5b 100644 --- a/contrib/llvm-project/clang/lib/Basic/Targets/X86.h +++ b/contrib/llvm-project/clang/lib/Basic/Targets/X86.h @@ -223,12 +223,16 @@ public: virtual bool checkCFProtectionReturnSupported(DiagnosticsEngine &Diags) const override { - return true; + if (CPU == llvm::X86::CK_None || CPU >= llvm::X86::CK_PentiumPro) + return true; + return TargetInfo::checkCFProtectionReturnSupported(Diags); }; virtual bool checkCFProtectionBranchSupported(DiagnosticsEngine &Diags) const override { - return true; + if (CPU == llvm::X86::CK_None || CPU >= llvm::X86::CK_PentiumPro) + return true; + return TargetInfo::checkCFProtectionBranchSupported(Diags); }; virtual bool validateOperandSize(const llvm::StringMap<bool> &FeatureMap,