From 322c1c1b4cebe2e256e7c6b49d940add296bd70e Mon Sep 17 00:00:00 2001 From: ceriel Date: Tue, 19 Nov 1996 09:12:36 +0000 Subject: [PATCH] Some fixes --- lang/m2/comp/LLlex.c | 10 +++++++++- lang/m2/comp/code.c | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lang/m2/comp/LLlex.c b/lang/m2/comp/LLlex.c index 14506180d..03b878f71 100644 --- a/lang/m2/comp/LLlex.c +++ b/lang/m2/comp/LLlex.c @@ -528,7 +528,15 @@ lexwarning(W_ORDINARY, "character constant out of range"); CheckForLet(); return tk->tk_symb = INTEGER; } - if (ch == 'D' && base == 10) { + if (options['l']) { + if (base != 10) { + LoadChar(ch); + if (ch != 'D') { + PushBack(); + } + } + } + if (ch == 'D' && (options['l'] || base == 10)) { if (options['l']) { /* Local extension: LONGCARD exists, so internally also longintorcard_type diff --git a/lang/m2/comp/code.c b/lang/m2/comp/code.c index 4916f127e..e0d05c584 100644 --- a/lang/m2/comp/code.c +++ b/lang/m2/comp/code.c @@ -60,7 +60,7 @@ CodeString(nd) { if (nd->nd_type->tp_fund != T_STRING) { /* Character constant */ - C_loc(nd->nd_INT); + CodeConst(nd->nd_INT, nd->nd_type->tp_size); return; } C_df_dlb(++data_label);