| IDA SDK

Functions
Stack variable flags

## Detailed Description

Passed as 'flags' parameter to create_stkvar()

## Functions
void | insn_t::add_cref (ea_t to, int opoff, cref_t type) const
| Add a code cross-reference from the instruction. More...
void | insn_t::add_dref (ea_t to, int opoff, dref_t type) const
| Add a data cross-reference from the instruction. More...
ea_t | insn_t::add_off_drefs (const op_t &x, dref_t type, int outf) const
| Add xrefs for an operand of the instruction. More...

## Emulator helpers
#define | STKVAR_VALID_SIZE 0x0001
| x.dtype contains correct variable type (for insns like 'lea' this bit must be off). More...

## Macro Definition Documentation

## ◆ STKVAR_VALID_SIZE

#define STKVAR_VALID_SIZE 0x0001

x.dtype contains correct variable type (for insns like 'lea' this bit must be off).

in general, dr_O references do not allow to determine the variable size

## Function Documentation

## ◆ add_cref()

void insn_t::add_cref | ( | ea_t | to,
|  | int | opoff,
|  | cref_t | type
| ) |  | const
| inline

Add a code cross-reference from the instruction.

Parameters

  opoff | offset of the operand from the start of instruction. if the offset is unknown, then 0.
  to | target linear address
  type | type of xref

## ◆ add_dref()

void insn_t::add_dref | ( | ea_t | to,
|  | int | opoff,
|  | dref_t | type
| ) |  | const
| inline

Add a data cross-reference from the instruction.

See add_off_drefs() - usually it can be used in most cases.

Parameters

  opoff | offset of the operand from the start of instruction if the offset is unknown, then 0
  to | target linear address
  type | type of xref

## ◆ add_off_drefs()

ea_t insn_t::add_off_drefs | ( | const op_t & | x,
|  | dref_t | type,
|  | int | outf
| ) |  | const
| inline

Add xrefs for an operand of the instruction.

This function creates all cross references for 'enum', 'offset' and 'structure offset' operands. Use add_off_drefs() in the presence of negative offsets.

Parameters

  x | reference to operand
  type | type of xref
  outf | out_value() flags. These flags should match the flags used to output the operand

Return values

  if | is_off(): the reference target address (the same as calc_reference_data).
  if | is_stroff(): BADADDR because for stroffs the target address is unknown
  otherwise | BADADDR because enums do not represent addresses