[llvm] [CGData][Merger] Avoid merging the attached call target (PR #121030)

Kyungwoo Lee via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 24 19:17:55 PST 2024


================
@@ -60,11 +60,17 @@ static bool canParameterizeCallOperand(const CallBase *CI, unsigned OpIdx) {
     if (Name.starts_with("__dtrace"))
       return false;
   }
-  if (isCalleeOperand(CI, OpIdx) &&
-      CI->getOperandBundle(LLVMContext::OB_ptrauth).has_value()) {
+  if (isCalleeOperand(CI, OpIdx)) {
     // The operand is the callee and it has already been signed. Ignore this
     // because we cannot add another ptrauth bundle to the call instruction.
-    return false;
+    if (CI->getOperandBundle(LLVMContext::OB_ptrauth).has_value())
+      return false;
+  } else {
+    // The target of the arc-attached call must be a constant and cannot be
----------------
kyulee-com wrote:

Not familiar with the bundle. Conservatively, we could bail out all bundle cases, but for now I bail out the known case only. I think if we run into invalid cases, the compilation will fail/crash so we can follow up.

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


More information about the llvm-commits mailing list