labrinea wrote:

> We used to diagnose streaming functions that attempted to be multiversioned

but we did not diagnose a streaming caller of a versioned function, and since 
streaming compatible versions were not diagnosed either it was possible to mix 
calling conventions between versions:

- Streaming function calls streaming compatible version: 
https://godbolt.org/z/E6vnWd33x. Note that if bar._sve() was declared non 
streaming, then the call would be surrounded by smtop/smstart: 
https://godbolt.org/z/Wdf8oWoxh.
- In a separate translation unit, another version is defined (the default) with 
a different calling convention (non streaming). With llvm18 this compiles just 
fine: https://godbolt.org/z/GxzEGr6Yx
- The same as before in llvm trunk yields a semantic error: 
https://godbolt.org/z/fzbb5hTGb

https://github.com/llvm/llvm-project/pull/101007
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to