From: Jeff King <peff@peff.net>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Sebastian Schuberth <sschuberth@gmail.com>,
git@vger.kernel.org, Karsten Blees <karsten.blees@gmail.com>
Subject: Re: [PATCH] git-compat-util: Avoid strcasecmp() being inlined
Date: Wed, 11 Sep 2013 15:16:20 -0400 [thread overview]
Message-ID: <20130911191620.GB24251@sigill.intra.peff.net> (raw)
In-Reply-To: <20130911182921.GE4326@google.com>
On Wed, Sep 11, 2013 at 11:29:21AM -0700, Jonathan Nieder wrote:
> Sebastian Schuberth wrote:
>
> > This is necessary so that read_mailmap() can obtain a pointer to the
> > function.
>
> Hm, what platform has strcasecmp() as an inline function? Is this
> allowed by POSIX? Even if it isn't, should we perhaps just work
> around it by providing our own thin static function wrapper in
> mailmap.c?
Environments can implement library functions as macros or even
intrinsics, but C99 requires that they still allow you to access a
function pointer. And if my reading of C99 6.7.4 is correct, it should
apply to inlines, too, because you should always be able to take the
address of an inline function (though it is a little subtle).
But that does not mean there are not popular platforms that we do not
have to workaround (and the inline keyword is C99 anyway, so all bets
are off for pre-C99 inline implementations).
I would prefer the static wrapper solution you suggest, though. It
leaves the compiler free to optimize the common case of normal
strcasecmp calls, and only introduces an extra function indirection when
using it as a callback (and even then, if we can inline the strcasecmp,
it still ends up as a single function call). The downside is that it has
to be remembered at each site that uses strcasecmp, but we do not use
pointers to standard library functions very often.
-Peff
next prev parent reply other threads:[~2013-09-11 19:16 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-11 16:06 [PATCH] git-compat-util: Avoid strcasecmp() being inlined Sebastian Schuberth
2013-09-11 18:29 ` Jonathan Nieder
2013-09-11 19:16 ` Jeff King [this message]
2013-09-19 6:04 ` Piotr Krukowiecki
[not found] ` <CAPc5daVt4Q9twub5KyOQqZHx9CwOnkuwA97sXV44fF2j1e5HVg@mail.gmail.com>
2013-09-19 9:47 ` Piotr Krukowiecki
2013-09-19 21:16 ` Jeff King
2013-09-19 22:03 ` Junio C Hamano
2013-09-19 22:05 ` Jeff King
2013-09-19 22:40 ` Junio C Hamano
2013-09-20 3:18 ` Jeff King
2013-09-20 6:21 ` Piotr Krukowiecki
2013-09-24 5:32 ` Jeff King
2013-09-11 19:59 ` Sebastian Schuberth
2013-09-11 21:41 ` Jeff King
2013-09-12 9:36 ` Sebastian Schuberth
2013-09-12 10:14 ` John Keeping
2013-09-12 15:37 ` Junio C Hamano
2013-09-12 18:20 ` Jeff King
2013-09-12 18:35 ` Junio C Hamano
2013-09-12 18:38 ` Jonathan Nieder
2013-09-12 19:51 ` Sebastian Schuberth
2013-09-12 20:08 ` Junio C Hamano
2013-09-13 12:33 ` Sebastian Schuberth
2013-09-13 14:26 ` Junio C Hamano
2013-09-13 19:34 ` Sebastian Schuberth
2013-09-12 21:36 ` Jonathan Nieder
2013-09-12 19:00 ` Jeff King
2013-09-12 19:46 ` Sebastian Schuberth
2013-09-12 20:22 ` Jeff King
2013-09-12 20:29 ` Junio C Hamano
2013-09-13 12:47 ` Sebastian Schuberth
2013-09-13 14:37 ` Junio C Hamano
2013-09-13 19:53 ` Sebastian Schuberth
2013-09-13 19:56 ` Linus Torvalds
2013-09-13 20:03 ` Sebastian Schuberth
2013-09-13 20:01 ` Junio C Hamano
2013-09-13 20:04 ` Sebastian Schuberth
2013-09-13 22:06 ` Junio C Hamano
2013-09-13 22:35 ` Junio C Hamano
2013-09-15 12:44 ` Sebastian Schuberth
2013-09-17 16:17 ` Junio C Hamano
2013-09-17 19:16 ` Sebastian Schuberth
2013-09-17 21:46 ` Junio C Hamano
2013-09-18 9:43 ` Sebastian Schuberth
2013-09-18 12:19 ` Linus Torvalds
2013-09-12 21:31 ` Jonathan Nieder
2013-09-19 13:47 ` Sebastian Schuberth
2013-09-11 18:39 ` 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=20130911191620.GB24251@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=karsten.blees@gmail.com \
--cc=sschuberth@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).