ADB dumped core on the SUN, because of 0-indexes in the symbol table.
They are replaced by pointers to null-strings
This commit is contained in:
parent
a1c73c0335
commit
7559525e48
|
@ -485,8 +485,19 @@ emit_symtab()
|
||||||
M->value = A->on_valu;
|
M->value = A->on_valu;
|
||||||
switch(A->on_type & S_TYP) {
|
switch(A->on_type & S_TYP) {
|
||||||
case S_UND:
|
case S_UND:
|
||||||
|
switch(A->on_type & S_ETC) {
|
||||||
|
default:
|
||||||
M->type = N_UNDF;
|
M->type = N_UNDF;
|
||||||
break;
|
break;
|
||||||
|
case S_MOD:
|
||||||
|
case S_FIL:
|
||||||
|
M->type = N_FN;
|
||||||
|
break;
|
||||||
|
case S_LIN:
|
||||||
|
M->type = N_ABS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case S_ABS:
|
case S_ABS:
|
||||||
M->type = N_ABS;
|
M->type = N_ABS;
|
||||||
break;
|
break;
|
||||||
|
@ -528,6 +539,7 @@ emit_symtab()
|
||||||
if (M->name = A->on_foff) {
|
if (M->name = A->on_foff) {
|
||||||
M->name -= offX;
|
M->name -= offX;
|
||||||
}
|
}
|
||||||
|
else M->name = outhead.oh_nchar + 3; /* pointer to nullbyte */
|
||||||
cvlong(&(M->name));
|
cvlong(&(M->name));
|
||||||
cvlong(&(M->value));
|
cvlong(&(M->value));
|
||||||
}
|
}
|
||||||
|
|
|
@ -485,8 +485,19 @@ emit_symtab()
|
||||||
M->value = A->on_valu;
|
M->value = A->on_valu;
|
||||||
switch(A->on_type & S_TYP) {
|
switch(A->on_type & S_TYP) {
|
||||||
case S_UND:
|
case S_UND:
|
||||||
|
switch(A->on_type & S_ETC) {
|
||||||
|
default:
|
||||||
M->type = N_UNDF;
|
M->type = N_UNDF;
|
||||||
break;
|
break;
|
||||||
|
case S_MOD:
|
||||||
|
case S_FIL:
|
||||||
|
M->type = N_FN;
|
||||||
|
break;
|
||||||
|
case S_LIN:
|
||||||
|
M->type = N_ABS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case S_ABS:
|
case S_ABS:
|
||||||
M->type = N_ABS;
|
M->type = N_ABS;
|
||||||
break;
|
break;
|
||||||
|
@ -528,6 +539,7 @@ emit_symtab()
|
||||||
if (M->name = A->on_foff) {
|
if (M->name = A->on_foff) {
|
||||||
M->name -= offX;
|
M->name -= offX;
|
||||||
}
|
}
|
||||||
|
else M->name = outhead.oh_nchar + 3; /* pointer to nullbyte */
|
||||||
cvlong(&(M->name));
|
cvlong(&(M->name));
|
||||||
cvlong(&(M->value));
|
cvlong(&(M->value));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue