[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