Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS, error...
От | Tom Lane |
---|---|
Тема | Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS, error... |
Дата | |
Msg-id | 27859.1035646255@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: UnixWare 7.1.3 (BETA), C99 compiler, current CVS, (Larry Rosenman <ler@lerctr.org>) |
Список | 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 по дате отправления: