[clang] [llvm] [win] Add a flag to control the Control Flow Guard mechanism on Windows (PR #176276)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 30 06:35:25 PST 2026


================
@@ -797,6 +798,21 @@ bool AArch64Arm64ECCallLowering::runOnModule(Module &Mod) {
   // Check if this module has the cfguard flag and read its value.
   CFGuardModuleFlag = M->getControlFlowGuardMode();
 
+  // Warn if the module flag requests an unsupported CFGuard mechanism.
+  if (CFGuardModuleFlag == ControlFlowGuardMode::Enabled) {
+    if (auto *CI = mdconst::dyn_extract_or_null<ConstantInt>(
+            Mod.getModuleFlag("cfguard-mechanism"))) {
----------------
arsenm wrote:

If there's something in the IR that does something, it should be documented in the LangRef. How to split up langref is another problem, but we need to stop having undocumented IR controls 

https://github.com/llvm/llvm-project/pull/176276


More information about the cfe-commits mailing list