<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylVd9vozgQ_mvIywgENoTkgYemabU67Z1Od6d9XRljfrQGU2yStH_9zRCakFa7utNK5rM9M_48Y3uG3BSv2R_GgYBi7HUjhVNgSvAYT3gaMbBNJxW4urHQdAejD8qSrSqbThVQjp10jelQhzYKu350IE2hvHDvhXdn_EsVo0TrQfWD8fjdUuetw3OT85xxCHF7hg34WeZee4U7gnXDKMlVL92dNYA74n4ev8yvNuyumCnTPaiLyWzwgSJfUChai00IL9l5yf7KUnrsnpT2Yl2RpCZoCJ4Ingk0QUvQERiCnsARCIKR4EBwJDgRvF6YFbyQYFg4Llwj4c1jG49tbwKg-9pMIRP9jQ6gA4_v4Rm1O_SPLzT9pIlQk4DIkSKcXd3emD29EyA2N5p6khHeYyOm9B7wSHbUloYvkyH6VwbTqWo61mTXUre0K81AoZCM7-ZVw6eIAIZ3vpeguCF4P4yOglhI0YWgmBaFN_Z4q--TxfAwWY4THqbjiZdPzPf4wxTG8RzGCbvJ9np7FzIhP9_XfIULyo-Sy_JLeixz5t60regK0JiDP0onW58FUouuAt93YqiUQyePwrac-WP33Jlj5-O0Af8EEqpafo8CCb6Zhxb8v5fc_5VKWKvaXKsBfHmlMvBF2DowgWv7n8T2MAz4Blplrah-GNyce2dqNGKcAD9QtJwG9rXNjYY3aBuLNayCYKpVWElun4UUWlP_div2koefOPn167ff4aAGi6WPNtP60Jqh8qM4CIPQH2REiZRjKTw2robauZ7c9NgjtgpFYx5Ig9XhkVbOnY_F8UlJTOBH1LUNDRhfb8poo3IeJkJti0TEJYuiUIbxRiWFKJMwTLdbBqLH4q3mgvenFg4zqSXXTpv193Xs41MZT6si48WWb8VKjK42Q_bPdFy_Cfm8Gged_W8_8WhHZXGQxCFjqzrjcVJuWBiuizzapkUp-SbdxGkUCh6nIlUrLXKlbUaFlbFOHWGioHKf7Fe_7kGTMeyw8SiOYr4OZJhvGZPrdJsmsohjLw5VKxodEE-Ad7YasokyHyuLSt1YZ69KfMpN1SmVnf8EK9c4rbKPj-zTE4NjrTr8DbZ9oyeFBGcAs4Cy1pEOp-fsgcCspiCyKYJ_ATsiDdI>54022</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            error: symbol missing .functype when compiling .c to .s and then to wasm32 .o
        </td>
    </tr>

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

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

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

<pre>
    Not a duplicate of #53712 since this involves a defined function in the input code

Reduced repro:

```c
# 0 "" 3
typedef struct a {
  int c;
  struct a *d
} e;
struct {
  int b;
  e **aa[]
} f, *s;
g, h, i, j, k, l, m, n, o, p, t, a, u, v, w, x, y;
e q, r;
static z() {
  if (a * t) {
    n = k + j;
    p = 1 % ab(0, o);
    j = k = i;
    h = h << 1 | g++;
    q = *f.aa[l][m];
    for (;; q = r) {
      r = *q.d;
      if (n)
        q.d = 0;
    }
  }
  v = u = v % 4;
  s->aa[w][x] = y;
}
ac() {
  z();
  z();
}
```

Command line:

```sh
clang --target=wasm32-unknown-wasi -x c ghc_1.c -o ghc_1.s -S

clang --target=wasm32-unknown-wasi -x assembler -c ghc_1.s -o Hash.o.tmp
```

Error message:

```
ghc_1.s:23:2: error: symbol z missing .functype
        call    z
        ^
```

LLVM version: llvmorg-14.0.0-rc1, but with https://github.com/llvm/llvm-project/commit/2368f18eb305ae9d5a4f2110c048e5daf5007992 applied
Platform: x86_64-linux
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVV1vrDYQ_TXsywgE5mOXBx6y2URVdVtVbdXXK2MMODGYYLOb5Nd3hiW7bKJ71Urm2J4ZH8_YnqE01Vvxu3HAoZoGrQR3EkwNHovTeBsxsKoXElyrLKj-aPRRWrKVteplBfXUC6dMjzq0kdgNkwNhKumFBy-8O-OfspoEWo9yGI0X3611Xhaem1jmLIYQt2fYID7L3NsgcUewbpwEuept92cN4I64nxdf5lcbdlctlNsDyIvJYvCJolxRSFqLjXMv3Xvp4cpSe-yelPZi3ZCkJVAETwTPBJqgI-gJDMFA4Ag4wURwJDgRvBK8XZglvJBgXDnOnRLw7rGdx_KbAOi-dnPIRH-jA-jBiw_wjNo9-hevNMOsiVCTAi-RIlxczW_Mnj4IENWNpp1lhPfYiGl7D3gke2prw5fZEP2rg_lUNR1ruu-oW9vVZqRQSBbvl1Xjl4gAxg--l6C6Ifg4jJ6CWEnRhaCaF4U39nirH5PV8DhbTjMe5-NJ1k_M9-KHOYzTOYxX7Gbb6-1dyLj4el_LFa4oP0suyy_psc6Ze9N1vK9AYw7-KJ1sexYIzfsGfN_xsZEOnTxx28XMn_rn3px6H6cK_FcQ0LTiexQI8M0ytOD_teb-r1TcWtmVWo7giyuVgV-4bQMTuG74SWwP44hvoJPW8uaHwS25d6ZGIxYT4AeSltPAvnWl0fAOnbJYwxoI5lqFleT2WQiuNfXvt2IvffiJk9--_fMbHOVosfTRZlofOzM2fpQEYRD6o4gokUoshSflWmidG8hNjz1ia1A0lYEwWB0eaeXS-Vgcn6TABH5EXadowOJsV0c7WcZhymVepTypWRSFIkx2Mq14nYbhNs8Z8AGLt1wK3h-aO8ykjlx73WXfs8THpzK9bqoirvI45xunnJbF58P6clRwamWP5bwblJ4VApwBvE16fY50OD2_AgjMZhp18b9jxT0naXGQJiFjm7ZgUZ5F-W5bZmlaVUmVZVUukl2SirTGYNON5qXUtqDizFgvTzBT0C8jPWxUwZAGWxwlURJngQjLnDGRbfNtKqok8ZJQdlzpgPwI8NY2YzG7VE6NRaVW1tmrEh-zanopi_O_YMMn15qx-Hs-u1-5eN7Muxez9_8C_Lf4QA">