<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/54486>54486</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Missing diagnostic for data member redeclaration with using-declaration involving virtual inheritance
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c++,
            clang:frontend
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          miyuki
      </td>
    </tr>
</table>

<pre>
    The following code is not diagnosed by Clang trunk:
```C++
struct Base {
    int k;
};

struct A : virtual Base { };

struct B : virtual Base { };

struct T : A, B {
    using A::k, B::k;
};
```

Clang invocation:
```
$ clang -std=c++17 -fsyntax-only test.cc
```

I think the code is ill-formed according to C++17 [namespace.udecl]/10:
"A using-declaration is a declaration and can therefore be used repeatedly where (and only where) multiple declarations are allowed."

GCC rejects this code:
```
<source>:10:20: error: redeclaration of 'using B::k'
   10 |     using A::k, B::k;
      |                    ^
<source>:10:14: note: previous declaration 'using A::k'
   10 |     using A::k, B::k;
      |              ^
Compiler returned: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1VMGSmzAM_Rq4eJIBAyEcOBCy2-mht_0BY4vEjbEztsk2f1-ZJCzd7nbaQxkPGEmW3ntIdEZc65cjkN4oZV6lPhBuBBDpiDaeCMkO2jgQpLuSVjF0ezvqU5Q1UbKPkibaJLfVRnQX1mR1GMQ92TEHJCrvRoKX1J7g4bslKvdv--XBhmABcpHWj0zNacin8bt_jH-Z4puItuHoEuDoggRN4Jc1pyngsf8Q9YP-sshNJ6kvhjMvjf5drPsrzQmfYlfOiyjb85uGaUlWvbtqz36sjFZX4sH5Ned_KPmV-KPUJ7zD_P2kUqve2AE_HuPcWBGYeUPauUpU7DQbwJ0Zh_UogKuo2Ef0OU3eIFPa3ERZBT-zE6OQnpGlgWlBONMBgAWsCqQDPIe1LZyBeRDI4zU4SUS3IXpiNlkiWpFhVF6eFSyTYg0MZ6EvQawRyZLxl7bF1N-Bexe4u4n2p0pnrTOj5RjwhDETPxpuBKw1NmwsLOmYHmGWt2aYG4CWc5-kCbZNS_6yY6a4-cC7KyqePgeZ5gEbTmKgRs4WLtKM7hflZ5zN_8I5I2zNcJYKLIrlR6tBBFDpO8VjUWeiyioWe-kV1N-kmyrffyVecvzXWCKYZ2SAoZvSLQm9Sn_8qOVwntQlZHrMudTYPdIzzSEeraqP3p9d4ESfcR0wzdituRnwRanL47E6WxPaBl8R2QgON0Webzfxsc6qquq31QaKpCqzvuyqIsnTotjwLsnLTRUr1oFyNQ4OtuN9XENjoprBEIYZAfTWaA9aBE-xj2VNE0qTjKZpmW6zYl2INAeadqLsgQOtojyBgUm1DvjWxh5iW09Qu_Hg0Kmk8-7NyVDQgwaYYGB-NvqjsfUgr-NJxhOpemL0E364s0U">