diff options
| -rw-r--r-- | libtcc.c | 2 | ||||
| -rw-r--r-- | tccasm.c | 6 |
2 files changed, 8 insertions, 0 deletions
@@ -780,6 +780,8 @@ static void put_extern_sym2(Sym *sym, Section *section, if (FUNC_CALL(attr) == FUNC_STDCALL) other |= 2; #endif + } else if ((sym->type.t & VT_BTYPE) == VT_VOID) { + sym_type = STT_NOTYPE; } else { sym_type = STT_OBJECT; } @@ -712,6 +712,12 @@ static int tcc_assemble(TCCState *s1, int do_preprocess) define_start = define_stack; + /* an elf symbol of type STT_FILE must be put so that STB_LOCAL + symbols can be safely used */ + put_elf_sym(symtab_section, 0, 0, + ELFW(ST_INFO)(STB_LOCAL, STT_FILE), 0, + SHN_ABS, file->filename); + ret = tcc_assemble_internal(s1, do_preprocess); cur_text_section->data_offset = ind; |
