From: eck Date: Thu, 1 Feb 1990 13:09:40 +0000 (+0000) Subject: fixed bug with character constants X-Git-Tag: release-5-5~1843 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=197379a33aed023d4e44b4db5fff7ded657e3479;p=ack.git fixed bug with character constants --- diff --git a/lang/cem/cpp.ansi/LLlex.c b/lang/cem/cpp.ansi/LLlex.c index 85ea38215..6c0b124f9 100644 --- a/lang/cem/cpp.ansi/LLlex.c +++ b/lang/cem/cpp.ansi/LLlex.c @@ -351,15 +351,15 @@ char_constant(nm) if (ch == '\\') ch = quoted(GetChar()); if (ch >= 128) ch -= 256; - if (size < (int)size) - val |= ch << 8 * size; + if (size < sizeof(arith)) + val |= ch << (8 * size); size++; ch = GetChar(); } - if (size > 1) - strict("%s constant includes more than one character", nm); if (size > sizeof(arith)) error("%s constant too long", nm); + else if (size > 1) + strict("%s constant includes more than one character", nm); return val; } @@ -441,8 +441,7 @@ quoted(ch) ch = hex; } } - } - else { /* a quoted octal */ + } else { /* a quoted octal */ register int oct = 0, cnt = 0; do {