diff --git a/clang/include/clang/Basic/TargetInfo.h b/clang/include/clang/Basic/TargetInfo.h index 1f208b40f92cb..cf7628553647c 100644 --- a/clang/include/clang/Basic/TargetInfo.h +++ b/clang/include/clang/Basic/TargetInfo.h @@ -1434,7 +1434,12 @@ class TargetInfo : public TransferrableTargetInfo, } public: - BranchProtectionInfo() = default; + BranchProtectionInfo() + : SignReturnAddr(LangOptions::SignReturnAddressScopeKind::None), + SignKey(LangOptions::SignReturnAddressKeyKind::AKey), + BranchTargetEnforcement(false), BranchProtectionPAuthLR(false), + GuardedControlStack(false) {} + BranchProtectionInfo(const LangOptions &LangOpts) { SignReturnAddr = LangOpts.hasSignReturnAddress() diff --git a/clang/lib/CodeGen/Targets/ARM.cpp b/clang/lib/CodeGen/Targets/ARM.cpp index d449b97cdc685..93fea94a77248 100644 --- a/clang/lib/CodeGen/Targets/ARM.cpp +++ b/clang/lib/CodeGen/Targets/ARM.cpp @@ -141,7 +141,7 @@ class ARMTargetCodeGenInfo : public TargetCodeGenInfo { ParsedTargetAttr Attr = CGM.getTarget().parseTargetAttr(TA->getFeaturesStr()); if (!Attr.BranchProtection.empty()) { - TargetInfo::BranchProtectionInfo BPI; + TargetInfo::BranchProtectionInfo BPI{}; StringRef DiagMsg; StringRef Arch = Attr.CPU.empty() ? CGM.getTarget().getTargetOpts().CPU : Attr.CPU; diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index 73a85ff39667b..f2cd46d1e7c93 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -2991,7 +2991,7 @@ bool Sema::checkTargetAttr(SourceLocation LiteralLoc, StringRef AttrStr) { << Unsupported << None << CurFeature << Target; } - TargetInfo::BranchProtectionInfo BPI; + TargetInfo::BranchProtectionInfo BPI{}; StringRef DiagMsg; if (ParsedAttrs.BranchProtection.empty()) return false;