'=' type(&tp)
{ DeclareType(nd, df, tp);
FreeNode(nd);
-#ifdef DBSYMTAB
- if (options['g']) stb_string(df, D_TYPE);
-#endif /* DBSYMTAB */
}
;
}
}
+stb_addtp(s, tp)
+ char *s;
+ t_type *tp;
+{
+ create_db_str();
+ adds_db_str(s);
+ addc_db_str(':');
+ addc_db_str('t');
+ stb_type(tp, 1);
+ addc_db_str(';');
+ C_ms_stb_cst(db_str.base,
+ N_LSYM,
+ tp == void_type || tp->tp_size >= max_int[2]
+ ? 0
+ : (int)tp->tp_size,
+ (arith) 0);
+}
+
stb_string(df, kind)
register t_def *df;
{
#include "node.h"
#include "scope.h"
#include "walk.h"
+#include "main.h"
#include "chk_expr.h"
#include "warning.h"
#include "uns_arith.h"
CheckForImports(df);
}
}
+#ifdef DBSYMTAB
+ if (options['g']) stb_string(df, D_TYPE);
+#endif
SolveForwardTypeRefs(df);
}
df->df_kind = D_TYPE;
while (nd) {
nd->nd_type->tp_next = df->df_type;
+#ifdef DBSYMTAB
+ if (options['g'] && nd->nd_type->tp_dbindex < 0) {
+ stb_addtp("(forward_type)", nd->nd_type);
+ }
+#endif
nd = nd->nd_RIGHT;
}
FreeNode(df->df_forw_node);
}
}
+stb_addtp(s, tp)
+ char *s;
+ struct type *tp;
+{
+ create_db_str();
+ adds_db_str(s);
+ addc_db_str(':');
+ addc_db_str('t');
+ stb_type(tp, 1);
+ addc_db_str(';');
+ C_ms_stb_cst(db_str.base,
+ N_LSYM,
+ tp == void_type || tp->tp_size > 32767
+ ? 0
+ : (IsPacked(tp) ? (int) tp->tp_psize : (int)tp->tp_size),
+ (arith) 0);
+}
+
stb_string(df, kind)
register struct def *df;
long kind;
"identifier \"%s\" is not a type",
df->df_idf->id_text);
fw_type->f_type->next = tp;
+#ifdef DBSYMTAB
+ if (options['g']) {
+ stb_addtp("(forward_type)", fw_type->f_type);
+ }
+#endif
fw_type = fw_type->f_next;
}