From: Jeff King Date: Wed, 12 Mar 2014 20:22:51 GMT Subject: Re: [PATCH v2 1/2] fsck.c: Change the type of fsck_ident()'s first argument Message-ID: <20140312202251.GA3642@sigill.intra.peff.net> In-Reply-To: <1394650290-3750-2-git-send-email-yshuiv7@gmail.com> On Thu, Mar 13, 2014 at 02:51:29AM +0800, Yuxuan Shui wrote: > Since fsck_ident doesn't change the content of **ident, the type of > ident could be const char **. Unfortunately, const double-pointers in C are a bit tricky, and a pointer to "char *" cannot automatically be passed as a pointer to "const char *". I think you want this on top: diff --git a/fsck.c b/fsck.c index 1789c34..7776660 100644 --- a/fsck.c +++ b/fsck.c @@ -281,7 +281,7 @@ static int fsck_ident(const char **ident, struct object *obj, fsck_error error_f static int fsck_commit(struct commit *commit, fsck_error error_func) { - char *buffer = commit->buffer; + const char *buffer = commit->buffer; unsigned char tree_sha1[20], sha1[20]; struct commit_graft *graft; int parents = 0; Otherwise, gcc will complain about incompatible pointer types. -Peff