#pragma leaves は関数名を取得し、呼び出し後に関数がディレクティブに戻ることがないように指定します。
このプラグマは、function が呼び出し元に戻らないようにコンパイラーに指示します。
このプラグマの利点は、これを使用するとコンパイラーは function の後にあるコードをすべて無視することができるので、最適化プログラムはより効率的なコードを生成することができるという点です。一般的に、このプラグマはカスタムのエラー処理関数に使用されますが、この場合特定のエラーが発生すると、プログラムを終了することができます。これと同様の関数には、exit、longjmp、 terminate があります。
#pragma leaves(handle_error_and_quit) void test_value(int value) { if (value == ERROR_VALUE) { handle_error_and_quit(value); TryAgain(); // optimizer ignores this because // never returns to execute it } }