From: Junio C Hamano Date: Sat, 23 Jun 2007 06:19:55 GMT Subject: Re: [PATCH]: tree-walk.h: Warning fix Message-ID: <7v1wg39oqc.fsf@assigned-by-dhcp.pobox.com> In-Reply-To: <20070619231127.7ffe273b@gnut> "Luiz Fernando N. Capitulino" writes: > diff --git a/tree-walk.h b/tree-walk.h > index ee747ab..625198f 100644 > --- a/tree-walk.h > +++ b/tree-walk.h > @@ -22,7 +22,7 @@ static inline const unsigned char *tree_entry_extract(struct tree_desc *desc, co > > static inline int tree_entry_len(const char *name, const unsigned char *sha1) > { > - return (char *)sha1 - (char *)name - 1; > + return (const char *)sha1 - (const char *)name - 1; > } > > void update_tree_entry(struct tree_desc *); Grumble. Incoming "name" is already (const char*), isn't it? I'd cast only the sha1 side and apply. However, I think -Wcast-qual is a pretty useless option. The nastiest one, if you care, is exec_cmd.c::execv_git_cmd() where we never muck with "const char **argv" ourselves, but we have to call execve(), which takes (char**) as its second parameter. We cast away constness for that call; otherwise you would then get prototype mismatch.