Sun Studio 12 Update 1:C++ 用户指南

B.2.11 #pragma must_have_frame


#pragma must_have_frame(funcname [,funcname])

该 pragma 要求总是编译指定的一组函数来获得完整的栈帧(如 System V ABI 中所定义)。必须在使用该 pragma 列出函数之前,声明该函数的原型。


extern void foo(int);
extern void bar(int);
#pragma must_have_frame(foo, bar)

只有在声明了指定函数的原型后,才允许使用该 pragma。该 pragma 必须位于函数结尾之前。


void foo(int) {
  .
  #pragma must_have_frame(foo)
  .
  return;
  }

请参见B.1.1 将函数作为 pragma 参数进行重载