If a pointer argument is unused within the callee, this argument should be removed from the function's signature while all used pointer arguments should be promoted as it is expected. The ArgumentPromotion pass doesn't touch unused non-pointer arguments at all.