From 16960178ce1714e96fe33cb1ff54ce377cb05dca Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Sun, 25 Nov 2007 19:34:41 +0000 Subject: [PATCH] BugFix: a break from a case label does not leave a loop [r18529] --- lexer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lexer.c b/lexer.c index bfc8875..9fa306d 100644 --- a/lexer.c +++ b/lexer.c @@ -356,7 +356,7 @@ static unsigned long long parse_int_string(const char *s, const char **endptr, i case 'e': v <<= 4; v |= 0xe; break; case 'f': v <<= 4; v |= 0xf; break; default: - break; + goto end; } } break; @@ -375,7 +375,7 @@ static unsigned long long parse_int_string(const char *s, const char **endptr, i case '6': v <<= 3; v |= 6; break; case '7': v <<= 3; v |= 7; break; default: - break; + goto end; } } break; @@ -396,7 +396,7 @@ static unsigned long long parse_int_string(const char *s, const char **endptr, i case '8': v *= 10; v += 8; break; case '9': v *= 10; v += 9; break; default: - break; + goto end; } } break; @@ -404,6 +404,7 @@ static unsigned long long parse_int_string(const char *s, const char **endptr, i assert(0); break; } +end: *endptr = s; return v; } -- 2.20.1