Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

2.11.24 unknown_control_flow

#pragma unknown_control_flow (name;[, name;])

呼び出し元のフローグラフを変更する手続きを記述するには、#pragma unknown_control_flow 指令を使用します。通常、この指令には setjmp() のような関数の宣言が伴います。Oracle Solaris のシステム上では、インクルードファイル <setjmp.h> に次のコードが含まれています。

extern int setjmp();
#pragma unknown_control_flow(setjmp)

setjmp() のような特性を持つほかの関数も、同様に宣言する必要があります。

原則として、この属性を認識するオプティマイザは、制御フローグラフに適切な境界を挿入できます。これによって、setjmp() を呼び出す関数内で関数呼び出しを安全に処理しながら、影響を受けないフローグラフ部分のコードを最適化する機能を保持します。

指定した関数は、このプラグマの前にプロトタイプまたは空のパラメータリストで宣言する必要があります。