| IDA SDK

Macros
Function flags

## Detailed Description

Used by func_t::flags.

## Macros
#define | FUNC_NORET 0x00000001
| Function doesn't return.
#define | FUNC_FAR 0x00000002
| Far function.
#define | FUNC_LIB 0x00000004
| Library function.
#define | FUNC_STATICDEF 0x00000008
| Static function.
#define | FUNC_FRAME 0x00000010
| Function uses frame pointer (BP)
#define | FUNC_USERFAR 0x00000020
| User has specified far-ness of the function.
#define | FUNC_HIDDEN 0x00000040
| A hidden function chunk.
#define | FUNC_THUNK 0x00000080
| Thunk (jump) function.
#define | FUNC_BOTTOMBP 0x00000100
| BP points to the bottom of the stack frame.
#define | FUNC_NORET_PENDING 0x00200
| Function 'non-return' analysis must be performed. More...
#define | FUNC_SP_READY 0x00000400
| SP-analysis has been performed. More...
#define | FUNC_FUZZY_SP 0x00000800
| Function changes SP in untraceable way, for example: and esp, 0FFFFFFF0h.
#define | FUNC_PROLOG_OK 0x00001000
| Prolog analysis has been performed by last SP-analysis.
#define | FUNC_PURGED_OK 0x00004000
| 'argsize' field has been validated. More...
#define | FUNC_TAIL 0x00008000
| This is a function tail. More...
#define | FUNC_LUMINA 0x00010000
| Function info is provided by Lumina.
#define | FUNC_OUTLINE 0x00020000
| Outlined code, not a real function.
#define | FUNC_REANALYZE 0x00040000
| Function frame changed, request to reanalyze the function after the last insn is analyzed. More...
#define | FUNC_UNWIND 0x00080000
| function is an exception unwind handler
#define | FUNC_CATCH 0x00100000
| function is an exception catch handler
#define | FUNC_RESERVED 0x8000000000000000LL
| Reserved (for internal usage)

## Macro Definition Documentation

## ◆ FUNC_NORET_PENDING

#define FUNC_NORET_PENDING 0x00200

Function 'non-return' analysis must be performed.

This flag is verified upon func_does_return()

## ◆ FUNC_SP_READY

#define FUNC_SP_READY 0x00000400

SP-analysis has been performed.

If this flag is on, the stack change points should not be not modified anymore. Currently this analysis is performed only for PC

## ◆ FUNC_PURGED_OK

#define FUNC_PURGED_OK 0x00004000

'argsize' field has been validated.

If this bit is clear and 'argsize' is 0, then we do not known the real number of bytes removed from the stack. This bit is handled by the processor module.

## ◆ FUNC_TAIL

#define FUNC_TAIL 0x00008000

This is a function tail.

Other bits must be clear (except FUNC_HIDDEN).

## ◆ FUNC_REANALYZE

#define FUNC_REANALYZE 0x00040000

Function frame changed, request to reanalyze the function after the last insn is analyzed.