From: Junio C Hamano <junkio@cox.net>
To: Florian Forster <octo@verplant.org>
Cc: git@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>,
Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Subject: Re: [PATCH] Fix git to be (more) ANSI C99 compliant.
Date: Mon, 19 Jun 2006 18:59:38 -0700 [thread overview]
Message-ID: <7vac8860z9.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <20060619212116.GL1331@verplant.org> (Florian Forster's message of "Mon, 19 Jun 2006 23:21:16 +0200")
Florian Forster <octo@verplant.org> writes:
> I didn't start writing the patch because I like C99 so much. In fact, in
> my opinion it introduces some possibilities I'd rather not have in C
> because people might actually use them. But by default the Sun cc
> complains about void-pointer arithmetic...
I am reasonably sympathetic to that, and judging from the number
of lines the patch touches, I am not as strongly opposed to it
as Linus seems to be.
> Maybe Rene Scharfe's method (as used in the patch to git-tar-tree) is a
> good way around it? There are no explicit casts involved and standard-
> compliant compilers like it, too. The downside is that you have two
> variables for the same thing/memory.
I think Rene's patch makes sense primarily because the functions
affected are small and we can easily see that the aliased input
variable ("data") is not used -- IOW, there is no confusion.
If it were a big function and the code used one variable for
some purpose and the other one for another purpose, it would be
far worse than having to cast the same variable occasionally.
BTW, I think we would probably want to have this patch on top of
Rene's patch. In all instances, the variable "buf" is of type
"const char *" and the existing casts do not make sense to me.
diff --git a/builtin-tar-tree.c b/builtin-tar-tree.c
index 5c8a5f0..39a61b6 100644
--- a/builtin-tar-tree.c
+++ b/builtin-tar-tree.c
@@ -36,7 +36,7 @@ static void reliable_write(const void *d
die("git-tar-tree: disk full?");
}
size -= ret;
- buf = (char *) buf + ret;
+ buf += ret;
}
}
@@ -65,13 +65,13 @@ static void write_blocked(const void *da
memcpy(block + offset, buf, chunk);
size -= chunk;
offset += chunk;
- buf = (char *) buf + chunk;
+ buf += chunk;
write_if_needed();
}
while (size >= BLOCKSIZE) {
reliable_write(buf, BLOCKSIZE);
size -= BLOCKSIZE;
- buf = (char *) buf + BLOCKSIZE;
+ buf += BLOCKSIZE;
}
if (size) {
memcpy(block + offset, buf, size);
next prev parent reply other threads:[~2006-06-20 1:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-18 5:50 [PATCH] Fix git to be (more) ANSI C99 compliant Florian Forster
2006-06-18 8:07 ` Timo Hirvonen
2006-06-18 8:14 ` Thomas Glanzmann
2006-06-18 8:21 ` Florian Forster
2006-06-18 8:43 ` Timo Hirvonen
2006-06-18 8:26 ` Rene Scharfe
2006-06-18 8:35 ` Florian Forster
2006-06-18 15:18 ` [PATCH 0/7] Improve ANSI C99 compliance Florian Forster
2006-06-18 15:18 ` [PATCH 1/7] Remove ranges from switch statements Florian Forster
2006-06-18 15:18 ` [PATCH 2/7] Initialize FAMs using `FLEX_ARRAY' Florian Forster
2006-06-18 15:18 ` [PATCH 3/7] Don't instantiate structures with FAMs Florian Forster
2006-06-18 15:18 ` [PATCH 4/7] Cast pointers to `void *' when used in a format Florian Forster
2006-06-18 15:18 ` [PATCH 5/7] Don't use empty structure initializers Florian Forster
2006-06-18 15:18 ` [PATCH 6/7] Change types used in bitfields to be `int's Florian Forster
2006-06-18 15:18 ` [PATCH 7/7] Remove all void-pointer arithmetic Florian Forster
2006-06-18 21:07 ` [PATCH 1/7] Remove ranges from switch statements Junio C Hamano
2006-06-18 21:24 ` Timo Hirvonen
2006-06-18 8:29 ` [PATCH] Fix git to be (more) ANSI C99 compliant Junio C Hamano
2006-06-18 16:50 ` Linus Torvalds
2006-06-19 21:21 ` Florian Forster
2006-06-20 1:59 ` Junio C Hamano [this message]
2006-06-20 8:16 ` Rene Scharfe
2006-06-20 8:58 ` Junio C Hamano
2006-06-21 11:15 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vac8860z9.fsf@assigned-by-dhcp.cox.net \
--to=junkio@cox.net \
--cc=git@vger.kernel.org \
--cc=octo@verplant.org \
--cc=rene.scharfe@lsrfire.ath.cx \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.