[prev in list] [next in list] [prev in thread] [next in thread]
List: llvm-bugs
Subject: [llvm-bugs] [Bug 65137] Clang does not use user defined conversion while gcc does
From: LLVM Bugs via llvm-bugs <llvm-bugs () lists ! llvm ! org>
Date: 2023-08-31 11:52:21
Message-ID: 20230831115221.81b234d735c3a104 () email ! llvm ! org
[Download RAW message or body]
[Attachment #2 (text/html)]
<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/65137>65137</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang does not use user defined conversion while gcc does
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Horrih
</td>
</tr>
</table>
<pre>
Hello all,
Disclaimer : I am not well versed in the standard, so the issue might come from the \
gcc side instead, or maybe an UB.
While migrating an app from gcc to clang, we encountered the following issue with \
user conversion. ```
struct A
{
A(const A& other);
A(A&& other);
};
struct B
{
operator const A();
};
void f()
{
B b;
A a(b);
}
```
The issue can be reproduced on godbolt.org with clang 16 and std=c++14.
Wth c++17 and more the issue goes away.
If I comment out the move constructor, the issue also goes away.
Here is the compiler output
```
src/zob.cpp:15:9: error: no viable conversion from 'B' to 'A'
A a(b);
^
src/zob.cpp:3:5: note: candidate constructor not viable: no known conversion from \
'B' to 'const A &' for 1st argument A(const A& other);
^
src/zob.cpp:4:5: note: candidate constructor not viable: no known conversion from \
'B' to 'A &&' for 1st argument A(A&& other);
^
src/zob.cpp:9:5: note: candidate function
operator const A();
^
src/zob.cpp:4:11: note: passing argument to parameter 'other' here
A(A&& other);
```
</pre>
<img width="1px" height="1px" alt="" \
src="http://email.email.llvm.org/o/eJy0VUFz6yYQ_jX4svM8FkiWfdDBfqknubfzzghWEi1iNYDiSX9 \
9B6TXOKmTvEs9HoTE8u23y7eLDMH0DrFh1ZlVDxs5x4F880jem2HTkn5pHtFaAmkt49_Z7oHtTsv4YIKy0ozog \
YkTPIEcwVGEK1oLz-gDajAO4oAQonRaes34dwiUP5kQZoTR9EMERSNC52nMK71SEIxGMC5ElHkTeRjlS4sgHfx \
x3t7S-DEYm4G8jMb1yUJO0wKXoCKBstL1CeaKgE7R7CJ61NlbR9bSNW1cGF1NHGAO6EGRS1EYcj_97XfrP7-G6 \
GcVYaXB6vMygRPjB0UupCW-B4oDesaPTPw0AMg2afWuAasfXue3rs7vXdGEXkbKXBd_h8-Bnslo6Fazd2AAcIb \
2LU2QjB_a95j3svH7v2eqpIMWwePkSc8KNZCDnnRLNm7J90uK85lAsQfpNISomXhQjJ8ZPxflmu8fyWz9Vme7k \
TzeqKcnDCCv8mXd8NTBUxLTiC4CzTGbjvSMS35SDsknHbxCSBvoPzjL-Ig-WWVjReNkLPqEOs3xvh68YvzyN7V \
bNU1MnIqKidMxlQZ6Tz5NHMGzka3FG3EtSmW8PjNeJ7UyXp8Yrz89BVh_rPrtvnPBxKlaXEZMTyWdNlrGN7nI9 \
bowWun95ejqvmC3ig2yfmvoyEMRIkjfzynzb1X-VSV8GEH5P0awcv8F-h8W6afcjx9z72anoiH3ivJFEX-ZpKK \
49TSljp7a4BpOiniSXo4YU6Pm9RpJDQN6_NWOdE_vy7jRjdBHcZQbbIr9UZQHXpfFZmj25V4p0RXyUJWFrlVXH \
zqxQ1Eeqgp3qt6Yhu-42B1EURQV58X2ULRclLoWlRKy2JWs3OEojd1a-zymzrHJNdvsq0LUGytbtCHfW5w7vC4 \
FzThP15hv0p5v7dwHVu6sCTG8okQTLTbfcwPSqfSThuaAS9vX2BmH-lZB13zFpMskmW9mb5shxikwcWL8wvilN3GY262ikfFL8rM-vk2e_kQVGb9kdoHxS2b_TwAAAP__RsA3Qg">
[Attachment #3 (text/plain)]
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic