A fix: make error_type usable as function type; prevents core dump on some inputs
This commit is contained in:
parent
b4aef1eb5e
commit
4d1b0d3486
|
@ -263,11 +263,9 @@ begin_proc(ds, idf) /* to be called when entering a procedure */
|
||||||
func_name = name;
|
func_name = name;
|
||||||
if (def->df_type->tp_fund != FUNCTION) {
|
if (def->df_type->tp_fund != FUNCTION) {
|
||||||
error("making function body for non-function");
|
error("making function body for non-function");
|
||||||
func_type = error_type;
|
def->df_type = error_type;
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
func_type = def->df_type->tp_up;
|
func_type = def->df_type->tp_up;
|
||||||
}
|
|
||||||
#ifdef LINT
|
#ifdef LINT
|
||||||
func_notypegiven = ds->ds_notypegiven;
|
func_notypegiven = ds->ds_notypegiven;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -348,6 +348,7 @@ init()
|
||||||
lngdbl_type = standard_type(LNGDBL, 0, lngdbl_align, lngdbl_size);
|
lngdbl_type = standard_type(LNGDBL, 0, lngdbl_align, lngdbl_size);
|
||||||
void_type = standard_type(VOID, 0, 1, (arith)-1);
|
void_type = standard_type(VOID, 0, 1, (arith)-1);
|
||||||
error_type = standard_type(ERRONEOUS, 0, 1, (arith)1);
|
error_type = standard_type(ERRONEOUS, 0, 1, (arith)1);
|
||||||
|
error_type->tp_up = error_type;
|
||||||
|
|
||||||
/* Pointer Arithmetic type: all arithmetics concerning
|
/* Pointer Arithmetic type: all arithmetics concerning
|
||||||
pointers is supposed to be performed in the
|
pointers is supposed to be performed in the
|
||||||
|
|
Loading…
Reference in a new issue