<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/104268>104268</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang fails to find operator `->`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ahatanak
</td>
</tr>
</table>
<pre>
```
struct D {
template <typename T> void m() {}
};
template <typename T> struct S {
void init() { (*this)->template m<T>(); };
D *operator->();
};
```
clang rejects the code with the following error message:
<source>:6:35: error: no member named 'm' in 'S<T>'
6 | void init() { (*this)->template m<T>(); };
It looks like clang's behavior changed after 1595988ee6f9732e7ea79928af8a470ad5ef7dbe.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0k8GOnDAMhp_GXKwZBQcIHDiwMztSz9sXCIOBdAMZJWFW-_YVMN3dqu2xEgoGxZ_9W791CGaYmWvInyA_J3qJo_O1HnXUs35NWte911CIxyPOIJoQ_XKNeEZQT_sfxMjTzerICPIU328864nxO8hnvDvT4QRUAlVbhjrvSWsgH4D9_DfkUfLla8kNbGYTP9m4hU0cTQCqDiCfP5ATyNOK2i-DfMI_6-OqiRp3Y6-j84ev1__S8-9T2c-r1fOAnn_wNQaMI-PVdYxvJo7bV--sdW9mHpC9dx4nDkEPDLL5SgF5Cm7xV147kE0BspE5yGZPWoPZ4cRTyx7XIXUIpCYghWZew5cPseqhrEBQJ_wfQ_sW0Tr3GtCaV8ZNP5AK2PKo78Z5vI56HrhD3Uf2mOZVXpUlc9FXShIr1qqqqNR9qTMldJdzr7qWj0lXy66SlU64ThXJQpHI0mSsc51WLKkQivosTUkWLNsyzVWmRCF0l5iaBGWiTDNKM0XpMS8E50oJ3VZVoTsNmeBJG3u09j4dnR8SE8LCdSoyKsrE6pZt2DaCaBckm967OfLcAdG6J75ecw_tMgTIhDUhhk9aNNFyvVuh18YGjA57M3f4y1oIhdjsVYhk8bYeY7yF1QR0AboMJo5Le7y6CeiyUh-vw8271VhAl63hAHR59Hyv6WcAAAD___mmFqE">