|
|
1.1 root 1: #include <stdio.h>
2: #ifdef vax
3: #include "INC$LIB:mch.h"
4: #include "INC$LIB:stream.h"
5: #include "INC$LIB:ops.h"
6: #else
7: #include "mch.h"
8: #include "stream.h"
9: #include "ops.h"
10: #endif
11:
12: /*
13: * Copy debug label information.
14: */
15:
16: ival_t icpy();
17:
18: tcpy(class)
19: {
20: register int n;
21: register int nline;
22: register int c;
23: register sizeof_t z;
24: extern int line;
25:
26: /* Write class */
27: bput(class);
28:
29: /* Read line number */
30: nline = icpy();
31:
32: /* Get value */
33: if (class < DC_LINE)
34: ;
35: else if (class < DC_AUTO)
36: line = nline;
37: else if (class < DC_MOS)
38: icpy();
39: else {
40: bcpy();
41: bcpy();
42: icpy();
43: }
44:
45: /* Get name */
46: while (bcpy() != 0);
47:
48: /* Get type */
49: for (;;) {
50: c = bcpy();
51: z = zget();
52: zput(z);
53: switch (c) {
54: case DT_NONE:
55: case DT_CHAR:
56: case DT_UCHAR:
57: case DT_SHORT:
58: case DT_USHORT:
59: case DT_INT:
60: case DT_UINT:
61: case DT_LONG:
62: case DT_ULONG:
63: case DT_FLOAT:
64: case DT_DOUBLE:
65: case DT_VOID:
66: break;
67: case DT_STRUCT:
68: case DT_UNION:
69: case DT_ENUM:
70: case DD_PTR:
71: case DD_FUNC:
72: case DD_ARRAY:
73: continue;
74: case DX_MEMBS:
75: n = z;
76: while (--n >= 0) tcpy(bget());
77: break;
78: case DX_NAME:
79: while (bcpy() != 0);
80: break;
81: default:
82: cbotch("bad type in tcpy: %d", n);
83: }
84: break;
85: }
86: }
87:
88: static
89: bcpy()
90: {
91: register int n;
92:
93: n = bget();
94: bput(n);
95: return (n);
96: }
97:
98: static ival_t
99: icpy()
100: {
101: register ival_t i;
102:
103: i = iget();
104: iput(i);
105: return (i);
106: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.