From b4bda72e7f36b39ccd1adbaf94c813d461764594 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 14506180..03b878f7 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 4916f127..e0d05c58 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);