[llvm] [LangRef] Add a description of the semantics of call signatures. (PR #136189)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 17 17:59:50 PDT 2025


efriedma-quic wrote:

The first paragraph defines the semantics of a signature mismatch.  It has nothing to do with opaque pointers; the type of the function pointer isn't mentioned at all.  And it's how it always worked.

The second paragraph isn't defining anything at all; it's just noting an edge case.  It's a natural consequence of the callee of a call being a function pointer, all function pointers having the same type, and constants being interchangeable with other values.  Opaque pointers changed the type of function pointers; the other rules have always existed.  These are rules we could potentially change, but any change to in-memory semantics would have deep consequences across the whole codebase.

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


More information about the llvm-commits mailing list