From eb3dcf275e93e18bf0cb06f94f2da1f2468fd06a Mon Sep 17 00:00:00 2001 From: ceriel Date: Tue, 14 Feb 1989 14:35:38 +0000 Subject: [PATCH] fixed some problems, updated with cemcom --- lang/cem/cemcom.ansi/BigPars | 9 ++++++++- lang/cem/cemcom.ansi/Makefile | 2 +- lang/cem/cemcom.ansi/SmallPars | 9 ++++++++- lang/cem/cemcom.ansi/eval.c | 7 ++++--- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lang/cem/cemcom.ansi/BigPars b/lang/cem/cemcom.ansi/BigPars index 08aaa58b3..1f0a51363 100644 --- a/lang/cem/cemcom.ansi/BigPars +++ b/lang/cem/cemcom.ansi/BigPars @@ -22,6 +22,7 @@ !File: nparams.h #define NPARAMS 32 /* maximum number of parameters of macros */ +#define STDC_NPARAMS 31 /* ANSI limit on number of parameters */ !File: ifdepth.h @@ -33,7 +34,11 @@ !File: lapbuf.h -#define LAPBUF 4096 /* size of macro actual parameter buffer */ +#define LAPBUF 4096 /* size of macro replacement buffer */ + + +!File: argbuf.h +#define ARGBUF 2048 /* size of macro actual parameter buffer */ !File: strsize.h @@ -55,6 +60,7 @@ #ifndef NOFLOAT #define SZ_FLOAT (arith)4 #define SZ_DOUBLE (arith)8 +#define SZ_LNGDBL (arith)8 /* for now */ #endif NOFLOAT #define SZ_POINTER (arith)4 @@ -67,6 +73,7 @@ #ifndef NOFLOAT #define AL_FLOAT SZ_WORD #define AL_DOUBLE SZ_WORD +#define AL_LNGDBL SZ_WORD #endif NOFLOAT #define AL_POINTER SZ_WORD #define AL_STRUCT 1 diff --git a/lang/cem/cemcom.ansi/Makefile b/lang/cem/cemcom.ansi/Makefile index fa9ee5926..f4c92f3eb 100644 --- a/lang/cem/cemcom.ansi/Makefile +++ b/lang/cem/cemcom.ansi/Makefile @@ -3,8 +3,8 @@ # Machine and environ dependent definitions EMHOME = ../../.. -CC = /proj/em/Work/bin/fcc.cc CC = cc +CC = /proj/em/Work/bin/fcc.cc CFLOW = cflow MKDEP = $(EMHOME)/bin/mkdep PRID = $(EMHOME)/bin/prid diff --git a/lang/cem/cemcom.ansi/SmallPars b/lang/cem/cemcom.ansi/SmallPars index fb0bf2a5d..9d012b7bb 100644 --- a/lang/cem/cemcom.ansi/SmallPars +++ b/lang/cem/cemcom.ansi/SmallPars @@ -22,6 +22,7 @@ !File: nparams.h #define NPARAMS 32 /* maximum number of parameters of macros */ +#define STDC_NPARAMS 31 /* ANSI limit on number of parameters */ !File: ifdepth.h @@ -33,7 +34,11 @@ !File: lapbuf.h -#define LAPBUF 4096 /* size of macro actual parameter buffer */ +#define LAPBUF 4096 /* size of macro replacement buffer */ + + +!File: argbuf.h +#define ARGBUF 2048 /* sizeof of macro actual parameter buffer */ !File: strsize.h @@ -55,6 +60,7 @@ #ifndef NOFLOAT #define SZ_FLOAT (arith)4 #define SZ_DOUBLE (arith)8 +#define SZ_LNGDBL (arith)8 /* for now */ #endif NOFLOAT #define SZ_POINTER (arith)4 @@ -67,6 +73,7 @@ #ifndef NOFLOAT #define AL_FLOAT SZ_WORD #define AL_DOUBLE SZ_WORD +#define AL_LNGDBL SZ_WORD #endif NOFLOAT #define AL_POINTER SZ_WORD #define AL_STRUCT 1 diff --git a/lang/cem/cemcom.ansi/eval.c b/lang/cem/cemcom.ansi/eval.c index 0f329de62..3854c5d86 100644 --- a/lang/cem/cemcom.ansi/eval.c +++ b/lang/cem/cemcom.ansi/eval.c @@ -495,10 +495,11 @@ EVAL(expr, val, code, true_label, false_label) while ( ex->ex_class == Oper && ex->OP_OPER == PARCOMMA ) { - EVAL(ex->OP_RIGHT, RVAL, - ex->ex_type->tp_size > 0, + register struct expr *rght = ex->OP_RIGHT; + EVAL(rght, RVAL, + rght->ex_type->tp_size > 0, NO_LABEL, NO_LABEL); - ParSize += ATW(ex->ex_type->tp_size); + ParSize += ATW(rght->ex_type->tp_size); ex = ex->OP_LEFT; } EVAL(ex, RVAL, ex->ex_type->tp_size > 0, -- 2.34.1