[llvm-branch-commits] [clang] [clang][FMV][AArch64] Improve streaming mode compatibility (PR #101007)

Alexandros Lamprineas via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Jul 30 09:10:17 PDT 2024


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


More information about the llvm-branch-commits mailing list