summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Targets/X86.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Basic/Targets/X86.cpp')
-rw-r--r--clang/lib/Basic/Targets/X86.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/X86.cpp b/clang/lib/Basic/Targets/X86.cpp
index 5d4dfcb8441..268b3590117 100644
--- a/clang/lib/Basic/Targets/X86.cpp
+++ b/clang/lib/Basic/Targets/X86.cpp
@@ -101,6 +101,26 @@ bool X86TargetInfo::setFPMath(StringRef Name) {
return false;
}
+bool X86TargetInfo::checkCFProtectionReturnSupported(
+ DiagnosticsEngine &Diags) const {
+ if (HasSHSTK)
+ return true;
+
+ Diags.Report(diag::err_opt_not_valid_without_opt) << "cf-protection=return"
+ << "-mshstk";
+ return false;
+}
+
+bool X86TargetInfo::checkCFProtectionBranchSupported(
+ DiagnosticsEngine &Diags) const {
+ if (HasIBT)
+ return true;
+
+ Diags.Report(diag::err_opt_not_valid_without_opt) << "cf-protection=branch"
+ << "-mibt";
+ return false;
+}
+
bool X86TargetInfo::initFeatureMap(
llvm::StringMap<bool> &Features, DiagnosticsEngine &Diags, StringRef CPU,
const std::vector<std::string> &FeaturesVec) const {
OpenPOWER on IntegriCloud