Allow to get sym attr and fail if no entry

Change alloc_sym_attr into get_sym_attr and add a parameter to control
whether to allocate a new symattr structure or return NULL if symbol is
not found;
This commit is contained in:
Thomas Preud'homme
2016-11-12 23:16:07 +08:00
parent a11b0a67e3
commit 2c38800bbe
2 changed files with 27 additions and 23 deletions

6
tcc.h
View File

@ -570,6 +570,7 @@ typedef struct ASMOperand {
} ASMOperand;
#endif
/* extra symbol attributes (not in symbol table) */
struct sym_attr {
unsigned long got_offset;
unsigned long plt_offset;
@ -708,8 +709,6 @@ struct TCCState {
/* got & plt handling */
Section *got;
Section *plt;
struct sym_attr *sym_attrs;
int nb_sym_attrs;
/* give the correspondance from symtab indexes to dynsym indexes */
int *symtab_to_dynsym;
@ -719,6 +718,9 @@ struct TCCState {
Section *dynsym;
/* copy of the gobal symtab_section variable */
Section *symtab;
/* extra attributes (eg. GOT/PLT value) for symtab symbols */
struct sym_attr *sym_attrs;
int nb_sym_attrs;
/* tiny assembler state */
Sym *asm_labels;