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

    <tr>
        <th>Summary</th>
        <td>
            Missing "no return statement in constexpr function" error for a templated constexpr function
        </td>
    </tr>

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

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

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

<pre>
    Hi all,

I found a case where clang issues a warning about "non-void function does not return a value" for a constexpr function. For constexpr function, clang typically issues an error and no warning.

The code to generate the warning is

```
template <class...> struct a {};
template <class... b> constexpr a<typename b ::c...> d() {}
auto e = d();

//constexpr int f() {}
```

Or a link to compiler explorer https://godbolt.org/z/1rd4W8exr
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0kk9v2zAMxT8NfSFqKJLrOAcf2mTGdhh2GbCzLNGJNlkyJLpt9ukH51-LIgMCBrbJx_ekn87Z7QNRC4_P8Lgr9MyHmNrMyY1RrZuij_bYfnWovQe5BbED8XSu33CIc7Co0ehM-HqgRGi8Dnt0Oc-UUeOrTsGFPeo-zowgZYjh4SU6i8McDLsY0EbKGCJjIp5TQI0v2s8EUuIQ06IeQ2Z6m9JtpsQupjvvQW4vBvg4OaO9P96sBKSUFr1gMcSrsfJjoJ8HQhMtIUfcU6CkmZAPdEvh8sd2qMXld3pkGie_TIDaGq9zLssS1BfMnGbDqBHWz7DegXr-fz_2y8R7MA1qy8eJgh4JewT1BOrJXIQtyAbk5qp7EtUzR1wkd9fPt32XKjuQ3fsGFxiHO0Kfwp3rj-U6vAt_lhMycZycp4T0NvmYKOGBecqLx9OOfbR99FzGtAfZ_QXZrZKtfjX0lgrbKrtRG11Qu6qbZrVqhKqLQzvUldxURtnH9bBuhF5VpjHSDIOy1pi-LlwrhVSiVkJsKqHqUpIQm6HS62ozKNICKkGjdr70_mVcdhcnANpa1at14XVPPp9YlzLQ65kOkHJBP7XLzEM_7zNUwrvM-V2FHXtqv7ucFxBOIF-BzayZRgqMLtyFUl7QO-N8vXd7p7eYk28_HaPjw9yXJo4gu8XO5e9hSvE3GQbZnREH2Z1C_gsAAP__s8c16A">