<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJy1U0uTmzAM_jXmognjmITAgUMe7aXT0-6ht4yxReLWYGqbZLe_vgKS7c7O9tDZKWOIFFnS9-lRO_1cPZ4RGmetu5ruBHsmdnRAOY1gAnQuktz2xqKGq4lnUFbSvaciX-QruCyzlKd8tnx9AHyK2AXjugDYyZqcmNjD9UzuYF4iBQiDUhhCM1j7PDt_K3Jow0VRyDJl_MD49iFiHyA68Nh7pweFLNvOpmUKSkaIGGKq-n7-k-X8dmZVZKZTdiAiLNvH5x6P0UsTA8s-3W5MX9NFYGILx2MffSagYaJgogS22VHmOPgOOMt2pB_eurXSdPPtm2WzmwWAEPWINtt6bN0Fjx4b9NiNHPYalR3xTK7bW77xELDJZzSCJNgHWFLqe8xXaO75Du9SF-mtTfcCweIBYNG0YfGnQ6_JvPF_qWu2FZRtu9rQB9B750dBDtG1MhpqlvRmbDP8HKQ1jbkPiexAau2pxRB6SaT_Y1X-5WHrW-uXMxs4YYdeRtTp-zM0DyJiG8CaH_h3AqAdzutCs3oxekSqnPeoaExHVvfRnRuzAJq3QAP3MnbzGH6mAzJGb-ohjgGRSkorUCPMGTXIAFe0do42rQwFI-8b4vVO00W2PlABzzH2Ycw8xT05XTsbU-dPpP2it_iiH5VrOip2megq02VWyoTae3a-kl761nSYDN5WbyJRj4c6pXUmxdrL_WdB3L8TY1JNCAMGEtbZivPkXDUrjqIQcqWyUhV5XouyXNeocFQFqsTKGm2oiAATosMrTCFIJi7JxxGYSnAh-FKsebEqV3nK81pxnkmBa1HgBhkBpIW26RhnLFLiqylkPZwCGa0JMfwxyhDMidozASaE0USL1Qd2JJkAVxPa31Yvsrw>53400</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
error: automatic variable qualified with an address space
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ararmine
</td>
</tr>
</table>
<pre>
The following C++ code is not compiled with clang x86-64 v13.0.0 with MS extensions enabled, while it compiles successfully with X86 msvc v19.
Steps to reproduce:
1. cat test.cpp
```
#include <type_traits>
int * __ptr32 f() { return 0; }
int main()
{
std::remove_reference<decltype(*f())>::type a = 1;
return 0;
}
```
2. clang test.cpp -S -fms-extensions
```
test.cpp:20:47: error: automatic variable qualified with an address space
std::remove_reference<decltype(*f())>::type a = 1;
^
1 error generated.
```
Seems like std::remove_reference does not provide a correct type:
clang - __sptr __ptr32 int // attributes need to be removed as well
msvc - int
[demo](https://godbolt.org/z/8KdTcofnf)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1VEtv2zAM_jXyhYihyHYSH3zIY7sMO7WH3QJZohNtsuVJctLu14-2k7YousMwLFAc0uTHjy-ldvq5ejwjNM5adzXdCfZM7OiAchrBBOhcJLntjUUNVxPPoKwkv6fNarHK4bLMUp7y2fL1AfApYheM6wJgJ2sCMbGH65ngYF4iBQiDUhhCM1j7PIO_bVbQhouikGXK-IHx7UPEPkB04LH3Tg8KWbadTcsUlIwQMcRU9f38kq347cyqyEyn7ECFsGwfn3s8Ri9NDCz7dPOYnqaLwMQWjsc--kxAw8SGiRLYekfMcfAdcJbtSD-8h7XSdLP3zbLezQJAiHrMNtt6bN0Fjx4b9NiNNew1KjvmM0G3N77xUGITZjSCpLQPsCTqe8w32dz5Dh-WLtLbmO4NgsUDwKJpw-J1Qm-LeYd_6Wu2FcS2zdf0APTe-VGQQ3StjIaGJb0Zxww_B2lNY-5LIjuQWnsaMYReUtH_sSt_82HFbfTLuRo4YYdeRtTpxzs0LyJiG8CaH_jnAkA7nK8L7erF6DFT5bxHRWs6VnVf3XkwC6B9C7RwL2s3r-FnOiBj9KYe4hgQqaV0BWqEmVGDDHBFa-do05WhYIS-ZVzsNDmy4kANPMfYh5F5intyunY2ps6fSPtF380X_ahc01Gzy0RXmS6zUibRRIvVP0w7Gbyt3nGT31Cn9AdAirWX-8-CuvWdekSqCWHAQEKR5Zwn50qXuSoLXnIhVjmqbFNovcywaPhyVfJMJlbWaENFJTMhOrzCFIJkqj4xlSAgX4qCb_IyX6V8VStOMIGF2OAaWc6RLrBNxzzGpiS-mlKqh1MgozUhhlejDMGcaBwTHcWntpydr6SXvjUdJhN3NeX-G1kInIE">