diff options
author | Andrew Brown <andrew.brown@intel.com> | 2024-03-14 08:23:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-14 10:23:44 -0500 |
commit | d83660827f0cb0054dafef6568ea2fa5b788a39c (patch) | |
tree | 292c663eeccf0c8d490769a4314acc73418091fd /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | a75d0a3dbab6215db228cedf5f2458e251c30637 (diff) | |
download | llvm-d83660827f0cb0054dafef6568ea2fa5b788a39c.zip llvm-d83660827f0cb0054dafef6568ea2fa5b788a39c.tar.gz llvm-d83660827f0cb0054dafef6568ea2fa5b788a39c.tar.bz2 |
[openmp][wasm] Fix microtask type mismatch (#84355)
When OpenMP is compiled for WebAssembly (see #71297), it invokes a
microtask via a `switch` statement that dispatches to the `void *`
microtask pointer with spelled-out arguments (not varargs). As #83329
points out, however, this can result in a type mismatch when the
indirect call is executed by WebAssembly; WebAssembly expects the called
pointer to have the precise type of the call site. This change fixes the
issue by bringing back the approach in [D142593] of type-casting all the
`switch` arms to the precise type. This fixes #83329.
[D142593]: https://reviews.llvm.org/D142593
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions