Oracle Solaris Studio 12.2:C++ 用户指南

B.2.3 #pragma does_not_return


#pragma does_not_return(funcname [, funcname])

pragma 向编译器断言,将不会返回对指定例程的调用。这样编译器可以执行与假定一致的优化。例如,寄存器生命周期在调用点终止,这样可以进行进一步的优化。

如果指定的函数不返回,程序的行为就是未定义的。

指定函数的原型被声明后,该 pragma 才是可用的,如以下示例所示:


extern void exit(int);
#pragma does_not_return(exit)

extern void __assert(int);
#pragma does_not_return(__assert)

有关 pragma 如何将重载的函数名视为参数的更加详细的说明,请参见B.1.1 将函数作为 pragma 参数进行重载