diff --git a/lang/cem/cemcom/LLlex.c b/lang/cem/cemcom/LLlex.c index 9a540f13..3ed953f7 100644 --- a/lang/cem/cemcom/LLlex.c +++ b/lang/cem/cemcom/LLlex.c @@ -445,7 +445,7 @@ firstline: buf[0] = '-'; /* good heavens... */ if (np == &buf[NUMSIZE+1]) { lexerror("floating constant too long"); - ptok->tk_fval = Salloc("0.0",(unsigned) 5) + 1; + ptok->tk_fval = Salloc("-0.0",(unsigned) 5) + 1; } else ptok->tk_fval = Salloc(buf,(unsigned) (np - buf)) + 1; diff --git a/lang/m2/comp/LLlex.c b/lang/m2/comp/LLlex.c index 3e0bd954..39b07907 100644 --- a/lang/m2/comp/LLlex.c +++ b/lang/m2/comp/LLlex.c @@ -582,7 +582,7 @@ lexwarning(W_ORDINARY, "overflow in constant"); PushBack(); if (np >= &buf[NUMSIZE]) { - tk->TOK_REL = Salloc("0.0", 5); + tk->TOK_REL = Salloc("-0.0", 5)+1; lexerror("real constant too long"); } else tk->TOK_REL = Salloc(buf, (unsigned) (np - buf)) + 1;