Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS, error... - Mailing list pgsql-hackers

From Tom Lane
Subject Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS, error...
Date
Msg-id 27859.1035646255@sss.pgh.pa.us
Whole thread Raw
In response to Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS,  (Larry Rosenman <ler@lerctr.org>)
List pgsql-hackers
Larry Rosenman <ler@lerctr.org> writes:
>> so the text of the message is surely not what they are really
>> complaining about?  Or is the compiler broken?
> I'll ask, it is Beta (although the Compiler has done this since the C99
> functionality was added, and it causes a LOT of open source stuff to
> require -Xb). 

After reading a little further, it seems that the brain damage is in the
standard, not the compiler :-(.  It looks like C99's notion of a
function that is both global and inline is that you must provide *two*
definitions of the function, one marked inline and one not; moreover,
these must appear in separate translation units.  What in the world were
those people smoking?  That's a recipe for maintenance problems (edit
one definition, forget to edit the other), not to mention completely at
variance with the de facto standard behavior of inline that's been
around for a long time.

My inclination is to change the code for ApplySortFunction to look like
#if defined(__GNUC__)__inline__#endifint32ApplySortFunction

so that the inline optimization only gets done for gcc, which we know
interprets inline sanely.  Anyone see a better answer?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Larry Rosenman
Date:
Subject: Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS,
Next
From: Doug McNaught
Date:
Subject: Re: Request for supported platforms