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

    <tr>
        <th>Summary</th>
        <td>
            [Clang][C++11] `decltype` does not strip `noexcept` and cannot form double pointers to noexcept functions
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    https://godbolt.org/z/a7Ebf5f8M

```c++
void f() noexcept;
decltype(f)** p = nullptr;
decltype(&f)* q = nullptr;
```

```
<source>:2:15: error: exception specifications are not allowed beyond a single level of indirection
    2 | decltype(f)** p = nullptr;
      |               ^
<source>:3:15: error: exception specifications are not allowed beyond a single level of indirection
    3 | decltype(&f)* q = nullptr;
      |               ^
```

(A similar error with `__typeof__`/`__typeof_unqual__`)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8lMGOmzAQhp9muIw2MuNA4MCB3Sy3fYbIYJO4dWzWNtmmT1-ZoLRdRVr1UstKbM_8eD5GPyIEfbRKNVA8Q7HPxBxPzjdvOgrThpP7nvVOXptTjFMA3gJ1QN3Ryd6ZuHH-CNT9BOrE7rUfi7F6A7YH1q6_JbvNAeg5zeX04rTEEagCqtE69WNQUwS-RqUaTLxOCqgagWqgFqjFCYHv0c7GTNE_ygUq13R8f5h7r-VhgeuWvwQ3-0EBfwXeEvA2L4C3qLx3flksxWpnMUxq0KMeRNoFFF6hdRGFMe5DSezV1VmJAoO2R6PQqIsy6EbUVmqvhqS6XYqISAi7F_wXdFxGUv09oHh9yML_Gwv_zPJla75medg7qloM-qyN8Dco_NDxhFCywyFd7cbDIWmo-_Notu-zMGukzmTDZc1rkakm3xGVOfGaZ6em5IxyuSUmeF6VYz1SNfJC5YJteS84z3RDjLasYpQXVHK-yVW9q-siL8rtKPu-hC1TZ6HNxpjLOTkl0yHMqslZXla7zIhembC4jmgwwh6BKBnQN0nw1M_HAFtmdIjh9yOijmax6suiKPZpeTNXnkOxT_T3V18ylE6FpZchej2l6N1wJUNhJQ7Cpvjo_Bmlm3ujcHLaRuUDRnf3J46zXRodstmbz58DHU9zvxncGahLta5_T5N339QQgbqFPQB1K_6loV8BAAD__1yMUtk">