aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index d53d479..2381fa9 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -1164,6 +1164,16 @@ void CodeGenModule::Release() {
// Indicate that we want to instrument branch control flow protection.
getModule().addModuleFlag(llvm::Module::Min, "cf-protection-branch",
1);
+
+ auto Scheme = CodeGenOpts.getCFBranchLabelScheme();
+ if (Target.checkCFBranchLabelSchemeSupported(Scheme, getDiags())) {
+ if (Scheme == CFBranchLabelSchemeKind::Default)
+ Scheme = Target.getDefaultCFBranchLabelScheme();
+ getModule().addModuleFlag(
+ llvm::Module::Error, "cf-branch-label-scheme",
+ llvm::MDString::get(getLLVMContext(),
+ getCFBranchLabelSchemeFlagVal(Scheme)));
+ }
}
if (CodeGenOpts.FunctionReturnThunks)