dmd.backend.symbol

Compiler implementation of the D programming language.

Members

Aliases

MEM_PARF_CALLOC
alias MEM_PARF_CALLOC = mem_calloc
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PARF_FREE
alias MEM_PARF_FREE = mem_free
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PARF_MALLOC
alias MEM_PARF_MALLOC = mem_malloc
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PARF_REALLOC
alias MEM_PARF_REALLOC = mem_realloc
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PARF_STRDUP
alias MEM_PARF_STRDUP = mem_strdup
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PH_CALLOC
alias MEM_PH_CALLOC = mem_calloc
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PH_FREE
alias MEM_PH_FREE = mem_free
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PH_FREEFP
alias MEM_PH_FREEFP = mem_freefp
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PH_MALLOC
alias MEM_PH_MALLOC = mem_malloc
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PH_REALLOC
alias MEM_PH_REALLOC = mem_realloc
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
MEM_PH_STRDUP
alias MEM_PH_STRDUP = mem_strdup
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.

Functions

Symbol_Salignsize
int Symbol_Salignsize(Symbol* s)

Return alignment of symbol.

Symbol_Sisdead
bool Symbol_Sisdead(Symbol* s, bool anyInlineAsm)

Aver if Symbol is not only merely dead, but really most sincerely dead.

Symbol_isAffected
bool Symbol_isAffected(Symbol s)

Determine if s may be affected if an assignment is done through a pointer.

Symbol_needThis
int Symbol_needThis(Symbol* s)

Determine if symbol needs a 'this' pointer.

baseclass_find
baseclass_t* baseclass_find(baseclass_t* bm, Classsym* sbase)

Look down baseclass list to find sbase.

baseclass_find_nest
baseclass_t* baseclass_find_nest(baseclass_t* bm, Classsym* sbase)
Undocumented in source. Be warned that the author may not have intended to support it.
baseclass_free
void baseclass_free(baseclass_t* b)
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
baseclass_nitems
int baseclass_nitems(baseclass_t* b)

Calculate number of baseclasses in list.

createglobalsymtab
void createglobalsymtab()

Create a new symbol table.

createlocalsymtab
void createlocalsymtab()

Create a new symbol table.

defsy
Symbol* defsy(const(char)* p, Symbol** parent)

Define symbol in specified symbol table.

deletesymtab
void deletesymtab()

Delete current symbol table and back up one.

findsy
Symbol* findsy(const(char)* p, Symbol* rover)

Search for symbol in symbol table. Input: p . identifier string rover . where to start looking

freesymtab
void freesymtab(Symbol** stab, SYMIDX n1, SYMIDX n2)

Free up the symbols stab[n1 .. n2]

func_calloc
func_t* func_calloc()
Undocumented in source. Be warned that the author may not have intended to support it.
func_free
void func_free(func_t* f)
Undocumented in source. Be warned that the author may not have intended to support it.
lookupsym
Symbol* lookupsym(const(char)* p)

Search for symbol in multiple symbol tables, starting with most recently nested one. Input: p . identifier string

meminit_free
void meminit_free(meminit_t* m)

Delete symbol from symbol table, taking care to delete all children of a symbol. Make sure there are no more forward references (labels, tags). Input: pointer to a symbol

struct_free
void struct_free(struct_t* st)
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_add
SYMIDX symbol_add(Symbol* s)

Add symbol to current symbol array.

symbol_add
SYMIDX symbol_add(symtab_t symtab, Symbol* s)
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_addtotree
void symbol_addtotree(Symbol** parent, Symbol* s)

Insert symbol in specified symbol table.

symbol_calloc
Symbol* symbol_calloc(const(char)* id)

Create a new symbol.

symbol_calloc
Symbol* symbol_calloc(const(char)* id, uint len)
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_check
void symbol_check(Symbol* s)

Check integrity of symbol data structure.

symbol_copy
Symbol* symbol_copy(Symbol* s)

Create a copy of a symbol.

symbol_dehydrate
void symbol_dehydrate(Symbol** ps)

Dehydrate a symbol.

symbol_free
void symbol_free(Symbol* s)
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_func
void symbol_func(Symbol* s)

Add in the variants for a function symbol.

