Oracle Solaris Studio 12.2:C 用户指南

2.11.24 unknown_control_flow

#pragma unknown_control_flow (funcname[, funcname])

为了描述改变函数调用方流程图的过程,C 编译器提供了 #pragma unknown_control_flow 指令。通常,该指令带有 setjmp() 等函数的声明。在 Solaris 系统上,include 文件 <setjmp.h> 包含:


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

同样,必须声明具有 setjmp() 类似属性的其他函数。

原则上,识别该属性的优化器可在控制流程图中插入相应的界限,从而在调用 setjmp() 的函数中安全地处理函数调用,同时保持优化流程图的未受影响部分的代码的能力。

必须在该 pragma 之前使用原型或空参数列表声明指定的函数。