| Issue |
169868
|
| Summary |
[ABI] Leading :: changes mangling
|
| Labels |
ABI
|
| Assignees |
|
| Reporter |
ChuanqiXu9
|
```C++
template <class T, std::enable_if_t<std::is_const_v<T>,bool> = true>
void foo() {}
int a = foo<const int>();
```
and
```C++
template <class T, std::enable_if_t<::std::is_const_v<T>,bool> = true>
void foo() {}
int a = foo<const int>();
```
https://godbolt.org/z/9cY5TdesM
will produce different mangling.
They first will produce _Z3fooIKiTnNSt9enable_ifIXsr3stdE10is_const_vIT_EEbE4typeELb1EEvv and the second will produce _Z3fooIKiTnNSt9enable_ifIXgssr3stdE10is_const_vIT_EEbE4typeELb1EEvv
This also introduces an ABI breaking with GCC as GCC produces _Z3fooIKiLb1EEvv
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs