I tried the "extern" specifier, which (I guess) you should use if the definition isn't in the file; and it worked with -O3.<br><br>Input code:<br>extern void external(void);<br>void test(char *x)<br>{<br>    x--;<br>

    if (!x)<br>    {<br>        external();<br>    }<br>}<br><br>Command:<br>clang -S -o volatile-test.s -O3 test.c<br><br>Output attached.<br><br>The only line of interest is probably:<br>    jmp    external                # TAILCALL<br>