cc: get rid of sprint() and temporary buffer for type conversion fuction

slookup() copies to symb, so use the symb[NSYMB] buffer directly
to declare type conversion functions and get rid of the arbitrary
sized local buffer. replace sprint() with snprint().
This commit is contained in:
cinap_lenrek 2020-04-19 20:44:19 +02:00
parent 3a79916c9b
commit 3f87ffea44

View file

@ -217,7 +217,6 @@ dclfunct(Type *t, Sym *s)
Node *n; Node *n;
Type *f1, *f2, *f3, *f4; Type *f1, *f2, *f3, *f4;
int o, i, c; int o, i, c;
char str[100];
if(t->funct) if(t->funct)
return; return;
@ -262,9 +261,9 @@ dclfunct(Type *t, Sym *s)
o = ftabinit[i].op; o = ftabinit[i].op;
if(o == OXXX) if(o == OXXX)
break; break;
sprint(str, "%s_%s_", t->tag->name, ftabinit[i].name); snprint(symb, NSYMB, "%s_%s_", t->tag->name, ftabinit[i].name);
n = new(ONAME, Z, Z); n = new(ONAME, Z, Z);
n->sym = slookup(str); n->sym = lookup();
f->sym[o] = n->sym; f->sym[o] = n->sym;
switch(ftabinit[i].typ) { switch(ftabinit[i].typ) {
default: default:
@ -296,18 +295,18 @@ dclfunct(Type *t, Sym *s)
/* /*
* OCAST types T1 _T2_T1_(T2) * OCAST types T1 _T2_T1_(T2)
*/ */
sprint(str, "_%s%s_", gtabinit[i].name, t->tag->name); snprint(symb, NSYMB, "_%s%s_", gtabinit[i].name, t->tag->name);
n = new(ONAME, Z, Z); n = new(ONAME, Z, Z);
n->sym = slookup(str); n->sym = lookup();
f->castto[o] = n->sym; f->castto[o] = n->sym;
f1 = typ(TFUNC, t); f1 = typ(TFUNC, t);
f1->down = types[o]; f1->down = types[o];
dodecl(xdecl, CEXTERN, f1, n); dodecl(xdecl, CEXTERN, f1, n);
sprint(str, "%s_%s_", t->tag->name, gtabinit[i].name); snprint(symb, NSYMB, "%s_%s_", t->tag->name, gtabinit[i].name);
n = new(ONAME, Z, Z); n = new(ONAME, Z, Z);
n->sym = slookup(str); n->sym = lookup();
f->castfr[o] = n->sym; f->castfr[o] = n->sym;
f1 = typ(TFUNC, types[o]); f1 = typ(TFUNC, types[o]);