Lines Matching defs:dcs

60 dinfo_t	*dcs;
91 if ((dcs = calloc(1, sizeof (dinfo_t))) == NULL)
93 dcs->d_ctx = EXTERN;
94 dcs->d_ldlsym = &dcs->d_dlsyms;
206 * Remember the storage class of the current declaration in dcs->d_scl
215 if (dcs->d_inline)
218 dcs->d_inline = 1;
221 if (dcs->d_type != NULL || dcs->d_atyp != NOTSPEC ||
222 dcs->d_smod != NOTSPEC || dcs->d_lmod != NOTSPEC) {
226 if (dcs->d_scl == NOSCL) {
227 dcs->d_scl = sc;
233 dcs->d_mscl = 1;
239 * in *dcs (top element of decl stack). This information is used in
253 if (dcs->d_type != NULL || dcs->d_atyp != NOTSPEC ||
254 dcs->d_lmod != NOTSPEC || dcs->d_smod != NOTSPEC) {
261 dcs->d_type = tp;
272 if (dcs->d_type != NULL || dcs->d_atyp != NOTSPEC ||
273 dcs->d_lmod != NOTSPEC || dcs->d_smod != NOTSPEC) {
278 dcs->d_terr = 1;
279 dcs->d_atyp = dcs->d_lmod = dcs->d_smod = NOTSPEC;
281 dcs->d_type = tp;
285 if (dcs->d_type != NULL && !dcs->d_type->t_typedef) {
290 dcs->d_terr = 1;
294 if (t == LONG && dcs->d_lmod == LONG) {
297 dcs->d_lmod = NOTSPEC;
303 if (dcs->d_type != NULL && dcs->d_type->t_typedef) {
305 dcs->d_type = tdeferr(dcs->d_type, t);
311 /* remember specifiers "signed" and "unsigned" in dcs->d_smod */
312 if (dcs->d_smod != NOTSPEC)
317 dcs->d_terr = 1;
318 dcs->d_smod = t;
322 * dcs->d_lmod
324 if (dcs->d_lmod != NOTSPEC)
326 dcs->d_terr = 1;
327 dcs->d_lmod = t;
331 * "double" int dcs->d_atyp
333 if (dcs->d_atyp != NOTSPEC)
335 dcs->d_terr = 1;
336 dcs->d_atyp = t;
422 dcs->d_terr = 1;
462 if (dcs->d_const) {
466 dcs->d_const = 1;
470 if (dcs->d_volatile) {
474 dcs->d_volatile = 1;
493 di->d_nxt = dcs;
494 dcs = di;
508 (void)printf("popdecl(%d)\n", (int)dcs->d_ctx);
510 if (dcs->d_nxt == NULL)
512 di = dcs;
513 dcs = di->d_nxt;
528 if ((*dcs->d_ldlsym = di->d_dlsyms) != NULL)
529 dcs->d_ldlsym = di->d_ldlsym;
533 * All symbols in dcs->d_dlsyms are introduced in old style
540 *di->d_ldlsym = dcs->d_fpsyms;
541 dcs->d_fpsyms = di->d_dlsyms;
553 if ((*dcs->d_ldlsym = di->d_dlsyms) != NULL)
554 dcs->d_ldlsym = di->d_ldlsym;
592 for (di = dcs; di != NULL; di = di->d_nxt)
604 dcs->d_atyp = dcs->d_smod = dcs->d_lmod = NOTSPEC;
605 dcs->d_scl = NOSCL;
606 dcs->d_type = NULL;
607 dcs->d_const = dcs->d_volatile = 0;
608 dcs->d_inline = 0;
609 dcs->d_mscl = dcs->d_terr = 0;
610 dcs->d_nedecl = 0;
611 dcs->d_notyp = 0;
627 t = dcs->d_atyp; /* CHAR, INT, FLOAT, DOUBLE, VOID */
628 s = dcs->d_smod; /* SIGNED, UNSIGNED */
629 l = dcs->d_lmod; /* SHORT, LONG, QUAD */
630 tp = dcs->d_type;
631 scl = dcs->d_scl;
634 dcs->d_notyp = 1;
652 dcs->d_terr = 1;
680 dcs->d_terr = 1;
685 dcs->d_type = gettyp(mrgtspec(t, s));
688 if (dcs->d_mscl) {
692 if (dcs->d_terr) {
697 if (dcs->d_ctx == EXTERN) {
703 } else if (dcs->d_ctx == ARG || dcs->d_ctx == PARG) {
711 dcs->d_scl = scl;
713 if (dcs->d_const && dcs->d_type->t_const) {
714 if (!dcs->d_type->t_typedef)
719 if (dcs->d_volatile && dcs->d_type->t_volatile) {
720 if (!dcs->d_type->t_typedef)
726 if (dcs->d_const || dcs->d_volatile) {
727 dcs->d_type = duptyp(dcs->d_type);
728 dcs->d_type->t_const |= dcs->d_const;
729 dcs->d_type->t_volatile |= dcs->d_volatile;
925 if (dcs->d_ctx == PARG) {
933 } else if (dcs->d_ctx == ABSTRACT) {
968 if (dcs->d_rdcsym != NULL) {
969 if ((sc = dcs->d_rdcsym->s_scl) != MOS && sc != MOU)
972 if (dsym->s_styp == dcs->d_rdcsym->s_styp) {
975 rmsym(dcs->d_rdcsym);
1004 } else if (t == INT && dcs->d_smod == NOTSPEC) {
1058 if (dcs->d_ctx == MOU) {
1059 o = dcs->d_offset;
1060 dcs->d_offset = 0;
1064 dsym->s_value.v_quad = (dcs->d_offset / size(t)) * size(t);
1065 tp->t_foffs = dcs->d_offset - (int)dsym->s_value.v_quad;
1066 dcs->d_offset += tp->t_flen;
1069 dsym->s_value.v_quad = dcs->d_offset;
1070 dcs->d_offset += sz;
1072 if (dcs->d_ctx == MOU) {
1073 if (o > dcs->d_offset)
1074 dcs->d_offset = o;
1103 if (al > dcs->d_stralign)
1104 dcs->d_stralign = al;
1106 no = (dcs->d_offset + (al - 1)) & ~(al - 1);
1107 if (len == 0 || dcs->d_offset + len > no)
1108 dcs->d_offset = no;
1174 * The current type is the Type built by deftyp() (dcs->d_type) and
1185 while (*tpp && *tpp != dcs->d_type)
1195 *(tpp = &tp->t_subt) = dcs->d_type;
1213 while (*tpp && *tpp != dcs->d_type)
1220 tp->t_subt = dcs->d_type;
1243 if (dcs->d_proto) {
1256 * dcs->d_nxt->d_fpsyms. Also a list of the arguments (concatenated
1257 * by s_nxt) is stored in dcs->d_nxt->d_fargs.
1258 * (dcs->d_nxt must be used because *dcs is the declaration stack
1262 if (dcs->d_nxt->d_ctx == EXTERN &&
1263 decl->s_type == dcs->d_nxt->d_type) {
1264 dcs->d_nxt->d_fpsyms = dcs->d_dlsyms;
1265 dcs->d_nxt->d_fargs = args;
1269 while (*tpp && *tpp != dcs->d_nxt->d_type)
1276 tp->t_subt = dcs->d_nxt->d_type;
1277 if ((tp->t_proto = dcs->d_proto) != 0)
1279 tp->t_vararg = dcs->d_vararg;
1299 for (sym = dcs->d_dlsyms; sym != NULL; sym = sym->s_dlnxt) {
1334 if (dcs->d_nxt->d_ctx == EXTERN &&
1335 decl->s_type == dcs->d_nxt->d_type) {
1383 dcs->d_rdcsym = NULL;
1386 dcs->d_rdcsym = NULL;
1388 dcs->d_rdcsym = sym;
1392 switch (dcs->d_ctx) {
1396 sym->s_styp = dcs->d_tagtyp->t_str;
1399 sc = dcs->d_ctx;
1410 if ((sc = dcs->d_scl) == NOSCL) {
1427 if ((sc = dcs->d_scl) == NOSCL) {
1438 if ((sc = dcs->d_scl) == NOSCL) {
1464 sym->s_type = dcs->d_type;
1466 dcs->d_fpsyms = NULL;
1525 dcs->d_nxt->d_nedecl = 1;
1546 dcs->d_nxt->d_nedecl = 1;
1588 dcs->d_nxt->d_nedecl = 1;
1595 dcs->d_nxt->d_nedecl = 1;
1603 dcs->d_nxt->d_nedecl = 1;
1611 dcs->d_nxt->d_nedecl = 1;
1617 dcs->d_nxt->d_nedecl = 1;
1619 dcs->d_nxt->d_nedecl = 1;
1660 align(dcs->d_stralign, 0);
1662 sp->align = dcs->d_stralign;
1663 sp->size = dcs->d_offset;
1722 sym->s_type = dcs->d_tagtyp;
1757 if (dcs->d_inline) {
1779 if ((rdsym = dcs->d_rdcsym) != NULL) {
1875 if ((rsym = dcs->d_rdcsym)->s_scl == ENUMCON) {
2178 if (dcs->d_rdcsym != NULL && dcs->d_rdcsym->s_blklev == blklev) {
2181 rmsym(dcs->d_rdcsym);
2209 if (dcs->d_inline)
2260 for (arg = dcs->d_fargs; arg != NULL; arg = arg->s_nxt)
2288 arg = dcs->d_fargs;
2343 prevdecl(285, dcs->d_rdcsym);
2398 if (dcs->d_scl == NOSCL)
2421 if (dcs->d_inline) {
2434 if (dcs->d_rdcsym != NULL && dsym->s_scl == EXTERN)
2449 if (dcs->d_rdcsym != NULL) {
2451 if (dcs->d_rdcsym->s_blklev == 0) {
2478 } else if (dcs->d_rdcsym->s_blklev == blklev) {
2481 if (dcs->d_rdcsym->s_arg) {
2490 rmsym(dcs->d_rdcsym);
2494 } else if (dcs->d_rdcsym->s_blklev < blklev) {
2502 if (dcs->d_rdcsym->s_blklev == blklev) {
2506 rmsym(dcs->d_rdcsym);
2539 esym = dcs->d_rdcsym;
2604 if (dcs->d_ctx == EXTERN) {
2623 if (dcs->d_ctx != ABSTRACT && dcs->d_ctx != PARG)
2633 if (dcs->d_ctx == PARG)
2636 sym->s_type = dcs->d_type;
2637 dcs->d_rdcsym = NULL;
2638 dcs->d_vararg = 0;
2650 while (dcs->d_nxt != NULL)
2899 if (!zflag || dcs->d_ctx != EXTERN)
2935 if (blklev != 0 || dcs->d_nxt != NULL)
2940 for (sym = dcs->d_dlsyms; sym != NULL; sym = sym->s_dlnxt) {