<div dir="ltr">Hi,<div><br></div><div>Given the following code</div><div><br></div><div><div>#include <stdlib.h></div><div><br></div><div>#define av_assert0(cond) do { \</div>
<div> if (!(cond)) { \</div><div> abort(); \</div><div> } \</div>
<div>} while (0)</div><div><br></div><div>int f(int x) {</div><div> switch(x) {</div><div> case 0:</div><div> return 0;</div><div> default:</div><div> av_assert0(0);</div><div> }</div>
<div>}</div><div><br></div><div>int main()</div><div>{</div><div>}</div></div><div><br></div><div><div>[/havana/t]> clang --version</div><div>clang version 3.4 (branches/release_34 198681)</div><div>Target: x86_64-suse-linux</div>
<div>Thread model: posix</div></div><div>[/havana/t]> clang -Wall -Wreturn-type t.c<br></div><div><div>[/havana/t]> <br></div></div><div><br></div><div>No warnings. With recent trunk:</div><div><br></div><div><div>
[/havana/t]> clang -v </div>
<div>clang version 3.5.0 (trunk 202995)</div><div>[/havana/t]> clang -Wall -Wreturn-type t.c<br></div><div>t.c:16:1: warning: control may reach end of non-void function [-Wreturn-type]</div><div>}</div><div>^</div><div>
1 warning generated.</div></div><div><br></div><div>So looks like clang is no longer recognizing abort being a __noreturn__ function.</div><div><br></div><div>Regards,</div><div>ismail</div><div><br></div><div><br></div>
</div>