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

Reply via email to