<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/99894>99894</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang] Error (with diagnostic) on valid after #90574
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
yronglin
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dcci
</td>
</tr>
</table>
<pre>
```
namespace {
typedef char a;
template <typename b> struct ai {
typedef b aj;
typedef ai ak;
aj operator*();
ak operator++();
friend bool operator==(ak, ak);
};
template <typename, typename, typename, typename> class am {
typedef a an;
public:
typedef ai<an> ao;
};
template <typename ap, typename c = ap> class aq {
typedef ap ar;
typedef ap an;
typedef c as;
typedef am<ar, an, an, as> at;
public:
typedef at::ao av;
av begin();
av end();
};
namespace {
namespace {
a aw() {
aq<a> ax;
for (auto module : ax)
;
}
} // namespace
} // namespace
} // namespace
```
`clang patatino.cpp -std=c++20 -c`
The patch got reverted, but this is the testcase.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVN1uszgQfRpzM0oENhC44CJtkifYFxiMAbcGU3tIt2-_Mvmj3Wi30idZgI7PzJzxHIze625UqmLZC-P8y9mxM3pknLPsEOFMvXVVI6WOatt8VSyPrys-sHg_4qD8hFIB271cIPqaVKNakD06QCZusBomg6SAiddACZFQM3EET26WBKgfOQBuWWrAt3uOB4wa8H2F4xvYSTkk6xjfM14wXq6331fbL8v6zmidVmMDtbXmwRSHsHiB74y_hnqrCLY7_GdrIeJ_v8URpEHvAYdnvSPg-Ci4PKe5Nloysf_3gTDxGuhHQPtrlYDTWhBIYOIQwIeyj5Wye7EJ0D2byrRW_MAloH9GH4JmtxzuuHr6pQv6desUQLFHC3heD_0MteqClX-64QxqbH7A66N64uonEAJ-XpKsh4cfoamlg79X_rIOgpNmsjDYZjZhDPtA4eUtEuCbmNsHMH5i_AR3BX-w8_3nvYPS4NjBhISkR7uV0wQbTw0TB3n5XXgMG_kj7q9ehRDZQ2cJnDorR6oJA6xnAuq1B-2BegWkPEn0ahs1lWhKUWKkqmTHkzzP8ziP-qrNMFZZ0SYyL-qijctWFFnRZnXRJBkWaaQrHvM03nGe5KngYpuKJE7qJN_t4iYuZcnSWA2ozdaY87C1rou097OqyrIo08hgrYy_XnFLt9f7zVWBv6nnzrM0NtqTf2QgTWa5Fy8R2QGOzl0G-amph0ZjN1pPWgYP2BHOaHQD2JIKJFHG2S6NZmeqnmjywaXLWDpN_VxvpR0YP4Vq19dmcvZNSWL8tIj3jJ8u-s8V_ycAAP__dGag6w">