From: ceriel Date: Fri, 20 Oct 1989 16:16:06 +0000 (+0000) Subject: some more Minix squeezing X-Git-Tag: release-5-5~2187 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=352c5c581bad78778c62dfb34d06b3b419696740;p=ack.git some more Minix squeezing --- diff --git a/lang/cem/cemcom.ansi/arith.c b/lang/cem/cemcom.ansi/arith.c index 86364cd2c..01d05d317 100644 --- a/lang/cem/cemcom.ansi/arith.c +++ b/lang/cem/cemcom.ansi/arith.c @@ -334,9 +334,9 @@ int2float(expp, tp) exp->ex_type = tp; exp->ex_class = Float; - exp->FL_VALUE = 0 /* Salloc(buf, (unsigned)strlen(buf)+1) */ ; + /* exp->FL_VALUE = 0 /* Salloc(buf, (unsigned)strlen(buf)+1) */ ; flt_arith2flt(exp->VL_VALUE, &(exp->FL_ARITH)); - exp->FL_DATLAB = 0; + /* exp->FL_DATLAB = 0; */ } else *expp = arith2arith(tp, INT2FLOAT, *expp); } diff --git a/lang/cem/cemcom.ansi/expr.c b/lang/cem/cemcom.ansi/expr.c index 190458902..185e36e97 100644 --- a/lang/cem/cemcom.ansi/expr.c +++ b/lang/cem/cemcom.ansi/expr.c @@ -209,11 +209,11 @@ string2expr(expp, str, len) ex->ex_type = string_type; /* ex->ex_type = qualifier_type(ex->ex_type, TQ_CONST); */ ex->ex_flags |= EX_READONLY; - ex->ex_lvalue = 0; + /* ex->ex_lvalue = 0; */ ex->ex_class = String; ex->SG_VALUE = str; ex->SG_LEN = len; - ex->SG_DATLAB = 0; + /* ex->SG_DATLAB = 0; */ } int2expr(expr) diff --git a/lang/cem/cemcom.ansi/idf.c b/lang/cem/cemcom.ansi/idf.c index 1c17c2091..edfe1414e 100644 --- a/lang/cem/cemcom.ansi/idf.c +++ b/lang/cem/cemcom.ansi/idf.c @@ -90,7 +90,7 @@ idf_hashed(tg, size, hc) *hook = notch; /* hooked in */ notch->id_text = Salloc(tg, (unsigned) size); #ifndef NOPP - notch->id_resmac = 0; + /* notch->id_resmac = 0; */ #endif NOPP return notch; } @@ -346,7 +346,7 @@ declare_idf(ds, dc, lvl) newdef->df_line = idf->id_line; #ifdef LINT newdef->df_set = (type->tp_fund == ARRAY); - newdef->df_firstbrace = 0; + /* newdef->df_firstbrace = 0; */ #endif LINT /* link it into the name list in the proper place */ diff --git a/lang/cem/cemcom.ansi/proto.c b/lang/cem/cemcom.ansi/proto.c index 6768e52ca..53b096e84 100644 --- a/lang/cem/cemcom.ansi/proto.c +++ b/lang/cem/cemcom.ansi/proto.c @@ -119,7 +119,7 @@ add_proto(pl, ds, dc, level) newdef->df_line = idf->id_line; #ifdef LINT newdef->df_set = (type->tp_fund == ARRAY); - newdef->df_firstbrace = 0; + /* newdef->df_firstbrace = 0; */ #endif /* We can't put the idf onto the stack, since these kinds of declaration may occurs at any level, and the idf diff --git a/lang/cem/cemcom.ansi/struct.c b/lang/cem/cemcom.ansi/struct.c index 63a1b05b3..ac3e14e88 100644 --- a/lang/cem/cemcom.ansi/struct.c +++ b/lang/cem/cemcom.ansi/struct.c @@ -103,7 +103,7 @@ add_sel(stp, tp, idf, sdefpp, szp, fd) /* this is horrible */ check_selector(idf, stp); newsdef = new_sdef(); - newsdef->sd_sdef = (struct sdef *) 0; + /* newsdef->sd_sdef = (struct sdef *) 0; */ /* link into selector descriptor list of this id */ diff --git a/lang/cem/cemcom.ansi/switch.c b/lang/cem/cemcom.ansi/switch.c index ce1230e1a..94271078c 100644 --- a/lang/cem/cemcom.ansi/switch.c +++ b/lang/cem/cemcom.ansi/switch.c @@ -42,7 +42,6 @@ static struct switch_hdr *switch_stack = 0; - the expression E in "switch(E)" shall have integral type (3.6.4.2) - the expression E in "case E:" is converted to the promoted type of the controlling expression - - the values in the CSA/CSB tables are words (EM 7.4) (??? JvE) For simplicity, we suppose int_size == word_size. */ @@ -59,18 +58,6 @@ code_startswitch(expp) /* INT, LONG, FLOAT, DOUBLE or LNGDBL */ switch (fund) { - case LONG: - /* switches on longs should work. Unfortunately, no backend - * has simplemented switches with sizes other than the - * word_size. Furthermore, building the rom should then be - * done using C_rom_icon(). - * Just cast the expression to int and give a warning when - * this means truncation. - */ - if (long_size > int_size) - warning("can't switch on longs (cast to int)"); - int2int(expp, int_type); /* for now ??? */ - break; case FLOAT: case DOUBLE: case LNGDBL: @@ -80,23 +67,25 @@ code_startswitch(expp) } stack_stmt(l_break, NO_LABEL); sh->sh_break = l_break; - sh->sh_default = 0; + /* sh->sh_default = 0; */ sh->sh_table = l_table; - sh->sh_nrofentries = 0; + /* sh->sh_nrofentries = 0; */ sh->sh_type = (*expp)->ex_type; /* the expression switched */ - sh->sh_lowerbd = sh->sh_upperbd = (arith)0; /* immaterial ??? */ - sh->sh_entries = (struct case_entry *) 0; /* case-entry list */ + /* sh->sh_entries = (struct case_entry *) 0; /* case-entry list */ sh->sh_expr = *expp; sh->next = switch_stack; /* push onto switch-stack */ switch_stack = sh; C_bra(l_table); /* goto start of switch_table */ } +extern char *long2str(); + code_endswitch() { register struct switch_hdr *sh = switch_stack; register label tablabel; register struct case_entry *ce; + arith size = sh->sh_type->tp_size; if (sh->sh_default == 0) /* no default occurred yet */ sh->sh_default = sh->sh_break; @@ -111,8 +100,9 @@ code_endswitch() /* CSA */ register arith val; - C_rom_cst(sh->sh_lowerbd); - C_rom_cst(sh->sh_upperbd - sh->sh_lowerbd); + C_rom_icon(long2str((long)sh->sh_lowerbd,10), size); + C_rom_icon(long2str((long)(sh->sh_upperbd - sh->sh_lowerbd),10), + size); ce = sh->sh_entries; if (sh->sh_nrofentries) for (val = sh->sh_lowerbd; val <= sh->sh_upperbd; val++) { @@ -125,17 +115,17 @@ code_endswitch() C_rom_ilb(sh->sh_default); } C_lae_dlb(tablabel, (arith)0); /* perform the switch */ - C_csa(sh->sh_type->tp_size); + C_csa(size); } else { /* CSB */ - C_rom_cst((arith)sh->sh_nrofentries); + C_rom_icon(long2str((long)sh->sh_nrofentries,10),size); for (ce = sh->sh_entries; ce; ce = ce->next) { /* generate the entries: value + prog.label */ - C_rom_cst(ce->ce_value); + C_rom_icon(long2str((long)ce->ce_value,10),size); C_rom_ilb(ce->ce_label); } C_lae_dlb(tablabel, (arith)0); /* perform the switch */ - C_csb(sh->sh_type->tp_size); + C_csb(size); } C_df_ilb(sh->sh_break); switch_stack = sh->next; /* unstack the switch descriptor */ @@ -168,7 +158,7 @@ code_case(expr) C_df_ilb(ce->ce_label = text_label()); ce->ce_value = val = expr->VL_VALUE; if (sh->sh_entries == 0) { /* first case entry */ - ce->next = (struct case_entry *) 0; + /* ce->next = (struct case_entry *) 0; */ sh->sh_entries = ce; sh->sh_lowerbd = sh->sh_upperbd = val; sh->sh_nrofentries = 1;