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

    <tr>
        <th>Summary</th>
        <td>
            aarch64-pc-windows: failed to perform tail call elimination on a call site marked musttail
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            platform:windows
      </td>
    </tr>

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

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

<pre>
    Consider:

```
$ cat /tmp/a.ii
struct S {};

struct T {
  S Foo(S);
  S Get(S);
};

S T::Get(S key) {
  [[clang::musttail]] return Foo(key);
}

$ clang -cc1 -triple aarch64-pc-windows-msvc19.34.0 -emit-obj /tmp/a.ii
fatal error: error in backend: failed to perform tail call elimination on a call site marked musttail
```

(Other aarch64 triples, such as aarch64-unknown-unknown, work.)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysUs1uqzgUfprD5gjkHEMSFixII2Y5i_QFjO0ENwYj2zTqPP3Igbb33m6vZMno4_x8PxYhmNukdQPVCapzJpY4ON_8Nzqlx6x36qN5cVMwSnvgLbDn2bPtsBaoRCkiAnVxnIE6URgDrA3RLzLiBeFwgsMZ-Gnt3fDXJ85axAt2zgEdL0D1WpWwf3T8Dft1xAVfExXebkV41x9A9dfEp5KTtGK6rXXjEmIUxkJ1huqMXsfFT9vatfd7ySowiUr9mEu5wzx6M1uNQng57Mt8lvnDTMo9Qj6Gd7mrC14WDHM9mpi7_u2HGVcRhUXtvUsmrh9oJuyFvOtJJewqjNUKo8NZ-6vzIybGKIW1qK0ZzSSicRO6CcWKBhM1jsLftcIvhX-Ek6Qc_42D9p_kcdUSgF4wLHJAEb50LdN9co_p804lD-fvBVCdqYarmtci083uUHLGWMXLbGgqqaQQ-soVKWJyX9YlL3ndyyv11aFnmWmIUcU47XdleazKQql-X1PFNOuvek8MSqZHYWxh7ftYOH_LTAiLbnacs_qYWdFrG57Pk-jbsLZ9cgYioBcgmq2IyTbg7ZZN-lWdM9-kuXm_3AKUzJoQw_emaKLVzc9c_14i2eJtM8Q4p5lAHVB3M3FY-kK6EahLVLYrn7170zICdU8HAlC3mfDe0P8BAAD__7SOISc">