# HG changeset patch # User lost@l-w.ca # Date 1295588386 25200 # Node ID 7317fbe024afe44149b28333d8ff58d3a31c5d73 # Parent 96c4dc89016ebdfc0d953349fa532c3c9e50f27f Clean up insane number of compiler warnings under -Wall diff -r 96c4dc89016e -r 7317fbe024af Makefile --- a/Makefile Wed Jan 19 22:31:00 2011 -0700 +++ b/Makefile Thu Jan 20 22:39:46 2011 -0700 @@ -1,8 +1,8 @@ -CPPFLAGS += -I lwlib -DPACKAGE_STRING='"lwtools 4.0-pre"' -DPACKAGE_BUGREPORT='"lost@l-w.ca"' +CPPFLAGS += -I lwlib -D_GNU_SOURCE -DPACKAGE_STRING='"lwtools 4.0-pre"' -DPACKAGE_BUGREPORT='"lost@l-w.ca"' LDFLAGS += -L$(PWD)/lwlib -llw -MAIN_TARGETS := lwasm/lwasm lwlink/lwlink lwar/lwar +MAIN_TARGETS := lwasm/lwasm lwlink/lwlink lwar/lwar lwlink/lwobjdump .PHONY: all all: $(MAIN_TARGETS) @@ -15,6 +15,7 @@ lwlink_objs := $(lwlink_srcs:.c=.o) lwar_objs := $(lwar_srcs:.c=.o) lwlib_objs := $(lwlib_srcs:.c=.o) +lwobjdump_objs := $(lwobjdump_srcs:.c=.o) lwasm_deps := $(lwasm_srcs:.c=.d) lwlink_deps := $(lwlink_srcs:.c=.d) @@ -65,4 +66,7 @@ rm -f lwlib/liblw.a lwasm/lwasm lwlink/lwlink lwlink/lwobjdump lwar/lwar rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs) rm -f $(extra_clean) + +print-%: + @echo $* = $($*) \ No newline at end of file diff -r 96c4dc89016e -r 7317fbe024af lwar/add.c --- a/lwar/add.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwar/add.c Thu Jan 20 22:39:46 2011 -0700 @@ -25,6 +25,7 @@ #include #include #include +#include #include "lwar.h" diff -r 96c4dc89016e -r 7317fbe024af lwar/replace.c --- a/lwar/replace.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwar/replace.c Thu Jan 20 22:39:46 2011 -0700 @@ -23,6 +23,7 @@ #include #include #include +#include #include "lwar.h" diff -r 96c4dc89016e -r 7317fbe024af lwar/util.c --- a/lwar/util.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwar/util.c Thu Jan 20 22:39:46 2011 -0700 @@ -52,7 +52,7 @@ if (size == 0) { lw_free(optr); - return; + return NULL; } ptr = realloc(optr, size); @@ -61,6 +61,7 @@ fprintf(stderr, "lw_realloc(): memory allocation error\n"); exit(1); } + return ptr; } void lw_free(void *ptr) diff -r 96c4dc89016e -r 7317fbe024af lwasm/debug.c --- a/lwasm/debug.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/debug.c Thu Jan 20 22:39:46 2011 -0700 @@ -34,9 +34,9 @@ void dump_state(asmstate_t *as) { line_t *cl; - exportlist_t *ex; - struct symtabe *s; - importlist_t *im; +// exportlist_t *ex; +// struct symtabe *s; +// importlist_t *im; struct line_expr_s *le; lwasm_error_t *e; diff -r 96c4dc89016e -r 7317fbe024af lwasm/input.c --- a/lwasm/input.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/input.c Thu Jan 20 22:39:46 2011 -0700 @@ -32,6 +32,8 @@ #include #include #include +#include + #include "lwasm.h" /* @@ -82,7 +84,7 @@ /* also add it to the list of files included */ char *dn, *dp; - int o; +// int o; dn = lw_strdup(fn); lw_stack_push(as -> includelist, dn); @@ -177,7 +179,7 @@ /* relative path, check relative to "current file" directory */ p = lw_stack_top(as -> file_dir); - 0 == asprintf(&p2, "%s/%s", p, s); + (void)(0 == asprintf(&p2, "%s/%s", p, s)); debug_message(as, 1, "Open: (cd) %s\n", p2); IS -> data = fopen(p2, "rb"); if (IS -> data) @@ -191,9 +193,9 @@ /* now check relative to entries in the search path */ lw_stringlist_reset(as -> include_list); - while (p = lw_stringlist_current(as -> include_list)) + while ((p = lw_stringlist_current(as -> include_list))) { - 0 == asprintf(&p2, "%s/%s", p, s); + (void)(0 == asprintf(&p2, "%s/%s", p, s)); debug_message(as, 1, "Open (sp): %s\n", p2); IS -> data = fopen(p2, "rb"); if (IS -> data) @@ -226,7 +228,7 @@ FILE *input_open_standalone(asmstate_t *as, char *s) { - char *s2; +// char *s2; FILE *fp; char *p, *p2; @@ -245,7 +247,7 @@ /* relative path, check relative to "current file" directory */ p = lw_stack_top(as -> file_dir); - 0 == asprintf(&p2, "%s/%s", p, s); + (void)(0 == asprintf(&p2, "%s/%s", p, s)); debug_message(as, 2, "Open file (st cd) %s", p2); fp = fopen(p2, "rb"); if (fp) @@ -257,9 +259,9 @@ /* now check relative to entries in the search path */ lw_stringlist_reset(as -> include_list); - while (p = lw_stringlist_current(as -> include_list)) + while ((p = lw_stringlist_current(as -> include_list))) { - 0 == asprintf(&p2, "%s/%s", p, s); + (void)(0 == asprintf(&p2, "%s/%s", p, s)); debug_message(as, 2, "Open file (st ip) %s", p2); fp = fopen(p2, "rb"); if (fp) @@ -402,6 +404,7 @@ default: lw_error("Problem reading from unknown input type"); + return NULL; } } diff -r 96c4dc89016e -r 7317fbe024af lwasm/insn_bitbit.c --- a/lwasm/insn_bitbit.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/insn_bitbit.c Thu Jan 20 22:39:46 2011 -0700 @@ -19,6 +19,7 @@ */ #include +#include #include @@ -30,8 +31,8 @@ { int r; lw_expr_t e; - int v1; - int tv; +// int v1; +// int tv; r = toupper(*(*p)++); if (r == 'A') diff -r 96c4dc89016e -r 7317fbe024af lwasm/insn_gen.c --- a/lwasm/insn_gen.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/insn_gen.c Thu Jan 20 22:39:46 2011 -0700 @@ -31,11 +31,14 @@ extern void insn_indexed_resolve_aux(asmstate_t *as, line_t *l, int force, int elen); extern void insn_indexed_emit_aux(asmstate_t *as, line_t *l); +extern void insn_parse_indexed_aux(asmstate_t *as, line_t *l, char **p); +extern void insn_resolve_indexed_aux(asmstate_t *as, line_t *l, int force, int elen); + // "extra" is required due to the way OIM, EIM, TIM, and AIM work void insn_parse_gen_aux(asmstate_t *as, line_t *l, char **p) { const char *optr2; - int v1, tv, rval; + int v1, tv; lw_expr_t s; optr2 = *p; diff -r 96c4dc89016e -r 7317fbe024af lwasm/insn_indexed.c --- a/lwasm/insn_indexed.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/insn_indexed.c Thu Jan 20 22:39:46 2011 -0700 @@ -314,7 +314,7 @@ { // here, we have an expression which needs to be // resolved; the post byte is determined here as well - lw_expr_t e, e2, e3; + lw_expr_t e, e2; int pb = -1; int v; @@ -414,7 +414,7 @@ } else { - pb = (l -> pb & 0x03) << 5 | v & 0x1F; + pb = (l -> pb & 0x03) << 5 | (v & 0x1F); } l -> pb = pb; return; @@ -499,7 +499,7 @@ } else { - pb = (l -> pb & 0x03) << 5 | v & 0x1F; + pb = (l -> pb & 0x03) << 5 | (v & 0x1F); } l -> pb = pb; return; diff -r 96c4dc89016e -r 7317fbe024af lwasm/insn_logicmem.c --- a/lwasm/insn_logicmem.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/insn_logicmem.c Thu Jan 20 22:39:46 2011 -0700 @@ -36,7 +36,7 @@ // for aim, oim, eim, tim PARSEFUNC(insn_parse_logicmem) { - const char *p2; +// const char *p2; lw_expr_t s; if (**p == '#') diff -r 96c4dc89016e -r 7317fbe024af lwasm/insn_rel.c --- a/lwasm/insn_rel.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/insn_rel.c Thu Jan 20 22:39:46 2011 -0700 @@ -31,9 +31,9 @@ PARSEFUNC(insn_parse_rel8) { - int v; +// int v; lw_expr_t t, e1, e2; - int r; +// int r; // sometimes there is a "#", ignore if there if (**p == '#') @@ -80,9 +80,9 @@ PARSEFUNC(insn_parse_rel16) { - int v; +// int v; lw_expr_t t, e1, e2; - int r; +// int r; // sometimes there is a "#", ignore if there if (**p == '#') @@ -107,7 +107,7 @@ EMITFUNC(insn_emit_rel16) { lw_expr_t e; - int offs; +// int offs; e = lwasm_fetch_expr(l, 0); diff -r 96c4dc89016e -r 7317fbe024af lwasm/insn_rlist.c --- a/lwasm/insn_rlist.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/insn_rlist.c Thu Jan 20 22:39:46 2011 -0700 @@ -22,6 +22,8 @@ for handling inherent mode instructions */ +#include + #include "lwasm.h" #include "instab.h" diff -r 96c4dc89016e -r 7317fbe024af lwasm/lwasm.c --- a/lwasm/lwasm.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/lwasm.c Thu Jan 20 22:39:46 2011 -0700 @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -597,6 +598,7 @@ int lwasm_reduce_expr(asmstate_t *as, lw_expr_t expr) { lw_expr_simplify(expr, as); + return 0; } void lwasm_save_expr(line_t *cl, int id, lw_expr_t expr) diff -r 96c4dc89016e -r 7317fbe024af lwasm/lwasm.h --- a/lwasm/lwasm.h Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/lwasm.h Thu Jan 20 22:39:46 2011 -0700 @@ -304,12 +304,13 @@ extern int lwasm_reduce_expr(asmstate_t *as, lw_expr_t expr); +extern lw_expr_t lwasm_parse_cond(asmstate_t *as, char **p); + +#endif + extern void debug_message(asmstate_t *as, int level, const char *fmt, ...); extern void dump_state(asmstate_t *as); -extern lw_expr_t lwasm_parse_cond(asmstate_t *as, char **p); - -#endif #define OPLEN(op) (((op)>0xFF)?2:1) #define CURPRAGMA(l,p) (((l)->pragmas & (p)) ? 1 : 0) diff -r 96c4dc89016e -r 7317fbe024af lwasm/macro.c --- a/lwasm/macro.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/macro.c Thu Jan 20 22:39:46 2011 -0700 @@ -135,7 +135,7 @@ int expand_macro(asmstate_t *as, line_t *l, char **p, char *opc) { int lc; - line_t *cl, *nl; + line_t *cl; //, *nl; int oldcontext; macrotab_t *m; diff -r 96c4dc89016e -r 7317fbe024af lwasm/main.c --- a/lwasm/main.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/main.c Thu Jan 20 22:39:46 2011 -0700 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -248,7 +249,7 @@ // output dependencies char *n; - while (n = lw_stack_pop(asmstate.includelist)) + while ((n = lw_stack_pop(asmstate.includelist))) { fprintf(stdout, "%s\n", n); lw_free(n); diff -r 96c4dc89016e -r 7317fbe024af lwasm/output.c --- a/lwasm/output.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/output.c Thu Jan 20 22:39:46 2011 -0700 @@ -342,8 +342,8 @@ writebytes(se -> symbol, strlen(se -> symbol), 1, of); if (se -> context != -1) { - sprintf(buf, "\x01%d", se -> context); - writebytes(buf, strlen(buf), 1, of); + sprintf((char *)buf, "\x01%d", se -> context); + writebytes(buf, strlen((char *)buf), 1, of); } writebytes("", 1, 1, of); return 0; @@ -470,8 +470,8 @@ if (se -> context >= 0) { writebytes("\x01", 1, 1, of); - sprintf(buf, "%d", se -> context); - writebytes(buf, strlen(buf), 1, of); + sprintf((char *)buf, "%d", se -> context); + writebytes(buf, strlen((char *)buf), 1, of); } // the "" is NOT an error writebytes("", 1, 1, of); diff -r 96c4dc89016e -r 7317fbe024af lwasm/pass1.c --- a/lwasm/pass1.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/pass1.c Thu Jan 20 22:39:46 2011 -0700 @@ -21,6 +21,8 @@ #include #include +#include +#include #include #include @@ -31,6 +33,7 @@ extern int expand_macro(asmstate_t *as, line_t *l, char **p, char *opc); extern int expand_struct(asmstate_t *as, line_t *l, char **p, char *opc); +extern int add_macro_line(asmstate_t *as, char *optr); /* pass 1: parse the lines diff -r 96c4dc89016e -r 7317fbe024af lwasm/pass5.c --- a/lwasm/pass5.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/pass5.c Thu Jan 20 22:39:46 2011 -0700 @@ -63,11 +63,11 @@ void do_pass5(asmstate_t *as) { - int rc; +// int rc; int cnt; int ocnt; line_t *cl, *sl; - struct line_expr_s *le; +// struct line_expr_s *le; // first, count the number of non-constant addresses; do // a reduction first on each one diff -r 96c4dc89016e -r 7317fbe024af lwasm/pragma.c --- a/lwasm/pragma.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/pragma.c Thu Jan 20 22:39:46 2011 -0700 @@ -19,7 +19,11 @@ this program. If not, see . */ +#include +#include + #include +#include #include "lwasm.h" #include "instab.h" diff -r 96c4dc89016e -r 7317fbe024af lwasm/pseudo.c --- a/lwasm/pseudo.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/pseudo.c Thu Jan 20 22:39:46 2011 -0700 @@ -20,6 +20,9 @@ */ #include +#include + +#include #include "lwasm.h" #include "instab.h" @@ -101,7 +104,7 @@ { int i; lw_expr_t e; - int v; +// int v; for (i = 0; i < l -> len; i++) { @@ -136,7 +139,7 @@ { int i; lw_expr_t e; - int v; +// int v; for (i = 0; i < (l -> len)/2; i++) { @@ -171,7 +174,7 @@ { int i; lw_expr_t e; - int v; +// int v; for (i = 0; i < (l -> len)/4; i++) { @@ -1056,7 +1059,7 @@ if (delim && **p) (*p)++; - 0 == asprintf(&p3, "include:%s", fn); + (void)(0 == asprintf(&p3, "include:%s", fn)); input_open(as, p3); lw_free(p3); diff -r 96c4dc89016e -r 7317fbe024af lwasm/section.c --- a/lwasm/section.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/section.c Thu Jan 20 22:39:46 2011 -0700 @@ -20,6 +20,7 @@ */ #include +#include #include #include @@ -292,7 +293,7 @@ { int after = 0; char *sym = NULL; - importlist_t *e; +// importlist_t *e; if (as -> output_format != OUTPUT_OBJ) { diff -r 96c4dc89016e -r 7317fbe024af lwasm/struct.c --- a/lwasm/struct.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwasm/struct.c Thu Jan 20 22:39:46 2011 -0700 @@ -80,9 +80,9 @@ while (e) { if (e -> name) - 0 == asprintf(&symname, "%s.%s", prefix, e -> name); + (void)(0 == asprintf(&symname, "%s.%s", prefix, e -> name)); else - 0 == asprintf(&symname, "%s.____%d", prefix, *coff); + (void)(0 == asprintf(&symname, "%s.____%d", prefix, *coff)); // register the symbol te1 = lw_expr_build(lw_expr_type_int, *coff); @@ -94,7 +94,7 @@ if (e -> substruct) { char *t; - 0 == asprintf(&t, "sizeof{%s}", symname); + (void)(0 == asprintf(&t, "sizeof{%s}", symname)); te1 = lw_expr_build(lw_expr_type_int, e -> substruct -> size); register_symbol(as, l, t, te1, symbol_flag_nocheck); lw_expr_destroy(te1); @@ -123,7 +123,7 @@ return; } - 0 == asprintf(&t, "sizeof{%s}", as -> cstruct -> name); + (void)(0 == asprintf(&t, "sizeof{%s}", as -> cstruct -> name)); te = lw_expr_build(lw_expr_type_int, as -> cstruct -> size); register_symbol(as, l, t, te, symbol_flag_nocheck); lw_expr_destroy(te); @@ -188,22 +188,22 @@ if (!(l -> sym)) { lwasm_register_error(as, l, "Cannot declare a structure without a symbol name."); - return; + return -1; } l -> len = s -> size; if (as -> instruct) - 0 == asprintf(&t, "sizeof(%s.%s}", as -> cstruct -> name, l -> sym); + (void)(0 == asprintf(&t, "sizeof(%s.%s}", as -> cstruct -> name, l -> sym)); else - 0 == asprintf(&t, "sizeof{%s}", l -> sym); + (void)(0 == asprintf(&t, "sizeof{%s}", l -> sym)); te = lw_expr_build(lw_expr_type_int, s -> size); register_symbol(as, l, t, te, symbol_flag_nocheck); lw_expr_destroy(te); lw_free(t); if (as -> instruct) - 0 == asprintf(&t, "%s.%s", as -> cstruct -> name, l -> sym); + (void)(0 == asprintf(&t, "%s.%s", as -> cstruct -> name, l -> sym)); else t = lw_strdup(l -> sym); pseudo_endstruct_aux(as, l, s -> fields, t, &addr); diff -r 96c4dc89016e -r 7317fbe024af lwlib/lw_expr.c --- a/lwlib/lw_expr.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlib/lw_expr.c Thu Jan 20 22:39:46 2011 -0700 @@ -22,6 +22,7 @@ #include #include #include +#include #define ___lw_expr_c_seen___ #include "lw_alloc.h" @@ -111,7 +112,7 @@ void lw_expr_add_operand(lw_expr_t E, lw_expr_t O); lw_expr_t lw_expr_copy(lw_expr_t E) { - lw_expr_t r, t; + lw_expr_t r; struct lw_expr_opers *o; r = lw_alloc(sizeof(struct lw_expr_priv)); @@ -610,14 +611,12 @@ // merge plus operations if (E -> value == lw_expr_oper_plus) { - lw_expr_t e2; - tryagainplus: for (o = E -> operands; o; o = o -> next) { if (o -> p -> type == lw_expr_type_oper && o -> p -> value == lw_expr_oper_plus) { - struct lw_expr_opers *o2, *o3; + struct lw_expr_opers *o2; // we have a + operation - bring operands up for (o2 = E -> operands; o2 && o2 -> next != o; o2 = o2 -> next) @@ -640,14 +639,12 @@ // merge times operations if (E -> value == lw_expr_oper_times) { - lw_expr_t e2; - tryagaintimes: for (o = E -> operands; o; o = o -> next) { if (o -> p -> type == lw_expr_type_oper && o -> p -> value == lw_expr_oper_times) { - struct lw_expr_opers *o2, *o3; + struct lw_expr_opers *o2; // we have a + operation - bring operands up for (o2 = E -> operands; o2 && o2 -> next != o; o2 = o2 -> next) diff -r 96c4dc89016e -r 7317fbe024af lwlib/lw_stack.c --- a/lwlib/lw_stack.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlib/lw_stack.c Thu Jan 20 22:39:46 2011 -0700 @@ -55,7 +55,7 @@ { void *d; - while (d = lw_stack_pop(S)) + while ((d = lw_stack_pop(S))) (S->freefn)(d); lw_free(S); } diff -r 96c4dc89016e -r 7317fbe024af lwlink/expr.c --- a/lwlink/expr.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/expr.c Thu Jan 20 22:39:46 2011 -0700 @@ -194,7 +194,7 @@ */ int lw_expr_reval(lw_expr_stack_t *s, lw_expr_stack_t *(*sfunc)(char *sym, int stype, void *state), void *state) { - lw_expr_stack_node_t *n, *n2; + lw_expr_stack_node_t *n; lw_expr_stack_t *ss; int c; diff -r 96c4dc89016e -r 7317fbe024af lwlink/link.c --- a/lwlink/link.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/link.c Thu Jan 20 22:39:46 2011 -0700 @@ -23,6 +23,7 @@ #include #include +#include #include "expr.h" #include "lwlink.h" @@ -41,7 +42,7 @@ for (sn = 0; sn < fn -> nsections; sn++) { - if (!strcmp(name, fn -> sections[sn].name)) + if (!strcmp(name, (char *)(fn -> sections[sn].name))) { // we have a match sectlist = lw_realloc(sectlist, sizeof(struct section_list) * (nsects + 1)); @@ -73,14 +74,14 @@ if (noflags && (fn -> sections[sn].flags & noflags)) continue; // ignore unless the yesflags tell us not to - if (yesflags && (fn -> sections[sn].flags & yesflags == 0)) + if (yesflags && ((fn -> sections[sn].flags & yesflags) == 0)) continue; // ignore it if already processed if (fn -> sections[sn].processed) continue; // we have a match - now collect *all* sections of the same name! - add_matching_sections(fn -> sections[sn].name, 0, 0, base); + add_matching_sections((char *)(fn -> sections[sn].name), 0, 0, base); // and then continue looking for sections } @@ -154,16 +155,16 @@ if (linkscript.lines[ln].noflags && (inputfiles[fn0] -> sections[sn0].flags & linkscript.lines[ln].noflags)) continue; // ignore unless the yes flags tell us not to - if (linkscript.lines[ln].yesflags && (inputfiles[fn0] -> sections[sn0].flags & linkscript.lines[ln].yesflags == 0)) + if (linkscript.lines[ln].yesflags && ((inputfiles[fn0] -> sections[sn0].flags & linkscript.lines[ln].yesflags) == 0)) continue; if (inputfiles[fn0] -> sections[sn0].processed == 0) { - sname = inputfiles[fn0] -> sections[sn0].name; + sname = (char *)(inputfiles[fn0] -> sections[sn0].name); for (fn = 0; fn < ninputfiles; fn++) { for (sn = 0; sn < inputfiles[fn] -> nsections; sn++) { - if (!strcmp(sname, inputfiles[fn] -> sections[sn].name)) + if (!strcmp(sname, (char *)(inputfiles[fn] -> sections[sn].name))) { // we have a match sectlist = lw_realloc(sectlist, sizeof(struct section_list) * (nsects + 1)); @@ -207,7 +208,7 @@ { for (se = fn -> sections[sn].exportedsyms; se; se = se -> next) { - if (!strcmp(sym, se -> sym)) + if (!strcmp(sym, (char *)(se -> sym))) { if (!(fn -> forced)) { @@ -264,7 +265,7 @@ // start with this section for (se = sect -> localsyms; se; se = se -> next) { - if (!strcmp(se -> sym, sym)) + if (!strcmp((char *)(se -> sym), sym)) { val = se -> offset + sect -> loadaddress; goto out; @@ -275,7 +276,7 @@ { for (se = sect -> file -> sections[i].localsyms; se; se = se -> next) { - if (!strcmp(se -> sym, sym)) + if (!strcmp((char *)(se -> sym), sym)) { val = se -> offset + sect -> file -> sections[i].loadaddress; goto out; diff -r 96c4dc89016e -r 7317fbe024af lwlink/main.c --- a/lwlink/main.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/main.c Thu Jan 20 22:39:46 2011 -0700 @@ -27,6 +27,7 @@ #include #include #include +#include #include "lwlink.h" diff -r 96c4dc89016e -r 7317fbe024af lwlink/map.c --- a/lwlink/map.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/map.c Thu Jan 20 22:39:46 2011 -0700 @@ -24,6 +24,7 @@ #include #include #include +#include #include "lwlink.h" #include "util.h" @@ -67,7 +68,7 @@ for (sn = 0; sn < nsects; sn++) { fprintf(of, "Section: %s (%s) load at %04X, length %04X\n", - sanitize_symbol(sectlist[sn].ptr -> name), + sanitize_symbol((char*)(sectlist[sn].ptr -> name)), sectlist[sn].ptr -> file -> filename, sectlist[sn].ptr -> loadaddress, sectlist[sn].ptr -> codesize @@ -81,7 +82,7 @@ { for (pe = NULL, ce = slist; ce; ce = ce -> next) { - i = strcmp(ce -> name, sym -> sym); + i = strcmp(ce -> name, (char *)(sym -> sym)); if (i == 0) { i = strcmp(ce -> fn, sectlist[sn].ptr -> file -> filename); @@ -94,7 +95,7 @@ ne -> ext = 0; ne -> addr = sym -> offset + sectlist[sn].ptr -> loadaddress; ne -> next = ce; - ne -> name = sym -> sym; + ne -> name = (char *)(sym -> sym); ne -> fn = sectlist[sn].ptr -> file -> filename; if (pe) pe -> next = ne; diff -r 96c4dc89016e -r 7317fbe024af lwlink/objdump.c --- a/lwlink/objdump.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/objdump.c Thu Jan 20 22:39:46 2011 -0700 @@ -23,6 +23,7 @@ */ #include #include +#include #include "util.h" @@ -76,7 +77,6 @@ */ int main(int argc, char **argv) { - int i; long size; FILE *f; long bread; @@ -220,7 +220,7 @@ NEXTBYTE(); // val is now the symbol value - printf(" %s=%04X\n", string_cleanup(fp), val); + printf(" %s=%04X\n", string_cleanup((char *)fp), val); } // skip terminating NUL @@ -240,7 +240,7 @@ NEXTBYTE(); // val is now the symbol value - printf(" %s=%04X\n", string_cleanup(fp), val); + printf(" %s=%04X\n", string_cleanup((char *)fp), val); } // skip terminating NUL NEXTBYTE(); @@ -272,12 +272,12 @@ case 0x02: // external symbol reference - printf(" ES=%s", string_cleanup(CURSTR())); + printf(" ES=%s", string_cleanup((char *)CURSTR())); break; case 0x03: // internal symbol reference - printf(" IS=%s", string_cleanup(CURSTR())); + printf(" IS=%s", string_cleanup((char *)CURSTR())); break; case 0x04: diff -r 96c4dc89016e -r 7317fbe024af lwlink/readfiles.c --- a/lwlink/readfiles.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/readfiles.c Thu Jan 20 22:39:46 2011 -0700 @@ -294,12 +294,12 @@ case 0x02: // external symbol reference - term = lw_expr_term_create_sym(CURSTR(), 0); + term = lw_expr_term_create_sym((char *)CURSTR(), 0); break; case 0x03: // internal symbol reference - term = lw_expr_term_create_sym(CURSTR(), 1); + term = lw_expr_term_create_sym((char *)CURSTR(), 1); break; case 0x04: @@ -413,7 +413,7 @@ memset(fn -> subs[fn -> nsubs], 0, sizeof(fileinfo_t)); fn -> subs[fn -> nsubs] -> filedata = fn -> filedata + cc; fn -> subs[fn -> nsubs] -> filesize = flen; - fn -> subs[fn -> nsubs] -> filename = lw_strdup(fn -> filedata + l); + fn -> subs[fn -> nsubs] -> filename = lw_strdup((char *)(fn -> filedata + l)); fn -> subs[fn -> nsubs] -> parent = fn; fn -> subs[fn -> nsubs] -> forced = fn -> forced; read_file(fn -> subs[fn -> nsubs]); diff -r 96c4dc89016e -r 7317fbe024af lwlink/rules.make --- a/lwlink/rules.make Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/rules.make Thu Jan 20 22:39:46 2011 -0700 @@ -1,8 +1,10 @@ dirname := $(dir $(lastword $(MAKEFILE_LIST))) lwlink_srcs_local := main.c lwlink.c util.c readfiles.c expr.c script.c link.c output.c map.c -lwobjdump_srcs_local := objdump.c util.c + +lwobjdump_srcs_l := objdump.c util.c lwlink_srcs := $(lwlink_srcs) $(addprefix $(dirname),$(lwlink_srcs_local)) -lwobjdump_srcs := $(lwobjdump_srcs) $(addprefix $(dirname),$(lwobjdump_srcs_local)) + +lwobjdump_srcs := $(lwobjdump_srcs) $(addprefix $(dirname),$(lwobjdump_srcs_l)) diff -r 96c4dc89016e -r 7317fbe024af lwlink/script.c --- a/lwlink/script.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/script.c Thu Jan 20 22:39:46 2011 -0700 @@ -21,6 +21,7 @@ Read and parse linker scripts */ +#include #include #include #include diff -r 96c4dc89016e -r 7317fbe024af lwlink/util.c --- a/lwlink/util.c Wed Jan 19 22:31:00 2011 -0700 +++ b/lwlink/util.c Thu Jan 20 22:39:46 2011 -0700 @@ -51,7 +51,7 @@ if (size == 0) { lw_free(optr); - return; + return NULL; } ptr = realloc(optr, size); @@ -60,6 +60,7 @@ fprintf(stderr, "lw_realloc(): memory allocation error\n"); exit(1); } + return ptr; } void lw_free(void *ptr)