A fix: make error_type usable as function type; prevents core dump on some inputs
authorceriel <none@none>
Fri, 14 May 1993 12:01:14 +0000 (12:01 +0000)
committerceriel <none@none>
Fri, 14 May 1993 12:01:14 +0000 (12:01 +0000)
lang/cem/cemcom.ansi/code.c
lang/cem/cemcom.ansi/main.c

index 65790a3..6a55fba 100644 (file)
@@ -263,11 +263,9 @@ begin_proc(ds, idf)                /* to be called when entering a procedure */
        func_name = name;
        if (def->df_type->tp_fund != FUNCTION) {
                error("making function body for non-function");
-               func_type = error_type;
-       }
-       else {
-               func_type = def->df_type->tp_up;
+               def->df_type = error_type;
        }
+       func_type = def->df_type->tp_up;
 #ifdef LINT
        func_notypegiven = ds->ds_notypegiven;
 #endif
index 09e19db..f279b07 100644 (file)
@@ -348,6 +348,7 @@ init()
        lngdbl_type = standard_type(LNGDBL, 0, lngdbl_align, lngdbl_size);
        void_type = standard_type(VOID, 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
                pointers is supposed to be performed in the