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