Changeset: 34e7480c7085 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=34e7480c7085 Modified Files: clients/odbc/samples/arraytest.c clients/odbc/samples/odbcsample1.c clients/odbc/samples/testgetinfo.c gdk/gdk_search.c monetdb5/mal/mal_function.c monetdb5/mal/mal_parser.c monetdb5/modules/atoms/inet.c sql/backends/monet5/UDF/pyapi/unicode.c sql/backends/monet5/rel_bin.c sql/backends/monet5/sql_statistics.c sql/server/rel_exp.c sql/server/rel_optimizer.c sql/server/rel_planner.c sql/server/rel_rel.c sql/server/rel_select.c tools/merovingian/client/monetdb.c tools/merovingian/utils/glob.c Branch: Dec2016 Log Message:
Ported to GCC 7.1.1 which uses -Wimplicit-fallthough=3 when using -Wextra. There must be a quite particular comment or __attribute__ as the last thing before the next case/default label when the code falls through. diffs (truncated from 325 to 300 lines): diff --git a/clients/odbc/samples/arraytest.c b/clients/odbc/samples/arraytest.c --- a/clients/odbc/samples/arraytest.c +++ b/clients/odbc/samples/arraytest.c @@ -36,6 +36,7 @@ prerr(SQLSMALLINT tpe, SQLHANDLE hnd, co case SQL_SUCCESS_WITH_INFO: if (msglen >= (signed int) sizeof msg) fprintf(stderr, "(message truncated)\n"); + /* fall through */ case SQL_SUCCESS: fprintf(stderr, "%s: %s: SQLstate %s, Errnr %d, Message %s\n", diff --git a/clients/odbc/samples/odbcsample1.c b/clients/odbc/samples/odbcsample1.c --- a/clients/odbc/samples/odbcsample1.c +++ b/clients/odbc/samples/odbcsample1.c @@ -34,6 +34,7 @@ prerr(SQLSMALLINT tpe, SQLHANDLE hnd, co case SQL_SUCCESS_WITH_INFO: if (msglen >= (signed int) sizeof(msg)) fprintf(stderr, "(message truncated)\n"); + /* fall through */ case SQL_SUCCESS: fprintf(stderr, "%s: %s: SQLstate %s, Errnr %d, Message %s\n", func, pref, (char*)state, (int)errnr, (char*)msg); break; diff --git a/clients/odbc/samples/testgetinfo.c b/clients/odbc/samples/testgetinfo.c --- a/clients/odbc/samples/testgetinfo.c +++ b/clients/odbc/samples/testgetinfo.c @@ -31,6 +31,7 @@ prerr(SQLSMALLINT tpe, SQLHANDLE hnd, co case SQL_SUCCESS_WITH_INFO: if (msglen >= (signed int) sizeof(msg)) fprintf(stderr, "(message truncated)\n"); + /* fall through */ case SQL_SUCCESS: fprintf(stderr, "%s: %s: SQLstate %s, Errnr %d, Message %s\n", func, pref, (char*)state, (int)errnr, (char*)msg); break; diff --git a/gdk/gdk_search.c b/gdk/gdk_search.c --- a/gdk/gdk_search.c +++ b/gdk/gdk_search.c @@ -113,6 +113,7 @@ SORTfndwhich(BAT *b, const void *v, enum case FIND_FIRST: if (*(const oid *) v == oid_nil) return lo; + /* fall through */ case FIND_LAST: return hi; default: diff --git a/monetdb5/mal/mal_function.c b/monetdb5/mal/mal_function.c --- a/monetdb5/mal/mal_function.c +++ b/monetdb5/mal/mal_function.c @@ -179,6 +179,7 @@ void chkFlow(stream *out, MalBlkPtr mb) } yieldseen= TRUE; } + /* fall through */ case RETURNsymbol: { InstrPtr ps = getInstrPtr(mb, 0); diff --git a/monetdb5/mal/mal_parser.c b/monetdb5/mal/mal_parser.c --- a/monetdb5/mal/mal_parser.c +++ b/monetdb5/mal/mal_parser.c @@ -376,6 +376,7 @@ cstToken(Client cntxt, ValPtr cst) case '-': i++; s++; + /* fall through */ case '0': if ((s[1] == 'x' || s[1] == 'X')) { /* deal with hex */ @@ -383,6 +384,7 @@ cstToken(Client cntxt, ValPtr cst) i += 2; s += 2; } + /* fall through */ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (hex) @@ -401,6 +403,7 @@ cstToken(Client cntxt, ValPtr cst) if (hex) goto handleInts; + /* fall through */ case '.': if (*s == '.' && isdigit(*(s + 1))) { i++; @@ -1919,6 +1922,7 @@ parseMAL(Client cntxt, Symbol curPrg, in cntrl = YIELDsymbol; goto allLeft; } + /* fall through */ default: allLeft : parseAssign(cntxt, cntrl); cntrl = 0; diff --git a/monetdb5/modules/atoms/inet.c b/monetdb5/modules/atoms/inet.c --- a/monetdb5/modules/atoms/inet.c +++ b/monetdb5/modules/atoms/inet.c @@ -170,8 +170,10 @@ INETfromString(const char *src, int *len switch (type) { case 1: (*retval)->q2 = (unsigned char) 0; + /* fall through */ case 2: (*retval)->q3 = (unsigned char) 0; + /* fall through */ case 3: (*retval)->q4 = (unsigned char) 0; break; diff --git a/sql/backends/monet5/UDF/pyapi/unicode.c b/sql/backends/monet5/UDF/pyapi/unicode.c --- a/sql/backends/monet5/UDF/pyapi/unicode.c +++ b/sql/backends/monet5/UDF/pyapi/unicode.c @@ -154,9 +154,11 @@ int utf8_char_to_utf32_char(size_t posit case 4: bytes[3] = utf8_char[offset + 3]; if (bytes[3] > 0xc0) return -1; //invalid utf8 character, the maximum value of the second, third and fourth bytes is 0xbf + /* fall through */ case 3: bytes[2] = utf8_char[offset + 2]; if (bytes[2] > 0xc0) return -1; + /* fall through */ case 2: bytes[1] = utf8_char[offset + 1]; if (bytes[1] > 0xc0) return -1; diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -1367,6 +1367,7 @@ rel2bin_args( mvc *sql, sql_rel *rel, li case op_groupby: if (rel->r) args = exps2bin_args(sql, rel->r, args); + /* fall through */ case op_project: case op_select: case op_topn: diff --git a/sql/backends/monet5/sql_statistics.c b/sql/backends/monet5/sql_statistics.c --- a/sql/backends/monet5/sql_statistics.c +++ b/sql/backends/monet5/sql_statistics.c @@ -86,8 +86,10 @@ sql_analyze(Client cntxt, MalBlkPtr mb, switch (argc) { case 6: col = *getArgReference_str(stk, pci, 5); + /* fall through */ case 5: tbl = *getArgReference_str(stk, pci, 4); + /* fall through */ case 4: sch = *getArgReference_str(stk, pci, 3); } diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c --- a/sql/server/rel_exp.c +++ b/sql/server/rel_exp.c @@ -1206,6 +1206,7 @@ rel_find_exp_( sql_rel *rel, sql_exp *e) } return ne; } + /* fall through */ case e_cmp: case e_psm: return NULL; diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -1418,6 +1418,7 @@ can_push_func(sql_exp *e, sql_rel *rel, if (rel && !rel_find_exp(rel, e)) return 0; (*must) = 1; + /* fall through */ case e_atom: default: return 1; @@ -2490,6 +2491,7 @@ exp_find_math_unsafe( sql_exp *e) return 1; } } + /* fall through */ case e_convert: return exp_find_math_unsafe(e->l); case e_column: @@ -5144,6 +5146,7 @@ split_aggr_and_project(mvc *sql, list *a return e; case e_func: list_split_aggr_and_project(sql, aexps, e->l); + return e; case e_column: /* constants and columns shouldn't be rewriten */ case e_atom: case e_psm: @@ -5770,6 +5773,7 @@ rel_mark_used(mvc *sql, sql_rel *rel, in rel_mark_used(sql, rel, proj); break; } + /* fall through */ case op_project: case op_groupby: if (proj && rel->l) { @@ -6069,6 +6073,7 @@ rel_dce_down(mvc *sql, sql_rel *rel, lis rel->l = rel_dce_down(sql, rel->l, refs, 0); if (!skip_proj) rel_dce_sub(sql, rel, refs); + /* fall through */ case op_insert: case op_ddl: @@ -6247,6 +6252,7 @@ index_exp(sql_exp *e, sql_idx *i) case oph_idx: if (e->flag == cmp_equal) return 0; + /* fall through */ case join_idx: default: return -1; @@ -8156,6 +8162,7 @@ rel_find_conflicts(mvc *sql, sql_rel *re case op_basetable: case op_table: exps_mark_conflicts(sql, rel->exps, conflicts, 1); + return rel; case op_topn: case op_sample: return rel; diff --git a/sql/server/rel_planner.c b/sql/server/rel_planner.c --- a/sql/server/rel_planner.c +++ b/sql/server/rel_planner.c @@ -197,6 +197,7 @@ exp_getdcount( mvc *sql, sql_rel *r , sq case e_convert: if (e->l) return exp_getdcount(sql, r, e->l, count); + /* fall through */ case e_func: case e_aggr: case e_atom: @@ -224,6 +225,7 @@ exp_getranges( mvc *sql, sql_rel *r , sq case e_convert: if (e->l) return exp_getranges(sql, r, e->l, min, max); + /* fall through */ case e_func: case e_aggr: case e_atom: @@ -434,6 +436,7 @@ rel_getsel(mvc *sql, sql_rel *rel, lng c case op_project: if (rel->l) return rel_getsel(sql, rel->l, count); + /* fall through */ default: return 1.0; } diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c --- a/sql/server/rel_rel.c +++ b/sql/server/rel_rel.c @@ -223,6 +223,7 @@ rel_bind_column_(mvc *sql, sql_rel **p, *p = rel; if (rel->l) return rel_bind_column_(sql, p, rel->l, cname); + /* fall through */ default: return NULL; } @@ -865,6 +866,7 @@ rel_bind_path_(sql_rel *rel, sql_exp *e, assert(0); break; } + /* fall through */ case op_groupby: case op_project: case op_table: diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -99,6 +99,7 @@ rel_table_projections( mvc *sql, sql_rel if (exps && list_length(exps)) return exps; } + /* fall through */ default: return NULL; } diff --git a/tools/merovingian/client/monetdb.c b/tools/merovingian/client/monetdb.c --- a/tools/merovingian/client/monetdb.c +++ b/tools/merovingian/client/monetdb.c @@ -707,6 +707,7 @@ command_status(int argc, char *argv[]) i = argc; break; } + /* fall through */ default: fprintf(stderr, "status: unknown option: -%c\n", *p); command_help(2, &argv[-1]); @@ -1011,6 +1012,7 @@ command_startstop(int argc, char *argv[] i = argc; break; } + /* fall through */ default: fprintf(stderr, "%s: unknown option: -%c\n", type, *p); command_help(2, &argv[-1]); @@ -1115,6 +1117,7 @@ command_set(int argc, char *argv[], mero i = argc; break; } + /* fall through */ default: fprintf(stderr, "%s: unknown option: -%c\n", argv[0], *p); @@ -1249,6 +1252,7 @@ command_get(int argc, char *argv[]) i = argc; _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list