<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/121331>121331</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang does not realize erroneous overload with inherited constructor
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
wangbo15
</td>
</tr>
</table>
<pre>
The following code is rejected by GCC, MSVC, and EDG but accepted by Clang:
```c++
struct C
{
C(int = 1){}
};
struct D
{
D (C);
};
struct A : D
{
A (const C & n) : D (C{100}) {}
using D:: D;
};
int main(){
A a=C{};
}
```
As the diagnostic shows, the user-defined ctor `A(const C & n)` of class `A` has the same parameter list as the inherited ctor, which leads to ambiguity:
```c++
<source>: In function 'int main()':
<source>:18:9: error: conversion from 'C' to 'A' is ambiguous
18 | A a=C{};
| ^~~
<source>:18:9: note: there are 6 candidates
<source>:8:3: note: candidate 1: 'D::D(C)'
8 | D (C);
| ^
<source>:14:13: note: inherited here
14 | using D:: D;
| ^
<source>:13:3: note: candidate 2: 'A::A(const C&)'
13 | A (const C & n) : D (C{100}) {}
```
Please see https://godbolt.org/z/vG9cqvMbc
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVU-P46gT_TTkUuqWKWI7Pvjgtjut32Gkn7SrvWOo2Kwc6AWcqOcwn32F7elJ_5vDSigQqPeq3uOPZQhmsEQ1yx9Y3u3kHEfn66u0Q-94vuudfqn_HAlObprc1dgBlNMEJoCnv0lF0tC_wFPbMmzh2x9_Lb20Gh67J-jnCFIpet7C2knagYmGZUsrsrUphg-pZU2IflYR2rRapgkAgJbhwdgITHTAGVZppeyWkI6Jh5VsQ3Y3yA4YHtoEWIM-RjfARPMG0ySMcjZEaIFhAZZhtUatbOUDz7JElaZ_FgIwh2RNl7QtjB8yJgFnaSzDwyZhFdeAZKJrN6pX2I07K74JEEcCbeRgXYhGQRjdNSS30_wcyN9pOhlLGlR0HliRNZ9oYUUG7gRqkiGsMUUGo1zZgzwTPEsvzxTJw2RChG3J2JG8iRt7SnsdjRphIqkDRAfy3JthNvHld_vLRBvc7BUx8ZiM-p-F02xVNM4Cw_KdSVhuXG9R_MBEUyU4ee98GihnL-RDojl5d05cLcMy1cWwbNLQhK1EN4fVe34AVrbwxS4s868Byzh__PHjd-VYFyn1cSRPID1BAUpabbSMFD4iE1DcAl-Dgae_DMvtRHU_TzKWW2lr7e-O-G3NLH_8pNZ9-nmT89fGpqo3Z_YbyafH-qMz8GU-8bVE3CQ2K_vNYWVY3GrlYkv23y7nu4v0_4lkIAhEMMb4HFJ2PDI8Dk73bor3zg8Mj98ZHi9Plfrn8q1XO10LXYlK7qjmpcjznFdlsRtrqjLOFWJf9oUoD0WVUZbzgk5UFXvU-52pMcM9R5Fl1b7gxX2mM8QeecFR52JfsH1GZ2mm-2m6nFPunQlhppojF4LvJtnTFJbXGVEtzydieqh9nQB3_TwEts_STQ2_KKKJE9XLawvaUUjugyc5me-0XBpLbg7gLuQnJzVcTRxvb3iyOD2Qzu9mP9XvfDJxnPt75c4Mjynl1t09e5e-CAyPi4TA8LipuNT4bwAAAP__5gbGRg">