<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55389>55389</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-cl and cl have different behavior
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
fsb4000
</td>
</tr>
</table>
<pre>
```c++
#include <stdio.h>
int main() {
#ifdef __cpp_aligned_new
puts("has aligned new");
#else
puts("nothing");
#endif
}
```
```
$ clang-cl /std:c++14 /Zc:alignedNew main.cpp
$ main
has aligned new
```
```
$ cl /std:c++14 /Zc:alignedNew main.cpp
$ main
nothing
```
```
clang-cl -v
clang version 13.0.1
Target: i686-pc-windows-msvc
Thread model: posix
InstalledDir: C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\Llvm\bin
```
Probably not a big deal but Microsoft STL doesn't expect that.
So
```c++
#include <iostream>
int main() {}
```
doesn't compile with
```
clang-cl /std:c++14 /Zc:alignedNew main.cpp
In file included from main.cpp:1:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\iostream:11:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\istream:11:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\ostream:11:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\ios:11:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\xlocnum:16:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\streambuf:11:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\xiosbase:12:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\system_error:14:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\stdexcept:12:
In file included from C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\xstring:14:
C:\Program Files\Microsoft Visual Studio\2022\Preview\VC\Tools\MSVC\14.33.31424\include\xmemory(96,56): error: cannot initialize a value of type 'std::align_val_t' with an lvalue of type 'const size_t' (aka 'const unsigned int')
return ::operator new (_Bytes, align_val_t{_Align});
^~~~~~
1 error generated.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNV02PozgQ_TXkUgriI5DkwCGdnpZGmhmt1K057CUyuADvGBvZJh_767cMSadnNtu7Go1WIQgol131_GxSj1LzUxHk0XRWQfLgz-gxiDZBkgpVyYEjBOnWOi502Abph7N3vArloGNCBckqSNYQLN-MrTnWsNtVfb9jUjQK-U7hYfIDHf3g7DguaZmFcxfwXZKEggXpNRZKi7cGKu1aoZobAxQX9dlaPp4fLrO8bSYLqCRTzbySECRPNN8g3ZwJiRe-6feKWs44v-BhnHhI07sGGKkYrR-n9J8R_ILcF1ZuJrnV-Drv-f5NA-zRWKEVxGkYhfHkeWGmQUdYQOSrfN5X84NQXB_svLP76tynNcg4dJqj9D17bcVxcn1U1jEpkT8K411bugTZ9jejG8M6eBISLdmfRWW01bWDr8IOTMKzG2j7kSeJaK39ANwLojXbft3S5UVr6cd9kvuObuWFiZuTp2QlK-UJiCdgUIoGOFIOKAcH18zPL5-Aa7S0t5cO8Nhj5cC1zIVTmGf9Q453Xh6hrSNOun9_e_5ps47XK5xKdz1xBQfhWnh_TX9mP31UUPvw5ylwqI3urn3STezX7Z2uv3hdPz-PZrwI0zRM40WyIOuc0T-90ruJ7wzZvQK7X8a0vT9QR6krNYxs5XcFbFrFcqjvkDNayZJR3SZkyV0hsyfrsNuhMdoXoXhxX-gcx2OFvbs_4o603byw-I6z_xlCh502J6qY6zxItlk-Cr8NXBYTKqZ8XRdKOEH17U-kEr9nckDQNbhTT_U4WU4F8VIBd-TfOWqeyilTIP82otKkXMBSvKknAWDf2NUzKDuJParp1OhRverVy2HQDUbBlFn3aJjTxqtDH233cHJEXLKFt5iWD7uNN70ueKNw4eeOIPsQLL8_x3DxRB80qDwo5OE7ImTGi5Sv0zWbOeEkFq9Cgynu9WvL9gikvms0SPqmRGoQ2swGI4vWud7_vZMAobMhtocyJC1DhvTSbbrNe6P_ILVFprB28Kw8ZVm6Ws_aomTriGcY0y-J6_WKlaucYc2jZVUni7ycSVbS10IRZA_--4C4HUP4L4TscSYKv_miLI7jVRwneRiv8jxZ5YsoqrM6wmWwiJBkjgw9jlCbZmaKEVI5NJackgq6vTqZHVcdx3QUnw2u1aaobUkRo9mYuhih_wV_Svt9">