version 1.11, 2002/07/05 05:39:42 |
version 1.12, 2003/04/26 18:29:51 |
|
|
int num; /* arg number */ |
int num; /* arg number */ |
{ |
{ |
token tok; |
token tok; |
char name[10]; /* argument name */ |
|
|
|
if (dkind == DEF_PROGRAM) { |
if (dkind == DEF_PROGRAM) { |
peek(&tok); |
peek(&tok); |
|
|
} |
} |
get_type(&dec->prefix, &dec->type, dkind); |
get_type(&dec->prefix, &dec->type, dkind); |
dec->rel = REL_ALIAS; |
dec->rel = REL_ALIAS; |
if (peekscan(TOK_IDENT, &tok)) /* optional name of argument */ |
if (peekscan(TOK_IDENT, &tok)) { /* optional name of argument */ |
strlcpy(name, tok.str, sizeof name); |
dec->name = (char *)strdup(tok.str); |
else { |
if (dec->name == NULL) |
|
error("out of memory"); |
|
} else { |
/* default name of argument */ |
/* default name of argument */ |
snprintf(name, sizeof name, "%s%d", ARGNAME, num); |
if (asprintf(&dec->name, "%s%d", ARGNAME, num) == -1) |
|
error("out of memory"); |
} |
} |
|
|
dec->name = (char *)strdup(name); |
|
if (dec->name == NULL) |
|
error("out of memory"); |
|
|
|
if (streq(dec->type, "void")) |
if (streq(dec->type, "void")) |
return; |
return; |