#pragma does_not_return(funcname [, funcname]) |
このプラグマは、指定のルーチンの呼び出しが返らないことをコンパイラに宣言します。この結果、コンパイラは、この宣言に整合した最適化を行えます。たとえば、呼び出し側で終了したライフ回数を登録すると、より多くの最適化が可能となります。
指定の関数が返らない場合、プログラムの動作は未定義となります。
次の例のとおり、このプラグマを使用できるのは、指定した関数のプロトタイプを宣言したあとに限定されます。
extern void exit(int); #pragma does_not_return(exit) extern void __assert(int); #pragma does_not_return(__assert) |
プラグマがその引数として多重定義関数を処理する方法の詳細は、「B.1.1 プラグマの引数としての多重定義関数」を参照してください。