Thread (17 messages) flat view 17 messages, 5 authors, 2016-06-15

Re: [PATCH] Fix git to be (more) ANSI C99 compliant.

From: Florian Forster <hidden>
Date: 2016-06-15 22:42:30

Hi,

On Sun, Jun 18, 2006 at 11:07:49AM +0300, Timo Hirvonen wrote:
Many of the void-pointer arithmetic warnings could be fixed by
changing the variable types to char * instead of casting them in many
places.
true. Casting to a void-pointer can be done implicitely (even according
to the standard), so changing a function's argument from `void *' to
`char *' might break code somewhere else.
quoted
-			struct {
-				struct combine_diff_path p;
-				struct combine_diff_parent filler[5];
-			} combine;
Yes this is somewhat ugly but avoids a malloc.
No, malloc is still needed to allocate `combine.p.path'. My change does
allocate all memory in one pass, so the number of calls to malloc
doesn't differ.
Leave the code as it is now unless it causes real problems.
`struct combine_diff_path' has a flexible array member (FAM) and is
therefore an incomplete type. This means you may not instanciate it.

GCC ignores the FAM in this case and allocates `sizeof (struct
combine_diff_path)' bytes. However, this is not correct according to
ANSI and prevents building using other compilers (e.g. Sun cc).

To be honest, I don't get the point of FAMs anyways. Why don't we just
use a pointer to `struct combine_diff_parent' there in the first place?
'A'...'Z' is more readable.  Does some compiler fail to compile it?
It's not in ANSI, therefore GCC with `-ansi' failes, so does the Sun cc.
quoted
 static inline int needs_quote(int ch)
Hmm.. same function in http-fetch.c.  Lots of common code could be
moved to http.h.
Right, I wanted to keep the changes as minimal as possible, though.

As you can probably tell my goal is building a Solaris version of git
using the Sun cc. I'm not quite there yet and don't have time to look
into the remaining issue(s) today nor tomorrow, but I might have some
time at the end of the week.

Regards,
-octo
-- 
Florian octo Forster
Hacker in training
GnuPG: 0x91523C3D
http://verplant.org/

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help