From 2eba779af5ee2dd90ac383abe8e548d893ea4ffc Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 16 May 2019 16:50:24 -0400 Subject: [PATCH] stage1 tokenizer: add more missing break statements --- src/tokenizer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index c858775378..958c4f7ef7 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -1107,6 +1107,7 @@ void tokenize(Buf *buf, Tokenization *out) { if (t.unicode) { if (t.char_code > 0x10ffff) { tokenize_error(&t, "unicode value out of range: %x", t.char_code); + break; } if (t.cur_tok->id == TokenIdCharLiteral) { t.cur_tok->data.char_lit.c = t.char_code; @@ -1147,6 +1148,7 @@ void tokenize(Buf *buf, Tokenization *out) { switch (c) { case '\'': tokenize_error(&t, "expected character"); + break; case '\\': t.state = TokenizeStateStringEscape; break; @@ -1390,8 +1392,10 @@ void tokenize(Buf *buf, Tokenization *out) { case TokenizeStateCharCode: if (t.cur_tok->id == TokenIdStringLiteral) { tokenize_error(&t, "unterminated string"); + break; } else if (t.cur_tok->id == TokenIdCharLiteral) { tokenize_error(&t, "unterminated character literal"); + break; } else { zig_unreachable(); }