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

    <tr>
        <th>Summary</th>
        <td>
            [ARM64EC] Can't `std::invoke` a virtual function
        </td>
    </tr>

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

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

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

<pre>
    Minimal code to reproduct:
````c++
struct ChildClass {
  virtual int fn() { return m_c0;  }

  int m_c0{0xcd};
};


int main()
{
  auto obj = new ChildClass();
  auto v = std::invoke(&ChildClass::fn, obj);
  return v;
}
````

The crash point always like this:

> [0x0] ConsoleApplication1!ChildClass::`vcall'{0}'+0x54   0x66f818fc00 0x7ff78acc1184 

![Image](https://github.com/user-attachments/assets/c515e077-1d87-4ecb-99f4-fbf6c331429b)

Verison: clang 20.1.4
target: arm64ec-pc-windows-msvc

This is a arm64ec specific problem. This can't be reproduced on arm64-pc-windows-msvc
For a simple virtual function call, there is no problem.

This bug also makes googletest unusable.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8VE2P5CYQ_TX0peQWYOOPgw_unm0ph71EUa4RxmWbHQwW4J7e_fURHu9MZxNFQrJFvXr16lEgQ9CTRWyJuBDxcpJbnJ1v4_b48ePUu-F7-1VbvUgDyg0I0YHH1bthU5HkHaEdKenHUoRf0qJdiH5TEa6zNsPVyBCAVGkf4K593KQBbSOMlvCa8CYFwWPcvIXlL0VJfgEg1UuiTzkJu-9XF_pQQ4rkie3zZ187TOqDdI-_15RbdOD6b0DyF7D49qTrwOZPwPsOC3FIDeadtnf3ijuufMrbY6mBa2J-4jj6uH9K_KdJ71r_mBGUl2GG1SXd0rzJ7wGMfkWIsw6HubQj-Rcg4kIflIgXuDobnMFuXY1WMmpnGeHsV1mkpHcljSG8SpYlDbwi_EIfogAA-ijLsWb1qCgF-qjGsaqlUozVBRxFOSPi8tsiJyTihfB6jnHdyfmN8Nuk47z1Z-UWwm9bQJ_JGKWaF7QxEH6TIeD-owQTSKsqY0NdZQWqPmuascjGfixVnrOCN_1xVLT7E70OzpK8A2WknYDTMzsXhHZR-gnTvIH0S1mgylaVvWk7uLeQLeGufnqqA-gA8icMwopKj1rB6l1vcDnDjlHSEl5F6PFjmnEAZ9_z_oP85jxICHpZDX5M8LhZlU4A3q2-QpzRYxJg3UfBJ2X9NoE0wcEiXzHA5NxkMGKIsNktyN7g-TS0-dDkjTxhy6qi4rTheXWa20HQfqj6XFCUShSs6QfW9PnAWV0yyseTbjnlggpW0ErkojqLXChW1UrUrKdMDaSguEhtzsbcl7Pz00mHsGHL8qYW5cnIHk3YXwHO0xXZo4Tz9Cj4NiVl_TYFUlCjQwyfNFFHsz8f3e9fy-LLdR_Tw2BS0l_vUUlB_svC0-ZN-z8zloodn2z17huqSPhtl5jG7Ojh3vK_AwAA__-I5HW-">