aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tokenizer.cpp')
-rw-r--r--src/tokenizer.cpp4
1 files changed, 4 insertions, 0 deletions
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();
}