From bbec03bb7af3fb0277a267e4ec5d38b58aa5cb46 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Fri, 13 Jul 2012 14:35:18 +0900 Subject: add missing (empty) default for swtch; close #364 --- src/class.c | 3 +++ src/codegen.c | 4 ++++ src/parse.y | 7 ++++++- src/range.c | 4 ++++ src/symbol.c | 4 +++- tools/mrbc/mrbc.c | 2 ++ tools/mruby/mruby.c | 2 ++ 7 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/class.c b/src/class.c index 9003c3bc5..783627a7d 100644 --- a/src/class.c +++ b/src/class.c @@ -620,6 +620,9 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) } } break; + default: + mrb_raise(mrb, E_ARGUMENT_ERROR, "invalide argument specifier %c", c); + break; } } if (!c && argc > i) { diff --git a/src/codegen.c b/src/codegen.c index 00c6b566d..3ef52a0d4 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -207,6 +207,8 @@ genop_peep(codegen_scope *s, mrb_code i, int val) return; } break; + default: + break; } break; case OP_SETIV: @@ -240,6 +242,8 @@ genop_peep(codegen_scope *s, mrb_code i, int val) return; } break; + default: + break; } } genop(s, i); diff --git a/src/parse.y b/src/parse.y index 292e60cfa..13643f68e 100644 --- a/src/parse.y +++ b/src/parse.y @@ -3041,6 +3041,8 @@ backref_error(parser_state *p, node *n) case NODE_BACK_REF: yyerror_i(p, "can't set variable $%c", (int)(intptr_t)n->cdr); break; + default: + break; } } @@ -3722,7 +3724,7 @@ parser_yylex(parser_state *p) } if (isspace(c)) { if (!IS_ARG()) { - int c2 = 0; + int c2; switch (c) { case ' ': c2 = 's'; @@ -3742,6 +3744,9 @@ parser_yylex(parser_state *p) case '\f': c2 = 'f'; break; + default: + c2 = 0; + break; } if (c2) { char buf[256]; diff --git a/src/range.c b/src/range.c index b4d743e5f..703ad12aa 100644 --- a/src/range.c +++ b/src/range.c @@ -31,7 +31,11 @@ range_check(mrb_state *mrb, mrb_value a, mrb_value b) case MRB_TT_FIXNUM: case MRB_TT_FLOAT: return; + default: + break; } + default: + break; } mrb_p(mrb, a); diff --git a/src/symbol.c b/src/symbol.c index 91076e293..baab0fb3c 100644 --- a/src/symbol.c +++ b/src/symbol.c @@ -276,6 +276,7 @@ symname_p(const char *name) case '>': switch (*++m) { case '>': case '=': ++m; break; + default: break; } break; @@ -319,7 +320,8 @@ id: while (is_identchar(*m)) m += 1; if (localid) { switch (*m) { - case '!': case '?': case '=': ++m; + case '!': case '?': case '=': ++m; + default: break; } } break; diff --git a/tools/mrbc/mrbc.c b/tools/mrbc/mrbc.c index 55e2fcf32..8da37832a 100644 --- a/tools/mrbc/mrbc.c +++ b/tools/mrbc/mrbc.c @@ -114,6 +114,8 @@ parse_args(mrb_state *mrb, int argc, char **argv, struct _args *args) } else return -3; return 0; + default: + break; } } else if (args->rfp == NULL) { diff --git a/tools/mruby/mruby.c b/tools/mruby/mruby.c index 3628e79c9..12cdc86e9 100644 --- a/tools/mruby/mruby.c +++ b/tools/mruby/mruby.c @@ -110,6 +110,8 @@ append_cmdline: } else return -3; return 0; + default: + break; } } -- cgit v1.2.3