<div dir="ltr"><div><div><div><div>Hi,<br><br></div>Attaching patch for bug <span class="">19095</span>. Please help in reviewing the same.<br><br></div>Also, I haven't attached a test case yet in the patch as i am not sure how it should be and in which file it should be. <br>
<br></div>In my opinion, the test case would go into <i>tools/clang/test/SemaCXX/friend.cpp </i>would be something like below (similar to that mentioned in the bug)<br><br><span><span><i>template <class T><br>void f(T);<br>
</i></span></span></div><div><span><span><i>void h(T);<br></i></span></span></div><div><span><span><i><br>template <class U><br>class C<br>{<br> template <class T><br> friend void f(T)<br> {<br></i></span></span></div>
<div><span><span><i> int x = 1;<br></i></span></span></div><div><span><span><i> }<br></i></span></span></div><div><span><span><i> template <class T><br></i></span></span></div><div><span><span><i> friend void h(T); <br>
</i></span></span></div><div><span><span><i><br> public :<br><br> void g()<br>
{<br> f(3.0); // OK<br></i></span></span></div><div><span><span><i> h(2.0); // error : undefined reference to function h<br></i></span></span></div><div><span><span><i> }<br> int i;<br>};<br><br>void h ()<br>
{<br> f(7); // OK<br></i></span></span></div><div><span><span><i> h(6); // error : undefined reference to function h<br></i></span></span></div><div><span><span><i> C<double> c;<br> c.g();<br>}</i><br clear="all">
</span></span><div><div><div><div><br></div></div></div></div>Please help in reviewing the patch as well as the test case.</div><br><div><div><br>-- <br>With regards,<br>Suyog Sarda<br>
</div></div></div>