From 62d1da1b3eb91b405a633aa4e4d841d8a7a0da3a Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Sun, 9 Mar 2014 22:52:31 +0800 Subject: [PATCH] Fix warning of clang --- tccelf.c | 40 ++++++++++++++++++++-------------------- tccpp.c | 4 ++-- tccrun.c | 4 ++-- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tccelf.c b/tccelf.c index 321ec2ee..424db695 100644 --- a/tccelf.c +++ b/tccelf.c @@ -56,7 +56,7 @@ static void rebuild_hash(Section *s, unsigned int nb_buckets) { ElfW(Sym) *sym; int *ptr, *hash, nb_syms, sym_index, h; - char *strtab; + unsigned char *strtab; strtab = s->link->data; nb_syms = s->data_offset / sizeof(ElfW(Sym)); @@ -115,7 +115,7 @@ ST_FUNC int put_elf_sym(Section *s, addr_t value, unsigned long size, if (ELFW(ST_BIND)(info) != STB_LOCAL) { /* add another hashing entry */ nbuckets = base[0]; - h = elf_hash(name) % nbuckets; + h = elf_hash((unsigned char *) name) % nbuckets; *ptr = base[2 + h]; base[2 + h] = sym_index; base[1]++; @@ -145,11 +145,11 @@ ST_FUNC int find_elf_sym(Section *s, const char *name) if (!hs) return 0; nbuckets = ((int *)hs->data)[0]; - h = elf_hash(name) % nbuckets; + h = elf_hash((unsigned char *) name) % nbuckets; sym_index = ((int *)hs->data)[2 + h]; while (sym_index != 0) { sym = &((ElfW(Sym) *)s->data)[sym_index]; - name1 = s->link->data + sym->st_name; + name1 = (char *) s->link->data + sym->st_name; if (!strcmp(name, name1)) return sym_index; sym_index = ((int *)hs->data)[2 + nbuckets + sym_index]; @@ -429,12 +429,12 @@ ST_FUNC void relocate_syms(TCCState *s1, int do_resolve) for_each_elem(symtab_section, 1, sym, ElfW(Sym)) { sh_num = sym->st_shndx; if (sh_num == SHN_UNDEF) { - name = strtab_section->data + sym->st_name; + name = (char *) strtab_section->data + sym->st_name; /* Use ld.so to resolve symbol for us (for tcc -run) */ if (do_resolve) { #if defined TCC_IS_NATIVE && !defined _WIN32 void *addr; - name = symtab_section->link->data + sym->st_name; + name = (char *) symtab_section->link->data + sym->st_name; addr = resolve_sym(s1, name); if (addr) { sym->st_value = (addr_t)addr; @@ -1026,7 +1026,7 @@ static void put_got_entry(TCCState *s1, if (s1->dynsym) { sym = &((ElfW(Sym) *)symtab_section->data)[sym_index]; - name = symtab_section->link->data + sym->st_name; + name = (char *) symtab_section->link->data + sym->st_name; offset = sym->st_value; #if defined(TCC_TARGET_I386) || defined(TCC_TARGET_X86_64) if (reloc_type == @@ -1198,7 +1198,7 @@ ST_FUNC void build_got_entries(TCCState *s1) char *name, buf[1024]; Section *text_section; - name = symtab_section->link->data + sym->st_name; + name = (char *) symtab_section->link->data + sym->st_name; text_section = s1->sections[sym->st_shndx]; /* Modify reloc to target a thumb stub to switch to ARM */ snprintf(buf, sizeof(buf), "%s_from_thumb", name); @@ -1566,7 +1566,7 @@ static void bind_exe_dynsyms(TCCState *s1) - if STT_OBJECT symbol -> add it in .bss section with suitable reloc */ for_each_elem(symtab_section, 1, sym, ElfW(Sym)) { if (sym->st_shndx == SHN_UNDEF) { - name = symtab_section->link->data + sym->st_name; + name = (char *) symtab_section->link->data + sym->st_name; sym_index = find_elf_sym(s1->dynsymtab_section, name); if (sym_index) { esym = &((ElfW(Sym) *)s1->dynsymtab_section->data)[sym_index]; @@ -1596,7 +1596,7 @@ static void bind_exe_dynsyms(TCCState *s1) for_each_elem(s1->dynsymtab_section, 1, dynsym, ElfW(Sym)) { if ((dynsym->st_value == esym->st_value) && (ELFW(ST_BIND)(dynsym->st_info) == STB_GLOBAL)) { - char *dynname = s1->dynsymtab_section->link->data + char *dynname = (char *) s1->dynsymtab_section->link->data + dynsym->st_name; put_elf_sym(s1->dynsym, offset, dynsym->st_size, dynsym->st_info, 0, @@ -1621,7 +1621,7 @@ static void bind_exe_dynsyms(TCCState *s1) } } else if (s1->rdynamic && ELFW(ST_BIND)(sym->st_info) != STB_LOCAL) { /* if -rdynamic option, then export all non local symbols */ - name = symtab_section->link->data + sym->st_name; + name = (char *) symtab_section->link->data + sym->st_name; put_elf_sym(s1->dynsym, sym->st_value, sym->st_size, sym->st_info, 0, sym->st_shndx, name); } @@ -1640,7 +1640,7 @@ static void bind_libs_dynsyms(TCCState *s1) corresponding symbol */ for_each_elem(s1->dynsymtab_section, 1, esym, ElfW(Sym)) { if (esym->st_shndx == SHN_UNDEF) { - name = s1->dynsymtab_section->link->data + esym->st_name; + name = (char *) s1->dynsymtab_section->link->data + esym->st_name; sym_index = find_elf_sym(symtab_section, name); if (sym_index) { /* XXX: avoid adding a symbol if already present because of @@ -1682,7 +1682,7 @@ static void export_global_syms(TCCState *s1) } else #endif { - name = symtab_section->link->data + sym->st_name; + name = (char *) symtab_section->link->data + sym->st_name; dynindex = put_elf_sym(s1->dynsym, sym->st_value, sym->st_size, sym->st_info, 0, sym->st_shndx, name); index = sym - (ElfW(Sym) *) symtab_section->data; @@ -2527,7 +2527,7 @@ ST_FUNC int tcc_load_object_file(TCCState *s1, if (i == ehdr.e_shstrndx) continue; sh = &shdr[i]; - sh_name = strsec + sh->sh_name; + sh_name = (char *) strsec + sh->sh_name; /* ignore sections types we do not handle */ if (sh->sh_type != SHT_PROGBITS && sh->sh_type != SHT_RELX && @@ -2648,7 +2648,7 @@ ST_FUNC int tcc_load_object_file(TCCState *s1, already defined symbol. It is very important to get correct relocations */ if (ELFW(ST_BIND)(sym->st_info) != STB_LOCAL) { - name = strtab + sym->st_name; + name = (char *) strtab + sym->st_name; sym_index = find_elf_sym(symtab_section, name); if (sym_index) old_to_new_syms[i] = sym_index; @@ -2664,7 +2664,7 @@ ST_FUNC int tcc_load_object_file(TCCState *s1, sym->st_value += sm->offset; } /* add symbol */ - name = strtab + sym->st_name; + name = (char *) strtab + sym->st_name; sym_index = add_elf_sym(symtab_section, sym->st_value, sym->st_size, sym->st_info, sym->st_other, sym->st_shndx, name); @@ -2765,7 +2765,7 @@ static int tcc_load_alacarte(TCCState *s1, int fd, int size) goto fail; nsyms = get_be32(data); ar_index = data + 4; - ar_names = ar_index + nsyms * 4; + ar_names = (char *) ar_index + nsyms * 4; do { bound = 0; @@ -2898,7 +2898,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level) for(i = 0, dt = dynamic; i < nb_dts; i++, dt++) { if (dt->d_tag == DT_SONAME) { - soname = dynstr + dt->d_un.d_val; + soname = (char *) dynstr + dt->d_un.d_val; } } @@ -2925,7 +2925,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level) sym_bind = ELFW(ST_BIND)(sym->st_info); if (sym_bind == STB_LOCAL) continue; - name = dynstr + sym->st_name; + name = (char *) dynstr + sym->st_name; add_elf_sym(s1->dynsymtab_section, sym->st_value, sym->st_size, sym->st_info, sym->st_other, sym->st_shndx, name); } @@ -2934,7 +2934,7 @@ ST_FUNC int tcc_load_dll(TCCState *s1, int fd, const char *filename, int level) for(i = 0, dt = dynamic; i < nb_dts; i++, dt++) { switch(dt->d_tag) { case DT_NEEDED: - name = dynstr + dt->d_un.d_val; + name = (char *) dynstr + dt->d_un.d_val; for(j = 0; j < s1->nb_loaded_dlls; j++) { dllref = s1->loaded_dlls[j]; if (!strcmp(name, dllref->name)) diff --git a/tccpp.c b/tccpp.c index b12b120f..cf1fc653 100644 --- a/tccpp.c +++ b/tccpp.c @@ -1247,7 +1247,7 @@ static inline int hash_cached_include(const char *filename) unsigned int h; h = TOK_HASH_INIT; - s = filename; + s = (unsigned char *) filename; while (*s) { h = TOK_HASH_FUNC(h, *s); s++; @@ -2222,7 +2222,7 @@ maybe_newline: goto token_found; pts = &(ts->hash_next); } - ts = tok_alloc_new(pts, p1, len); + ts = tok_alloc_new(pts, (char *) p1, len); token_found: ; } else { /* slower case */ diff --git a/tccrun.c b/tccrun.c index 620be0d9..bd8c33f2 100644 --- a/tccrun.c +++ b/tccrun.c @@ -272,7 +272,7 @@ static addr_t rt_printline(addr_t wanted_pc, const char *msg) if (stab_section) { stab_len = stab_section->data_offset; stab_sym = (Stab_Sym *)stab_section->data; - stab_str = stabstr_section->data; + stab_str = (char *) stabstr_section->data; } func_name[0] = '\0'; @@ -365,7 +365,7 @@ no_stabs: if (wanted_pc >= sym->st_value && wanted_pc < sym->st_value + sym->st_size) { pstrcpy(last_func_name, sizeof(last_func_name), - strtab_section->data + sym->st_name); + (char *) strtab_section->data + sym->st_name); func_addr = sym->st_value; goto found; } -- 2.11.4.GIT