comparison tcc.c @ 550:cfb21030b240

Minor tweaks for building on a 64-bit host, and remove an unnecessary local variable.
author Rob Landley <rob@landley.net>
date Thu, 17 Jan 2008 22:59:03 -0600
parents 3f683703c8db
children d8b3fa09ca5d
comparison
equal deleted inserted replaced
549:26c8edc8b79f 550:cfb21030b240
806 } 806 }
807 return cstr_buf.data; 807 return cstr_buf.data;
808 } 808 }
809 809
810 /* push, without hashing */ 810 /* push, without hashing */
811 static Sym *sym_push2(Sym **ps, int v, int t, int c) 811 static Sym *sym_push2(Sym **ps, int v, int t, long c)
812 { 812 {
813 Sym *s; 813 Sym *s;
814 s = sym_malloc(); 814 s = sym_malloc();
815 s->v = v; 815 s->v = v;
816 s->type.t = t; 816 s->type.t = t;
1582 /* defines handling */ 1582 /* defines handling */
1583 static inline void define_push(int v, int macro_type, int *str, Sym *first_arg) 1583 static inline void define_push(int v, int macro_type, int *str, Sym *first_arg)
1584 { 1584 {
1585 Sym *s; 1585 Sym *s;
1586 1586
1587 s = sym_push2(&define_stack, v, macro_type, (int)str); 1587 s = sym_push2(&define_stack, v, macro_type, (long)str);
1588 s->next = first_arg; 1588 s->next = first_arg;
1589 table_ident[v - TOK_IDENT]->sym_define = s; 1589 table_ident[v - TOK_IDENT]->sym_define = s;
1590 } 1590 }
1591 1591
1592 /* undefined a define symbol. Its name is just set to zero */ 1592 /* undefined a define symbol. Its name is just set to zero */
3224 parlevel--; 3224 parlevel--;
3225 tok_str_add2(&str, tok, tok_flags, &tokc); 3225 tok_str_add2(&str, tok, tok_flags, &tokc);
3226 next_nomacro(); 3226 next_nomacro();
3227 } 3227 }
3228 tok_str_add(&str, 0, 0); 3228 tok_str_add(&str, 0, 0);
3229 sym_push2(&args, sa->v & ~SYM_FIELD, sa->type.t, (int)str.str); 3229 sym_push2(&args, sa->v & ~SYM_FIELD, sa->type.t, (long)str.str);
3230 sa = sa->next; 3230 sa = sa->next;
3231 if (tok == ')') { 3231 if (tok == ')') {
3232 /* special case for gcc var args: add an empty 3232 /* special case for gcc var args: add an empty
3233 var arg argument if it is omitted */ 3233 var arg argument if it is omitted */
3234 if (sa && sa->type.t && gnu_ext) 3234 if (sa && sa->type.t && gnu_ext)
7130 skip('('); 7130 skip('(');
7131 gexpr(); 7131 gexpr();
7132 skip(')'); 7132 skip(')');
7133 a = gtst(1, 0); 7133 a = gtst(1, 0);
7134 block(bsym, csym, case_sym, def_sym, case_reg, 0); 7134 block(bsym, csym, case_sym, def_sym, case_reg, 0);
7135 c = tok; 7135 if (tok == TOK_ELSE) {
7136 if (c == TOK_ELSE) {
7137 next(); 7136 next();
7138 d = gjmp(0); 7137 d = gjmp(0);
7139 gsym(a); 7138 gsym(a);
7140 block(bsym, csym, case_sym, def_sym, case_reg, 0); 7139 block(bsym, csym, case_sym, def_sym, case_reg, 0);
7141 gsym(d); /* patch else jmp */ 7140 gsym(d); /* patch else jmp */