<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylVE2PmzAQ_TXmMmpEYIHkwCG76bbquVKPK2MP4NaxWdskob--Y_Kx7La3ShbYzMzze2-MGyun-qti2RNL9yzdnXo0MDgcuFOmg9Y68IEbyZ1Uv3lQ1oAy8OPL-gFsC6FXHlrkYXQIJwTHYzhYmN_CGq98QCMmOKnQQyfE6rLNM-FKFJq7GdNf4qxMX174GOxLmAakVawALgQOwQPXGp7gdeRatQqdj0Q4OOTeGt5oIsAn0gEkIX4EQicFDtvRo4_YDn1wSoQITJLm7XbBHpSg2Qq-9whS8c5YH5TwJI6HK0injgThEQ9A4pSRSvCAl4zQo0fo-RHBq8OgJzA2wIQBGiQvZxMkMaL9ZunXZ_4Zbnxo8joqWpGcwZJ_6ID8IeZUZgQCyzYsq5bWZBWoaMCRzJAs276BXhWB4CbyaBD4MGhF2xPzWAt_Q516JfoIGCuI0lGR1xNRH6Zo7JL3DvwhNgLPnLReLRD2MCiN_t5laMYwg80fZg9Zvnunv0wv43ruSDUcuDKz1C2w6vHyHUDaMTb3DCzfQ16x_B5h2TONa4ukRU_VVbiel5nZLXOh9831s5shWVaeF6D38Lua879Slxk32898zlym3WPLfH7-kMeq_QdnLsvvPTe__GX-DY1fmpjIOpfbfMsTAu6tq7uRfjcZktHpug9h8NH12aWOGjE2K-oULbQ-3l6fBmd_Iv0T2bPyfkRPkyIviyzpa1nKtuVSltuqWaPAvCmLSogiXRcPOYpNonmD2teseGTFPvn_LVWdpRmNdLNer7d5scrWRb4pK9mWouDVhrOHFOmU6FXEWVnXJa6eIZux8xTUdN34tyD3XnUG8cYwqKCxXtwg8Xp76wndJ0_JTKme-fwBz7Knbg>53652</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
qualifiers for auto_type in C
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
gustedt
</td>
</tr>
</table>
<pre>
Hi,
when preparing for standardization in WG14 of this feature we ran into an inconsistency with gcc.
For declarations with `__auto_type` gcc accepts all C qualifiers in a reasonable way, whereas clang refuses `restrict` and `_Atomic`. The diagnostics that clang gives seem to indicate that these have simply not yet been considered
> restrict requires a pointer or reference ('__auto_type' is invalid)
> _Atomic cannot be applied to type '__auto_type' which is not trivially copyable
A small example that compiles with gcc but not with clang:
```C
int main() {
double x = 37;
// clang doesn't accept that
__auto_type restrict xr = &x;
restrict __auto_type rx = &x;
__auto_type _Atomic xa = x;
_Atomic __auto_type ax = x;
}
```
Thanks
Jens
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxtVE2PmzAQ_TXmMmpEIIRw4JDddFv1vFKPq8EM4JbYrG3y0V_fMflit5UssD3jN--9wVSmPpfflUieRbwT8fbYkYbB0oBW6RYaY8F51DXaWv1Br4wGpeHnt-UKTAO-Uw4aQj9agiOBxRD2Bqa3NNop50nLMxyV76CVcnEp88K4Ncke7YTpLnGxjt_ecPTmzZ8H4lU4ASglDd4B9j08w_uIvWoUWReIIFhCZzRWPRPAM-sAlhA2gdFZgaVmdOQCtiXnrZI-ALOkqdzWm72SPFvAa0dQK2y1cV5Jx-LQX0FadWAIR7QHFqd0rSR6umT4jhxBhwcCp_ZDfwZtPJzJQ0Xs5WRCzYy43iT9-ky_wo0PT95HxSuWMxj2jyywP8ycj2lJIJKNSPK5NUkOKhhwYDNqkRQP0KsikKgDj4oAh6FXXJ6Zh7PwL9SxU7ILgOEEUzoo9vrM1IdzMHbOewtuHxpBJ2StVwuk2Q-qJ3fvMlSjn8CmjclDkW4_6F_Hl3H97lg17FHpSWoBIn-67APUZgzNPYFId5DmIr1HRPLC49qi2pDj07m_fi8Ts1vmTO_D9ZOdIEWyPs1A7-EPZ07_S51n3Gw_4ZQ5T7vH5vl4-pQn8t0nZy7L1w71b3eZ_yDt5iZGdZnWRVpg5JXvqZzdjXBxH9X4pjxHo-3LzvvBhVZM1rXcnbFacPt40feH2-vLYM0v4ouSvCjnRnI8ydJ1lkRd2ayqXMYpbqq6lktqmmyZ4SquNkW6KpoijXqsqHelyJ5EtotUmcQJj3izXC6LNFskyyzdrPO6WcsM8w2KVUzc-H4RCi-MbSNbThyqsXUc7PkP4h5BdE61muiGzxo7Y8t25P9M7aOJbjlx_Qv0vZGY">