lkml.org 
[lkml]   [2002]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] 2.5.21 kill warnings 4/19

> > > wrt the __func__ thing: is it possible to do:
> > >
> > > #if (compiler version test)
> > > #define __FUNCTION__ __func__
> > > #endif
> > >
> > > to kill the 3.x warning?
> >
> > #include <stdio.h>
> > #define __FUNCTION__ __func__
> >
> > int main(int argc, char **argv) {
> > int i;
> >
> > for (i = 0; i < argc; i++) {
> > printf(__FUNCTION__ " encountered argument ");
> > printf("%s\n", argv[i]);
> > }
> >
> > exit(0);
> > }
> >
> > Obviously, yes.
>
>Nope.
>$ gcc-3.1 -Wall -o foo foo.c
>foo.c: In function `main':
>foo.c:8: parse error before string constant
>
>And line 8 is:
>printf(__FUNCTION__ " encountered argument ");

Well, those will brake. But in general it's possible. And I already do that
in Bluetooth code (it's been converted recently).

So

#if __GNUC__ <= 2 && __GNUC_MINOR__ < 95
#define __func__ __FUNCTION__
#endif

does the trick. All gcc's newer than 2.95 support __func__.

Bluetooth code compiles just fine with everything from:
ultrablue:/#sparc64-linux-gcc --version
egcs-2.92.11
to
champ:/usr/src/linux/include/net/bluetooth#gcc --version
gcc (GCC) 3.1

Max

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:22    [W:0.313 / U:0.392 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site