Author: Jesse Huang
Date: 2026-09-15T15:04:00+08:00
New Revision: b2ef8caec3c2add664cbe88978793f44ed662ae3

URL: 
https://github.com/llvm/llvm-project/commit/b2ef8caec3c2add664cbe88978793f44ed662ae3
DIFF: 
https://github.com/llvm/llvm-project/commit/b2ef8caec3c2add664cbe88978793f44ed662ae3.diff

LOG: [Clang] Make Unlabeled the default control flow branch label scheme 
(#223297)

The work on "func-sig" label scheme is discontinued, so it's better to
switch the default to unlabeled at this time.

Added: 
    

Modified: 
    clang/lib/Basic/Targets/RISCV.cpp
    clang/lib/Basic/Targets/RISCV.h
    clang/test/CodeGen/RISCV/riscv-cf-protection.c

Removed: 
    


################################################################################
diff  --git a/clang/lib/Basic/Targets/RISCV.cpp 
b/clang/lib/Basic/Targets/RISCV.cpp
index 6afef3e2c7c48..5a8dda5218533 100644
--- a/clang/lib/Basic/Targets/RISCV.cpp
+++ b/clang/lib/Basic/Targets/RISCV.cpp
@@ -651,12 +651,7 @@ bool RISCVTargetInfo::checkCFBranchLabelSchemeSupported(
   // implements it
   switch (Scheme) {
   case CFBranchLabelSchemeKind::Default:
-    Diags.Report(diag::err_opt_not_valid_without_opt)
-        << "-fcf-protection=branch"
-        << (Twine("-mcf-branch-label-scheme=") +
-            getCFBranchLabelSchemeFlagVal(CFBranchLabelSchemeKind::Unlabeled))
-               .str();
-    return false;
+    return true;
   case CFBranchLabelSchemeKind::Unlabeled:
     return true;
   case CFBranchLabelSchemeKind::FuncSig:

diff  --git a/clang/lib/Basic/Targets/RISCV.h b/clang/lib/Basic/Targets/RISCV.h
index edaac3e74f9d3..4a6dd39857157 100644
--- a/clang/lib/Basic/Targets/RISCV.h
+++ b/clang/lib/Basic/Targets/RISCV.h
@@ -154,7 +154,7 @@ class RISCVTargetInfo : public TargetInfo {
   }
 
   CFBranchLabelSchemeKind getDefaultCFBranchLabelScheme() const override {
-    return CFBranchLabelSchemeKind::FuncSig;
+    return CFBranchLabelSchemeKind::Unlabeled;
   }
 
   bool

diff  --git a/clang/test/CodeGen/RISCV/riscv-cf-protection.c 
b/clang/test/CodeGen/RISCV/riscv-cf-protection.c
index 9154566103276..f957890cd9f6f 100644
--- a/clang/test/CodeGen/RISCV/riscv-cf-protection.c
+++ b/clang/test/CodeGen/RISCV/riscv-cf-protection.c
@@ -70,22 +70,12 @@
 // RUN: -emit-llvm %s -o - 2>&1 | FileCheck \
 // RUN: --check-prefixes=NO-FLAG,FUNC-SIG-SCHEME-UNUSED %s
 
-// Default -mcf-branch-label-scheme is func-sig
-// RUN: not %clang --target=riscv32 -fcf-protection=branch -S -emit-llvm %s \
-// RUN: -o - 2>&1 | FileCheck --check-prefixes=FORCE-UNLABELED %s
-
-// Default -mcf-branch-label-scheme is func-sig
-// RUN: not %clang --target=riscv64 -fcf-protection=branch -S -emit-llvm %s \
-// RUN: -o - 2>&1 | FileCheck --check-prefixes=FORCE-UNLABELED %s
-
 // UNLABELED-SCHEME-UNUSED: warning: argument unused during compilation:
 // UNLABELED-SCHEME-UNUSED-SAME: '-mcf-branch-label-scheme=unlabeled'
 // FUNC-SIG-SCHEME-UNUSED: warning: argument unused during compilation:
 // FUNC-SIG-SCHEME-UNUSED-SAME: '-mcf-branch-label-scheme=func-sig'
 // FUNC-SIG-NOSUPPORT: error: option '-mcf-branch-label-scheme=func-sig' is
 // FUNC-SIG-NOSUPPORT-SAME: unsupported; consider using 
'-mcf-branch-label-scheme=unlabeled'
-// FORCE-UNLABELED: error: option '-fcf-protection=branch' cannot be specified
-// FORCE-UNLABELED-SAME: without '-mcf-branch-label-scheme=unlabeled'
 
 // BRANCH-PROT-FLAG-DAG: [[P_FLAG:![0-9]+]] = !{i32 8, 
!"cf-protection-branch", i32 1}
 // UNLABELED-FLAG-DAG: [[S_FLAG:![0-9]+]] = !{i32 1, 
!"cf-branch-label-scheme", !"unlabeled"}


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to