Jonathan Nieder <jrnieder@xxxxxxxxx> writes: > Jeff King wrote: > >> Instead of using the "x = x" hack, let's handle the default >> case in the switch() statement with a die("BUG"). That tells >> the compiler and any readers of the code exactly what the >> function's input assumptions are. > > Sounds reasonable. > >> We could also convert the flag to an enum, which would >> provide a compile-time check on the function input. > > Unfortunately C permits out-of-bounds values for enums. > > [...] >> --- a/wt-status.c >> +++ b/wt-status.c >> @@ -264,7 +264,7 @@ static void wt_status_print_change_data(struct wt_status *s, >> { >> struct wt_status_change_data *d = it->util; >> const char *c = color(change_type, s); >> - int status = status; >> + int status; >> char *one_name; >> char *two_name; >> const char *one, *two; >> @@ -292,6 +292,9 @@ static void wt_status_print_change_data(struct wt_status *s, >> } >> status = d->worktree_status; >> break; >> + default: >> + die("BUG: unhandled change_type %d in wt_status_print_change_data", >> + change_type); > > Micronit: s/unhandled/invalid/. I actually think "unhandled" is more correct for this one; we may add new change_type later in the caller, and we do not want to forget to add a new case arm that handles the new value. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html