<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54832>54832</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            WebAssembly (wasm32-wasi) target for flang
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          rjzak
      </td>
    </tr>
</table>

<pre>
    I tried to compile a simple Fortran application to WebAssembly, and it seems that it's not a supported target. Since LLVM supports WebAssembly & WASI, shouldn't flag be able to target it?

```
$ ~/Downloads/llvm-project/build/bin/flang-new --target=wasm32-wasi fibonacci.f90  -v
flang-new version 15.0.0 (https://github.com/llvm/llvm-project.git 4fe2e42bbc18cb9e412b18dfcfe50e9b1f45f631)
Target: wasm32-unknown-wasi
Thread model: posix
InstalledDir: /home/rjzak/Downloads/llvm-project/build/bin
 "/home/rjzak/Downloads/llvm-project/build/bin/flang-new" -fc1 -triple wasm32-unknown-wasi -emit-obj -o /tmp/fibonacci-53e55a.o fibonacci.f90
LLVM ERROR: target not implemented
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /home/rjzak/Downloads/llvm-project/build/bin/flang-new -fc1 -triple wasm32-unknown-wasi -emit-obj -o /tmp/fibonacci-53e55a.o fibonacci.f90
 #0 0x000055ba62d95944 PrintStackTraceSignalHandler(void*) Signals.cpp:0:0
 #1 0x000055ba62d931e4 SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f800acf93c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
 #3 0x00007f800a79103b raise /build/glibc-sMfBJT/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
 #4 0x00007f800a770859 abort /build/glibc-sMfBJT/glibc-2.31/stdlib/abort.c:81:7
 #5 0x000055ba62cdcec7 llvm::report_fatal_error(llvm::Twine const&, bool) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x45c8ec7)
 #6 0x000055ba62cdd02e (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x45c902e)
 #7 0x000055ba63fe0271 fir::CodeGenSpecifics::get(mlir::MLIRContext*, llvm::Triple&&, fir::KindMapping&&) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x58cc271)
 #8 0x000055ba63fe6a42 (anonymous namespace)::TargetRewrite::runOnOperation() TargetRewrite.cpp:0:0
 #9 0x000055ba6542eeda mlir::detail::OpToOpPassAdaptor::run(mlir::Pass*, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x6d1aeda)
#10 0x000055ba6542f418 mlir::detail::OpToOpPassAdaptor::runPipeline(llvm::iterator_range<llvm::pointee_iterator<std::unique_ptr<mlir::Pass, std::default_delete<mlir::Pass> >*, mlir::Pass> >, mlir::Operation*, mlir::AnalysisManager, bool, unsigned int, mlir::PassInstrumentor*, mlir::PassInstrumentation::PipelineParentInfo const*) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x6d1b418)
#11 0x000055ba6542ffb7 mlir::PassManager::run(mlir::Operation*) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x6d1bfb7)
#12 0x000055ba62fcb08c Fortran::frontend::CodeGenAction::GenerateLLVMIR() (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x48b708c)
#13 0x000055ba63074665 Fortran::frontend::BackendAction::ExecuteAction() (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x4960665)
#14 0x000055ba62db1bb1 Fortran::frontend::FrontendAction::Execute() (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x469dbb1)
#15 0x000055ba62da5e3e Fortran::frontend::CompilerInstance::ExecuteAction(Fortran::frontend::FrontendAction&) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x4691e3e)
#16 0x000055ba62db703b Fortran::frontend::ExecuteCompilerInvocation(Fortran::frontend::CompilerInstance*) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x46a303b)
#17 0x000055ba61a0a8f8 fc1_main(llvm::ArrayRef<char const*>, char const*) (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x32f68f8)
#18 0x000055ba61955b6b main (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x3241b6b)
#19 0x00007f800a7720b3 __libc_start_main /build/glibc-sMfBJT/glibc-2.31/csu/../csu/libc-start.c:342:3
#20 0x000055ba61a099ae _start (/home/rjzak/Downloads/llvm-project/build/bin/flang-new+0x32f59ae)
flang-new: error: unable to execute command: Aborted (core dumped)
flang-new: error: flang frontend command failed due to signal (use -v to see invocation)
flang-new version 15.0.0 (https://github.com/llvm/llvm-project.git 4fe2e42bbc18cb9e412b18dfcfe50e9b1f45f631)
Target: wasm32-unknown-wasi
Thread model: posix
InstalledDir: /home/rjzak/Downloads/llvm-project/build/bin
flang-new: note: diagnostic msg: 
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWFlz2zgS_jXyC0os3seDHhQfu96NKy7btfOowtGUkJAAFyB97K-fBkhZosaVZGaUt3XJPNBg99cnGmBavK1uSW8kCNJrwnXbyQYIJVa2HT7caNMbqgjtukZy2kut3LzfgK2thZY1b4v4klAliOyJBWgt6Xe0x7dFXFiidO94DV2HfJwIarbQB-RRKg7k8-f_3O2J9pgnWcQ5-W39eOuY250eGqGQX0_qhm4JQ3wMsSGOkZ-TltwswqtFuJ6ueTj9xtc4JYviehHfXOkX1WgqLD43zXO77Iz-ChzR3rBBNsLdJcq6QUlqu1TwQpbLUcoiuXqhtk3iJd4kqSXTinIug7oKCVk-j6IO3z2Dsc5cURaEQYgqlbu-7-wiQTg3-NvKfjewAE0-YTmBFOAEktYQQxozxqOSswrSKGZRKWpeQxZCxaI6zeo8iRZxNcp_mrCuyQR2UN8UKu1BT1N2BqggrRbQuImdtvJ1JN0q29OmAXEljSMhpJ1uAW_m6__ot583oOeGn8d_mcORC5ANWdY8IksMVBeVH6hGltDKfqnZV7LUDnffdo7H3kvLLIEso4GeO24E6gPx-uHhy4NTegoqF7s-CVpQGLvjzPvP1-vHawxahtIwtNmwJQZcALtw_HMOxldp7QDOEGMKKd4MAgN7B4QbaneEUf4N849DMIp_7HGAiAF1S6ZQD5FU3Ru9NbQliHxwcO3fct4s-n-l3XF-EpLwNcS_LGM0j0WVVWlK7o1UvVf2yWn_KLeKNv9EGzVgMJGetUSsaOaKjCQb8M6ZJPT_77yjE95JBCk5ZYaSfsgonhgVdRmGlNdVwkOy2RiwvTawQe8jI2dUyfD6WuabPF02Ug2vy60aRkLX-7wLrA7CRfwpfI1S5PKeuE5MMhNTVFGYMGKotECOXLRFZnxp7-pP_3p6f40DVwRurNcCH4LAvb1ZAZ3z9qAwxf3As0eDyFxcONYBR12zCC_RAUk6R1KEZVZh1dVe059D0ovRGv4rL6R0QoqDkGzmHi448IL4RMHgTtZjXm1qiiVpA8Zo560D-elFKswTjSULlwu3UjCtG-fK0RdnKDvopDTjJcKauSk_wS3CGM4ttEKeM6HFsdCkhjAuIswpMxrjEov5P0A9dsBlLbkdR91KEJdts5919_n24VJjNXvtffpcHln7yae4t6Q35jvrf0sl7nD9l2q7p57XxFnJOSoz07Y80TanaeyEUqXVW6sHbC1oC7bD4uC-GzXwdfsBXozsYQqhQX1RXzowvnPxoCsym_dxvlfH4rM0BhCUHOwooKeyGZ-_dE_6S3dPrV0L2mE5eJc8M72bMNn8MHiE7ISyxix-s9LeUUW3rkzto_uSDMolObjloj-3K3IRUVT13RWuhoYntqjTqPzTtriXHWDVgVkGo_lRfW022GFu0WOXB1KnUTuAzX4KErGgjDSsZf8dYNP1bvTUwtgv7ucJqOnQ9Btsc8AFxOnc5Jrg_x9MP6Od2Vuncly_ZfyK7YrbB0AOE0bJI2Ey5j01SLhVtd6XwfUvCAiG_p4FRHQaEDUrTmDvDfFhKszteH68CGeGN56V65qzsOT7jc2IqDauKCoxq6VrfrA4vjrM4BrF24epjpy14pcM11g-w53MamBYpHmefQ_3J2yX8OUY9_Ur8KGHaegXwK7yEFHNYKfzpotFjEXfg30zvX2A-1cgziuBgGaI532IoBkk8P0A8btk43dLuJH92NY_r_L5l1TUMkIlZlrmJ34pXHP5HZCTPgdlnzWnP9btD8Y5f5KnOU0Q_Ey7WXsU0ZCWdUlw77JpqeNwtOqsjaFvD1DjgsB31BxK51jv52NnRp7EdY7AZshnrU5U4S1nxKE-s-Q0QsYzydVJkx-HLMFdjeviN-g87L0nGD_V8HM77Pcd4-M41_Hx3X-Sxu76Lj4OT1xWVRTIKPjcRs-Q9bvqBypuksd9BT4Man-oBGPgu8OwlvqwJms2nl8hLI4bPr8DB_EDjn6U7LNjz47U2C4hKzF4YeOGzTEecJe3fPZjANguHNLtVMr_j5bmFlfa9_tESLpV2vaSk9ZuvZAp2P7Gb36eeCFWiaiSil70sm9gNT-0LI8OCF3pmE6Sam3GYLgYTLP664dEWVom8cVuVWRllddFAmVcYHcm0OQC8gJ7iDBNRckuGsqgsatF9mkRxy5gPAt3GpddXchVHMZxmEaYehG29wGjVZFWdYGFiWYCN-lpCJj4TeBwBNpsL8zKQ2LD1iKxkba3ByK2e67DBS8O-dOh32mz8l698IJXHvjvz-P4Jw">