<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">