All of lore.kernel.org
 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 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.