<div dir="ltr">Ping?<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Mar 17, 2014 at 11:59 PM, Logan Chien <span dir="ltr"><<a href="mailto:tzuhsiang.chien@gmail.com" target="_blank">tzuhsiang.chien@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi,<br><br>It seems that if the C-style type cast is applied to the overloaded function and the destination type is function type, then Clang will crash with assertion failure. For example,<br>
</div> <br>
void foo(int);<br> void foo(int, int);<br> void bar() {<br> typedef void (ft)(int);<br> ft p = (ft)foo;<br> }<br> <br>In this case, the overloaded function foo will be cast to a function type, which should be considered as an error. But, unfortunately, since the function resolution is using canonical type, the matched function will be returned, and raise SEGV at lib/Sema/SemaCast.cpp:2101.<br>
<br>This patch fixes this issue by removing the assertion and add some error diagnostics as the one in static_cast. Please have a look. Thanks.<span class="HOEnZb"><font color="#888888"><br><br>Logan<br></font></span></div>
</blockquote></div><br></div>