On Wed, Dec 21, 2011 at 19:27, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > >> diff --git a/read-cache.c b/read-cache.c >> index a51bba1..0a4e895 100644 >> --- a/read-cache.c >> +++ b/read-cache.c >> @@ -758,7 +758,13 @@ int verify_path(const char *path) >> return 0; >> >> goto inside; >> +#ifdef __sun >> +# pragma error_messages (off, E_STATEMENT_NOT_REACHED) >> +#endif >> for (;;) { >> +#ifdef __sun >> +# pragma error_messages (on, E_STATEMENT_NOT_REACHED) >> +#endif >> if (!c) >> return 1; > > Patches 1-3 makes sense, but this one is too ugly to live. > > Wouldn't something like this be equivalent and have the same effect > without sacrificing the readablity? > > diff --git a/read-cache.c b/read-cache.c > index a51bba1..73af797 100644 > --- a/read-cache.c > +++ b/read-cache.c > @@ -757,12 +757,12 @@ int verify_path(const char *path) > if (has_dos_drive_prefix(path)) > return 0; > > - goto inside; > + /* we are at the beginning of a path component */ > + c = '/'; > for (;;) { > if (!c) > return 1; > if (is_dir_sep(c)) { > -inside: > c = *path++; > if ((c == '.' && !verify_dotfile(path)) || > is_dir_sep(c) || c == '\0') That would make that warning go away, but I don't know if that changes the semantics of the code. I was aiming not to change any code, just to squash spurious warnings under Sun Studio. We could also just wrap the whole function definition in the pragma, which would make the code more readable since we wouldn't have 6 lines of warning suppression in the middle of the function. Or we could just drop this patch entirely, or rewrite the code. Your pick. -- 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