Sun Studio 12: C++ ユーザーズガイド

B.2.3 #pragma does_not_return


#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 プラグマの引数としての多重定義関数」を参照してください。