All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
def_s Struct Reference

Represent a memory location that holds a QuakeC/Ruamoko object. More...

Collaboration diagram for def_s:

Data Fields

unsigned constant:1
 stores constant value More...
struct daglabel_sdaglabel
 daglabel for this def More...
unsigned external:1
 externally declared def More...
string_t file
 declaring/defining source file More...
struct flowvar_sflowvar
 flowvar for this def More...
void * free_addr
 who freed this More...
unsigned global:1
 globally declared def More...
unsigned initialized:1
 the def has been initialized More...
struct expr_sinitializer
 initialer expression More...
int line
 declaring/defining source line More...
unsigned local:1
 function local def More...
const char * name
 the def's name More...
struct def_snext
 general purpose linking More...
unsigned nosave:1
 don't set DEF_SAVEGLOBAL More...
int offset
 address of this def in its defspace More...
unsigned offset_reloc:1
 use *_def_ofs relocs More...
unsigned param:1
 function param def More...
int qfo_def
 index to def in qfo defs More...
struct reloc_srelocs
 for relocations More...
void * return_addr
 who allocated this More...
struct defspace_sspace
 defspace to which this def belongs More...
unsigned system:1
 system def More...
struct def_stemp_next
 linked list of "free" temp defs More...
struct type_stype
 QC type of this def. More...
Def aliasing.

Aliasing a def provides a different view of the def providing access via a different type, or access to members of structs, unions and arrays.

Alias defs are very simple: they store only the type and relative offset off the def they alias. All other information is held in the def they alias, including relocation records. However, they do keep track of the source file and line that first created the alias.

The relations between a def an any of its aliases are maintained by a linked list headed by def_t::alias_defs and connected by def_t::next. def_t::alias is used to find the main def via one if its aliases. The order of the aliases in the list is arbitrary: it is the reverse of the order in which they were created.

Accessing a vector via its components.

struct def_salias_defs
 defs that alias this def More...
struct def_salias
 real def which this def aliases More...

Detailed Description

Represent a memory location that holds a QuakeC/Ruamoko object.

The object represented by the def may be of any type (either internally defined by qfcc (float, int, vector, etc) or user defined (structs, arrays etc)).

Unless the def is external (ie, declared to be in another compilation unit), defs are always attached to a defspace. Storage for the def's object is allocated from that space.

Field Documentation

struct def_s* alias

real def which this def aliases

struct def_s* alias_defs

defs that alias this def

unsigned constant

stores constant value

struct daglabel_s* daglabel

daglabel for this def

unsigned external

externally declared def

string_t file

declaring/defining source file

struct flowvar_s* flowvar

flowvar for this def

void* free_addr

who freed this

unsigned global

globally declared def

unsigned initialized

the def has been initialized

struct expr_s* initializer

initialer expression

int line

declaring/defining source line

unsigned local

function local def

const char* name

the def's name

struct def_s* next

general purpose linking

unsigned nosave


int offset

address of this def in its defspace

unsigned offset_reloc

use *_def_ofs relocs

unsigned param

function param def

int qfo_def

index to def in qfo defs

struct reloc_s* relocs

for relocations

void* return_addr

who allocated this

struct defspace_s* space

defspace to which this def belongs

unsigned system

system def

struct def_s* temp_next

linked list of "free" temp defs

struct type_s* type

QC type of this def.

The documentation for this struct was generated from the following file: