| IDA SDK

Macros
Additional flags for the location

## Detailed Description

All 32-bits of the main flags (bytes.hpp) are used up.

Additional flags keep more information about addresses. AFLNOTE: DO NOT use these flags directly unless there is absolutely no way. They are too low level and may corrupt the database.

## Macros
#define | AFL_LINNUM 0x00000001
| has line number info
#define | AFL_USERSP 0x00000002
| user-defined SP value
#define | AFL_PUBNAM 0x00000004
| name is public (inter-file linkage)
#define | AFL_WEAKNAM 0x00000008
| name is weak
#define | AFL_HIDDEN 0x00000010
| the item is hidden completely
#define | AFL_MANUAL 0x00000020
| the instruction/data is specified by the user
#define | AFL_NOBRD 0x00000040
| the code/data border is hidden
#define | AFL_ZSTROFF 0x00000080
| display struct field name at 0 offset when displaying an offset. More...
#define | AFL_BNOT0 0x00000100
| the 1st operand is bitwise negated
#define | AFL_BNOT1 0x00000200
| the 2nd operand is bitwise negated
#define | AFL_LIB 0x00000400
| item from the standard library. More...
#define | AFL_TI 0x00000800
| has typeinfo? (NSUP_TYPEINFO); used only for addresses, not for member_t
#define | AFL_TI0 0x00001000
| has typeinfo for operand 0? (NSUP_OPTYPES)
#define | AFL_TI1 0x00002000
| has typeinfo for operand 1? (NSUP_OPTYPES+1)
#define | AFL_LNAME 0x00004000
| has local name too (FF_NAME should be set)
#define | AFL_TILCMT 0x00008000
| has type comment? (such a comment may be changed by IDA)
#define | AFL_LZERO0 0x00010000
| toggle leading zeroes for the 1st operand
#define | AFL_LZERO1 0x00020000
| toggle leading zeroes for the 2nd operand
#define | AFL_COLORED 0x00040000
| has user defined instruction color?
#define | AFL_TERSESTR 0x00080000
| terse structure variable display?
#define | AFL_SIGN0 0x00100000
| code: toggle sign of the 1st operand
#define | AFL_SIGN1 0x00200000
| code: toggle sign of the 2nd operand
#define | AFL_NORET 0x00400000
| for imported function pointers: doesn't return. More...
#define | AFL_FIXEDSPD 0x00800000
| sp delta value is fixed by analysis. More...
#define | AFL_ALIGNFLOW 0x01000000
| the previous insn was created for alignment purposes only
#define | AFL_USERTI 0x02000000
| the type information is definitive. More...
#define | AFL_RETFP 0x04000000
| function returns a floating point value
#define | AFL_USEMODSP 0x08000000
| insn modifes SP and uses the modified value; example: pop [rsp+N]
#define | AFL_NOTCODE 0x10000000
| autoanalysis should not create code here
#define | AFL_NOTPROC 0x20000000
| autoanalysis should not create proc here
#define | AFL_TYPE_GUESSED 0xC2000000
| who guessed the type information?
#define | AFL_IDA_GUESSED 0x00000000
| the type is guessed by IDA
#define | AFL_HR_GUESSED_FUNC 0x40000000
| the function type is guessed by the decompiler
#define | AFL_HR_GUESSED_DATA 0x80000000
| the data type is guessed by the decompiler
#define | AFL_HR_DETERMINED 0xC0000000
| the type is definitely guessed by the decompiler

## Macro Definition Documentation

## ◆ AFL_ZSTROFF

#define AFL_ZSTROFF 0x00000080

display struct field name at 0 offset when displaying an offset.

example:

    offset somestruct.field_0

if this flag is clear, then

    offset somestruct

## ◆ AFL_LIB

#define AFL_LIB 0x00000400

item from the standard library.

low level flag, is used to set FUNC_LIB of func_t

## ◆ AFL_NORET

#define AFL_NORET 0x00400000

for imported function pointers: doesn't return.

this flag can also be used for any instruction which halts or finishes the program execution

## ◆ AFL_FIXEDSPD

#define AFL_FIXEDSPD 0x00800000

sp delta value is fixed by analysis.

should not be modified by modules

## ◆ AFL_USERTI

#define AFL_USERTI 0x02000000

the type information is definitive.

(comes from the user or type library) if not set see AFL_TYPE_GUESSED