Semantics of noalias with vector of pointers?


What are the intended semantics of noalias when applied to a vector of pointers? signext/zeroext parameter attributes are incorrectly rejected for vectors (bug 15391), and I'm not sure if the same is true for noalias when applied to pointer vectors. There's no mention of it in the langref, and the verifier currently rejects it. Is it supposed to work? Are pointers within the vector allowed to alias other elements in the vector?

Do you actually have a use case for such attributes, or are you just trying all possible attributes on all possible types to see what breaks? :wink:

It would be theoretically possible to define semantics for signext/zerext or even noalias for vectors. However it’s not clear whether those are really desirable without motivating use cases.


I’m mostly just breaking things. I randomly ended up on the bug about the zext vector parameters and thought it should work.