<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylU8ly2zAM_RrqgqlHouxIPujgOE2nh56atpNThgsksUOJGi5Ona8vJLvO1umlGmgBQTw8PBHS6WPzw8QeYo-gnEaQaN0jSEdrX75-34MYNXza7yk4TMYimAghKYUhtMna4wqUFWMHrTA2rFh-w_Ld6XlHiCFSuvAatMMAo4swzAsR4bEXBNS7ZDX0YppwBDcSCxMgmJhENG5kfA8yRfhM6eRUlIAIAjyKQJtb58_FowM8CJtm4FMjY4j4a_LQplHNUK-Y9TFOgZU7xm_JOqels3HlfEfeE91yi_XT_X378Zx0lZ9tcUP0SUWQIiCw6ppVN6y8fhXS6M0B9WX59Iw4THZmyMp9PFLDYkD4Nvd48e5Yea753MHBGQ0t4_Ud4zuIjG-XqssuoIsi8xZaJ7GjUQ9KhEglCHk3w_F6znnmQnRfkFrQqe_6Pe7mmmwQR4kPaUyB-tnckF26Izb6Tf9zXku1Z21OtfU_ar9Wi2TZ_VXUi_yZbkq9LbciEyn2zjfRiM4NQglvXMiSt82bP0sHO8kVnVxyrD38eX2YvPuJinS5NSEkDPSxKauqzPoGqwLXao1cVVxebXQlRFHVZV1IVeetVJkVNCGhmeXhfMRHWCDom7TJ_p-BaXjOyYqiqNbFhq94e9WWAtdFXmy5yJGtcxxo2FYzznxoM98skDJ1gYLWhBiegyIE042IC2FiGE202JzGhmbNHdDbI4iu8zTR9B9oMGkUz9NkaNP7WQrZwrlZCP8GZ-JSZg>53773</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang is overly aggressive when evaluating constexpr functions
        </td>
    </tr>

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

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

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

<pre>
    With the code below both MSVC and GCC compile it successfully. clang fails.

The standard does not mandate what should happen on this situation, but I don't see a reason for clang to evaluate the constexpr function.

https://godbolt.org/z/b9e8zYYfE
```
struct base {};
struct derived;

template <typename U, typename T>
constexpr void f(T* t) {
    (void)static_cast<U*>(t);
}

void g() {
    [[maybe_unused]] derived* d{};
    f<base>(d);
}

struct derived : base {};
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx9U0tv2zAM_jXyhVhgy06dHHxI03XYYad1G3oq9KBtDbJl6JEu_fWjnSxd2mEG_aAofvw-mpJOH5sfJvYQewTlNIJE655BOlr78vX7HsSo4dN-T8FhMhbBRAhJKQyhTdYeV6CsGDtohbFhxfI7lu9OzwdCDJHShdegHQYYXYRhXogIz70goN4lq6EX04QjuJFYmADBxCSicSPje5ApwmdKJ6emBEQQ4FEE2tw6fy4eHeBB2DQDn4SMIeKvyUObRjVDXTHrY5wCK3eM35N1Tktn48r5jrwXuuUWNy-Pj-3Hc9JNfrbFDdEnFUGKgMDqW1bfsfL2KqTRmwPqy_LpGXGY7MyQlft4JMFiQPg2a7x4D6w813xVcHBGQ8v45oHxHUTGt0vVZRfQRZF5C61Ts6NRT0qESCUIeTfD8c2c88qF6P5FakEn3Zv3uOtbskEcJT6lMQXSs74ju6gjNvqN_jmvpdpzb0619X9qX3eL2rL7Z1Mv7c90U-ptuRVZNNFic_r3NDDugN4eQXSdp7EkMJoumqfzSBja9H4gQpa8bd5MAh2EJFc06eRYe_jz-jB59xMV9fHehJAw0Me6rOsy6xtV4VaXsqrkphUi16pVepO3uSpuVCVrmVlBJyo0czs5H_EZFgj6pl5mpuE5JyuKoq6KNV_x9qYtBVZFXmy5yJFVOQ50tFYzj3lEM98slGTqAgWtCTG8BgXJ70bEpRzhixR755toROcGoYQ3LmQLgWYR8BtjLD2m">