<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/59910>59910</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang incorrectly identifies a member variable access as a free function template name
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dwblaikie
</td>
</tr>
</table>
<pre>
https://godbolt.org/z/radhszraP
```
namespace foo {
template <typename T>
struct bar {};
}
using foo::bar;
template <class T>
struct A {
struct B {
int bar;
};
bool g(B& v) {
return v.bar < 42;
}
};
```
Clang output:
```
<source>:17:22: error: expected '>'
return v.bar < 42;
^
<source>:17:18: note: to match this '<'
return v.bar < 42;
^
<source>:17:22: error: expected unqualified-id
return v.bar < 42;
^
2 errors generated.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVMuSozgQ_BpxqWiHkGwwBw62uznvYX9AjwK0KxCrh3e6v35C2NN2vyb6MASBUCmrMlNQEiGYYUZsye5Ido-FSHF0vtX_SyvMvwYL6fRzO8a4BMIPhHWEdYPT0tm4cX4grHshrPNCj-HFi78IfST0QCp6vdfpLCYMi1AIvXNA6uMVtT4jTosVEYHwU3xeMIPhb8KfLssh-qQiSOHXxPqR8DfpOXI3TcHMQ6bJYvlBCv8Of0-nrAjhI9fhJhHgGjvexwDMvEp6rQ3wURmAdM7CQNj-SFgFZ8Kat1U8xuRnOG9Wd_wEW3areDN2X_ntxp6smAdwKS4pZsOfYQg_BZe8wmyTH8qa8ANjhB8AvXd-ffmxoIqogbA6o1j9TY2fXWT39DVxuc98s4uYx-hgElGNEEcTLuSn75P_lugrh2n-LwlreoP6weg_YZNdWAIMOKMXEfXm3XcodMt1wxtRYFtWNedluadlMbaaVriXatfvtKyavtF9hYLTnUZsNOOyMC2jjNOypJRuG77fVNt9Q6VuaE1rsd1WZEtxEsZurD1PuR8LE0LCdtc0JS2skGjDr872bQY9yDQEsqXWhBhuadFEi-3lfzKzct6jivYZjMY55u0KIGDCSaKHs_BGSIsglMIQQOS13iNCn2YVjZvhtctyNxfJ2_cniIljkhvlJsK6LOI6PCze_YMqEtatRgJh3erlZwAAAP__NgxPCg">