<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">