git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Florian Forster <octo@verplant.org>
To: Timo Hirvonen <tihirvon@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Fix git to be (more) ANSI C99 compliant.
Date: Sun, 18 Jun 2006 10:21:04 +0200	[thread overview]
Message-ID: <20060618082103.GA1331@verplant.org> (raw)
In-Reply-To: <20060618110749.e6fb9030.tihirvon@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2014 bytes --]

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.

> > -			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.

> >  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/

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  parent reply	other threads:[~2006-06-18  8:21 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 [this message]
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
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=20060618082103.GA1331@verplant.org \
    --to=octo@verplant.org \
    --cc=git@vger.kernel.org \
    --cc=tihirvon@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).