symbol_funcalias
Funcsym* symbol_funcalias(Funcsym* sf)

Create a symbol that is an alias to another function symbol.

symbol_genauto
Symbol* symbol_genauto(type* t)

Generate an auto symbol, and add it to the symbol table.

symbol_genauto
Symbol* symbol_genauto(elem* e)

Generate symbol into which we can copy the contents of expression e.

symbol_genauto
Symbol* symbol_genauto(tym_t ty)

Generate symbol into which we can copy the contents of expression e.

symbol_gendebuginfo
void symbol_gendebuginfo()

Symbol table search routine for members of structs, given that we don't know which struct it is in. Give error message if it appears more than once.

symbol_generate
Symbol* symbol_generate(int sclass, type* t)

Create a symbol, give it a name, storage class and type.

symbol_hydrate
Symbol* symbol_hydrate(Symbol** ps)

Hydrate a symbol.

symbol_ident
const(char)* symbol_ident(Symbol* s)

Get user name of symbol.

symbol_insert
SYMIDX symbol_insert(symtab_t* symtab, Symbol* s, SYMIDX n)

Insert s into symtab at position n.

symbol_keep
void symbol_keep(Symbol* s)

Keep symbol around until symbol_term().

symbol_membersearch
Symbol* symbol_membersearch(const(char)* id)

Symbol table search routine for members of structs, given that we don't know which struct it is in. Give error message if it appears more than once.

symbol_name
Symbol* symbol_name(const(char)* name, int sclass, type* t)

Create a symbol, given a name and type.

symbol_name
Symbol* symbol_name(const(char)* name, uint len, int sclass, type* t)
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_pointerType
tym_t symbol_pointerType(Symbol* s)

Determine pointer type needed to access a Symbol, essentially what type an OPrelconst should get for that Symbol.

symbol_print
void symbol_print(Symbol* s)

Type out symbol information.

symbol_reset
void symbol_reset(Symbol* s)

Reset Symbol so that it's now an "extern" to the next obj file being created.

symbol_search
Symbol* symbol_search(const(char)* id)

Search for symbol in sequence of symbol tables. Input: glbl !=0 if global symbol table only

symbol_searchlist
Symbol* symbol_searchlist(symlist_t sl, const(char)* vident)

Search list for a symbol with an identifier that matches.

symbol_struct_addField
void symbol_struct_addField(Symbol* s, const(char)* name, type* t, uint offset)

Add a field to a struct s. Input: s the struct symbol name field name t the type of the field offset offset of the field

symbol_symdefs_dehydrate
void symbol_symdefs_dehydrate(Symbol** ps)

Dehydrate threaded list of symbols.

symbol_symdefs_hydrate
void symbol_symdefs_hydrate(Symbol** psx, Symbol** parent, int flag)

Hydrate threaded list of symbols. Input: *psx start of threaded list *parent root of symbol table to add symbol into flag !=0 means add onto existing stuff 0 means hydrate in place

symbol_term
void symbol_term()
Undocumented in source. Be warned that the author may not have intended to support it.
symbol_tree_check
void symbol_tree_check(const(Symbol)* s)

Check integrity of symbol data structure.

symbol_tree_dehydrate
void symbol_tree_dehydrate(Symbol** ps)

Dehydrate a symbol tree.

symbol_tree_hydrate
void symbol_tree_hydrate(Symbol** ps)

Hydrate a symbol tree.

symboltable_balance
void symboltable_balance(Symbol** ps)
Undocumented in source. Be warned that the author may not have intended to support it.
symboltable_clean
void symboltable_clean(Symbol* s)

Go through symbol table preparing it to be written to a precompiled header. That means removing references to things in the .OBJ file.

symboltable_hydrate
void symboltable_hydrate(Symbol* s, Symbol** parent)

Put symbol table s into parent symbol table.

Manifest constants

DEHYDRATE
enum DEHYDRATE;
Undocumented in source.
HYDRATE
enum HYDRATE;
Undocumented in source.
METRICS
enum METRICS;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
mBP
enum mBP;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.

Structs

Balance
struct Balance
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
Paramblock
struct Paramblock

Symbol table search routine for members of structs, given that we don't know which struct it is in. Give error message if it appears more than once.

Meta