git/list[1] front-page[2] threads[3] people[4] search[5] about
 

RE: [PATCH 8/10] Fix some minor warnings to allow -Werror.

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Aug 2, 2006, 18:47 UTC
Message-ID
<001c01c6b664$27536740$c47eedc1@ramsay1.demon.co.uk>
In-Reply-To
<7vvepbvauo.fsf@assigned-by-dhcp.cox.net>
On Wed, 2006-08-02 at 8:46, Junio C Hamano wrote:
Show 33 quoted lines
> 
> "Ramsay Jones" <ramsay@ramsay1.demon.co.uk> writes:
> 
> > diff --git a/builtin-mailinfo.c b/builtin-mailinfo.c
> > index 3e40747..bb5e7b7 100644
> > --- a/builtin-mailinfo.c
> > +++ b/builtin-mailinfo.c
> > @@ -531,7 +531,8 @@ static int decode_b_segment(char *in, ch
> >  static void convert_to_utf8(char *line, char *charset)
> >  {
> >  #ifndef NO_ICONV
> > -	char *in, *out;
> > +	const char *in;
> > +	char *out;
> >  	size_t insize, outsize, nrc;
> >  	char outbuf[4096]; /* cheat */
> >  	static char latin_one[] = "latin1";
> 
> This kills the compilation with:
> 
> gcc -o builtin-mailinfo.o -c -O2 -Werror -ansi -pedantic -std=c99 
> -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wall 
> -Wdeclaration-after-statement -g -DSHA1_HEADER='<openssl/sha.h>' 
> -DNO_STRLCPY builtin-mailinfo.c
> cc1: warnings being treated as errors
> builtin-mailinfo.c: In function 'convert_to_utf8':
> builtin-mailinfo.c:561: warning: passing argument 2 of 'iconv' 
> from incompatible pointer type
> 
> where the line 561 reads:
> 
> 	nrc = iconv(conv, &in, &insize, &out, &outsize);
> 

OK, so I get exactly the same if I don't make the indicated change! The second param of iconv() must have changed from const char* to char* at some point in the last six years. Just ignore this.

Show 18 quoted lines
> > diff --git a/diff.c b/diff.c
> > index 5a71489..81630c0 100644
> > --- a/diff.c
> > +++ b/diff.c
> > @@ -614,6 +614,7 @@ static void emit_binary_diff(mmfile_t *o
> >  	 * whichever is smaller.
> >  	 */
> >  	delta = NULL;
> > +	orig_size = 0;
> >  	deflated = deflate_it(two->ptr, two->size, &deflate_size);
> >  	if (one->size && two->size) {
> >  		delta = diff_delta(one->ptr, one->size,
> 
> This is not wrong per se, but is working around a stupid compiler that
> do not understand the dataflow.  orig_size is only used when
> delta is non NULL, and when delta is non NULL, the variable is
> always set.  Not very happy but is acceptable.
> 

Yes, you are absolutely correct. I agree it would be nice if gcc was "fixed" so that it could detect this situation, but I'm not going to hold my breath. It just seemed to be the lesser evil.

Ramsay
Previous: Rocco Rutte
Message 4 of 4 in “Fix some minor warnings to allow -Werror.”
  1. 8/10 Fix some minor warnings to allow -Werror.Ramsay Jones, Aug 2, 2006
  2. Junio C HamanoAug 2, 2006
  3. Rocco RutteAug 2, 2006
  4. Ramsay JonesAug 2, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.