diff options
-rw-r--r-- | soltools/cpp/_eval.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/soltools/cpp/_eval.c b/soltools/cpp/_eval.c index e8b679ea93e1..dba04abf4649 100644 --- a/soltools/cpp/_eval.c +++ b/soltools/cpp/_eval.c @@ -726,9 +726,11 @@ struct value if (*p == 'x') { p += 1; - i = digit(*p); - while (i >= 0 && i <= 15) + while (1) { + i = digit(*p); + if (i < 0 || i > 16) + break; p += 1; n <<= 4; n += i; |