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>