[clang] [llvm] [ARM, AArch64] Don't put BTI at asm goto branch targets (PR #141562)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Wed May 28 08:17:30 PDT 2025


================
@@ -121,14 +121,21 @@ bool IsValidCloning(const MachineFunction &MF,
       }
       if (PathBB->isMachineBlockAddressTaken()) {
         // Avoid cloning blocks which have their address taken since we can't
-        // rewire branches to those blocks as easily (e.g., branches within
-        // inline assembly).
+        // rewire branches to those blocks as easily.
         WithColor::warning()
             << "block #" << BBID
             << " has its machine block address taken in function "
             << MF.getName() << "\n";
         return false;
       }
+      if (PathBB->isInlineAsmBrIndirectTarget()) {
+        // Similarly for branches to the block within an asm goto.
+        WithColor::warning()
+            << "block #" << BBID
+            << " is a branch target of an 'asm goto' in function "
+            << MF.getName() << "\n";
----------------
arsenm wrote:

This won't handle anonymous functions correctly, in this context probably should use the mangled name 

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


More information about the cfe-commits mailing list