[all-commits] [llvm/llvm-project] d83660: [openmp][wasm] Fix microtask type mismatch (#84355)

Andrew Brown via All-commits all-commits at lists.llvm.org
Thu Mar 14 08:24:05 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d83660827f0cb0054dafef6568ea2fa5b788a39c
      https://github.com/llvm/llvm-project/commit/d83660827f0cb0054dafef6568ea2fa5b788a39c
  Author: Andrew Brown <andrew.brown at intel.com>
  Date:   2024-03-14 (Thu, 14 Mar 2024)

  Changed paths:
    M openmp/runtime/src/z_Linux_util.cpp

  Log Message:
  -----------
  [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



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list