MaskRay wrote: How do we get `@f2 = linkonce_odr hidden alias void (), ptr @f1` in the first place? `weak/linkonce` stopping the replace makes sense to me but `weak_odr/linkonce_odr` should not. https://github.com/llvm/llvm-project/pull/91483