Issue 55389
Summary clang-cl and cl have different behavior
Labels new issue
Assignees
Reporter fsb4000
    ```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.
```


_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to