diff options
| author | Michael Dusan <michael.dusan@gmail.com> | 2020-04-01 12:47:50 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-04-01 15:56:00 -0400 |
| commit | 212e2354b8ab631995b0c25f7cf1d9a3e01fac57 (patch) | |
| tree | b5d42acd5308378b995bc97b191c8a4efd240a43 /src/tokenizer.cpp | |
| parent | 0f1f56bb69610ea424ac311db72510b474249095 (diff) | |
| download | zig-212e2354b8ab631995b0c25f7cf1d9a3e01fac57.tar.gz zig-212e2354b8ab631995b0c25f7cf1d9a3e01fac57.zip | |
stage1: make C++ switch fallthrough an error
Make fallthrough an error when compiler supports it. This requires a new
macro that is defined with such compilers to be used as a statement, at
all fallthrough sites:
switch (...) {
case 0:
...
ZIG_FALLTHROUGH;
case 1:
...
break;
default:
...
break;
}
If we ever move to C++17 as minimal requirement, then the macro can be
replaced with `[[fallthrough]];` at statement sites.
Diffstat (limited to 'src/tokenizer.cpp')
| -rw-r--r-- | src/tokenizer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp index b4e9d910d9..11432ecac1 100644 --- a/src/tokenizer.cpp +++ b/src/tokenizer.cpp @@ -840,6 +840,7 @@ void tokenize(Buf *buf, Tokenization *out) { t.state = TokenizeStateStart; continue; } + break; case TokenizeStateSawSlash: switch (c) { case '/': @@ -1209,7 +1210,7 @@ void tokenize(Buf *buf, Tokenization *out) { t.is_trailing_underscore = false; t.state = TokenizeStateNumber; } - // fall through + ZIG_FALLTHROUGH; case TokenizeStateNumber: { if (c == '_') { @@ -1291,7 +1292,7 @@ void tokenize(Buf *buf, Tokenization *out) { t.is_trailing_underscore = false; t.state = TokenizeStateFloatFraction; } - // fall through + ZIG_FALLTHROUGH; case TokenizeStateFloatFraction: { if (c == '_') { @@ -1350,7 +1351,7 @@ void tokenize(Buf *buf, Tokenization *out) { t.is_trailing_underscore = false; t.state = TokenizeStateFloatExponentNumber; } - // fall through + ZIG_FALLTHROUGH; case TokenizeStateFloatExponentNumber: { if (c == '_') { |
