#pragma NO_FRAME: No Frame Code

Scope

Function

Syntax

#pragma NO_FRAME

Synonym

None

Arguments

None

Default

None

Description

This pragma is accepted for compatibility only. It is replaced by the #pragma NO_ENTRY and #pragma NO_EXIT pragmas.

For some compilers, using this pragma does not affect the generated code. Use the two pragmas NO_ENTRY and NO_EXIT instead (or in addition). When the compiler does consider this pragma, see the #pragma NO_ENTRY and #pragma NO_EXIT for restrictions that apply.

This pragma suppresses the generation of frame code and is useful for inline assembler functions.

The code generated in a function with #pragma NO_FRAME may be unreliable. It is assumed that the user ensures correct memory usage.

Note: Not all backends support this pragma. Some may still generate frame code even if this pragma is specified.
Example

The following listing shows how to use the NO_FRAME pragma (along with others) to avoid any generated code by the compiler. All code is written in inline assembler.

Listing: Blocking compiler-generated function management instructions


#pragma NO_ENTRY
#pragma NO_EXIT

#pragma NO_FRAME

#pragma NO_RETURN

void Func0(void) {

  __asm {/* No code should be written by the compiler.*/

    ...

  }

}
See also

#pragma NO_ENTRY: No Entry Code

#pragma NO_EXIT: No Exit Code

#pragma NO_RETURN: No Return Instruction