Darryl Gove's blog
static and inline functions
Hit a problem when compiling a library. The problem is with mixing static and inline functions, which is not allowed by the standard, but is allowed by gcc. Example code looks like:
char * c;
static void foo(char *);
inline void work()
{
foo(c);
}
void foo(char* c)
{
}
When this code is compiled it generates the following error:
% cc s.c "s.c", line 7: reference to static identifier "foo" in extern inline function cc: acomp failed for s.c
It turns out that there is a workaround for this problem, which is the flag -features=no%extinl. Douglas Walls describes the issue in much more detail.
Posted at 10:03AM Apr 28, 2008 by Darryl Gove in Sun |
