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

    <tr>
        <th>Summary</th>
        <td>
            MC: Wasm globals should not be allowed in the text section.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:WebAssembly
      </td>
    </tr>

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

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

<pre>
    See https://github.com/emscripten-core/emscripten/pull/17333.

Currently the following code will work find without `-g` but crash with it:

```
.globaltype my_global, externref
my_global:

.section .text,"",@
foo:
  .functype foo () -> ()
  end_function
$ clang++ -target wasm32-unknown-emscripten -c  -O2  ./test.s -o test.o  # works
$ clang++ -target wasm32-unknown-emscripten -c  -O2 -g ./test.s -o test.o
clang version 15.0.0 (https://github.com/llvm/llvm-project.git f6f53e990d0ed3ec2162c6f4f7afab2e433eec63)
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /usr/local/google/home/sbc/dev/wasm/emscripten/../llvm-build/bin
 (in-process)
 "/usr/local/google/home/sbc/dev/wasm/llvm-build/bin/clang-15" -cc1as -triple wasm32-unknown-emscripten -filetype obj -main-file-name test.s -target-cpu generic -fdebug-compilation-dir=/usr/local/google/home/sbc/dev/wasm/emscripten -dwarf-debug-producer "clang version 15.0.0 (https://github.com/llvm/llvm-project.git f6f53e990d0ed3ec2162c6f4f7afab2e433eec63)" -debug-info-kind=constructor -dwarf-version=4 -mrelocation-model static --mrelax-relocations -object-file-name=/usr/local/google/home/sbc/dev/wasm/emscripten/test.o -o test.o ./test.s
clang -cc1as: fatal error: error in backend: section doesn't have defining symbol
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
```

I think both invocations should fail but with a nice error such as ("wasm globals not allowed in text section").  The fix would be to put a `.section` directive before `my_global:`



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzFVktv4zYQ_jXyZSBBpiw_Dj6keQAFWrRAFtjjgqRGMjcUKZBUHP_7Dik5trfbAG0OBQRa1JDz-ObxWdjmtH9GhEMIg8-qu4w90dOpcBhFIW1PG-y9dGoIaHJpHd58oc0wak0_y01VVUVWPmTl3bTej86hCfoE4YDQWq3tUZkOpG0QjkprOFr3Aq0yDW3DwY4BsnWZd7SAoI103B-SCFSIvl0ppzPzk7ZFp63gOpwGhP70bdpl7B7wLaAzDtvp3EV2q67wKIOyBopAN-hixlh67rPVbKK19v0SQNGORiZz9B0yts3YDvKsepzfz-fQNN_SUVI-G2QrkJqbLmO_0AN54K7DAEfu-4rlo3kx9mjyC8aQS4D8D0ZGCeeAPhQecgvpzQIZrBKS_rP68-6nFia1SSW8ovMRpmVdlEUZY_2gcLR-Pf_kg7PfCeKCDkC7busKd7uyKbGpULLlmsl1u2o3vOWC4aqqEOW6eofxS4qAjPxzEPPBg0PeQE8VFjMMg_XqbRL9anzgWmPzoFwUkWOjd9E9K2OpPHXWdjpW98H28ccLSWuDr7RGsz_WfVGcYxOj0g1thJrdiLgoE2OW6P2lGlJF_XuzfzPCnlI28mVNGil9cskpX4Fc0_hRnlulMdWsFd8h7zn5GD_lhvcI57RP5ZLLYYQODTol6WKDYuyo_ftBaR5rOW8ijA-fQxHy5shdm0_aCa5mlOgiTP9TtUU0J2eUaW3-QqOJgpSWaseNMlh39nj2jIQrAtJhDD_BkkoPqNRCxC2J-Ft-ORD7SkTfLsh_GsZzz9qrqXBp5Ov2nUolln_LqRsAnbOpG9ILKAOCyxeMUd_BeSQ2Fj3Z2AQ48FeEBmlixznuT72welL_52-Pd8-P4EfRE-ScxncHDgfrAgT7Ebn8JGu0Vd6PSI3zBJzIQRmpR-KMSCMTJ0Qvg-MS44gfyNDUadiAt6ObPseb3HsrFQ8kcKOBCbCZpJ4DKYFm7IcLF9ySyjw4yK4yLyBs5CHz-p5IT4ylG0JS6URXiag4GCVxxtOPkr74iRJYzBtM7OPBWIIpMiLG-CCyzhnwNCV2BcCXSJvqjYZ7tCMwQjmMEV5y8cxYkSypF-OGkiOwJYqO8humu41oWhfNvmp21Y4vggoa97_fx6R_vXZyjjD6Stav3T3gjcvFYnR6_9_TXK_Zplwc9rXY7BrqTtaK7YoLKfm23FS7NS-3m-VyiwvNBWq_z2qiNnap1a8o7ij9vdCniF79sFB7VjJWrtl2ua6rcl2ITV3XXKzlrtq2csOI15EmoC6iT4V13cLt50HbeRJq5YO_CKmSVGcQk2nSz0f6w-L21JfLslykQPYpir8ALHYDeg">