#pragma does_not_return (funcname [, funcname])
指定した関数への呼び出しが復帰しないことをコンパイラに表明します。この場合、コンパイラは、その仮定に一貫性を持つ最適化を実行できます。たとえば、レジスタの存続期間が呼び出し元で終了する場合は、さらに最適化率を高めることができます。
指定した関数が復帰した場合は、プログラムの動作は未定義になります。次の例に示すように、このプラグマは、指定した関数をプロトタイプまたは空のパラメータリストで宣言したあとでのみ許可されます。
extern void exit(int); #pragma does_not_return(exit) extern void __assert(int); #pragma does_not_return(__assert)