Bruno Haible <br...@clisp.org> writes: > On Solaris/x86, with SunPRO C 5.9, the test-func test fails. The reason > is that > sizeof __func__ > evaluates to 0. The compiler warns about it: > "test-func.c", line 40: warning: null dimension: sizeof() > > What to do? m4/func.m4 could defined __func__ to a dummy. But that's too > much damage IMO. Better make clear that sizeof __func__ cannot be used > portably. > > Simon, what do you think?
I see no significant use-case for sizeof __func__, so working around the problem as you propose is fine with me. Thanks, /Simon > 2009-08-27 Bruno Haible <br...@clisp.org> > > * tests/test-func.c (main): Don't verify sizeof __func__ on SunPRO C > compilers. > * doc/func.texi: Document the SunPRO C bug. > > --- doc/func.texi.orig 2009-08-27 09:53:14.000000000 +0200 > +++ doc/func.texi 2009-08-27 09:53:03.000000000 +0200 > @@ -15,3 +15,6 @@ > printf ("%s: hello world\n", __func__); > @} > @end smallexample > + > +Note that @code{sizeof} cannot be applied to @code{__func__}: On SunPRO C > +compiler, @code{sizeof __func__} evaluates to 0. > --- tests/test-func.c.orig 2009-08-27 09:46:28.000000000 +0200 > +++ tests/test-func.c 2009-08-27 09:32:57.000000000 +0200 > @@ -1,5 +1,5 @@ > /* Test whether __func__ is available > - Copyright (C) 2008 Free Software Foundation, Inc. > + Copyright (C) 2008-2009 Free Software Foundation, Inc. > > This program is free software: you can redistribute it and/or modify > it under the terms of the GNU General Public License as published by > @@ -37,6 +37,13 @@ > int > main () > { > + ASSERT (strlen (__func__) > 0); > + > + /* On SunPRO C 5.9, sizeof __func__ evaluates to 0. The compiler warns: > + "warning: null dimension: sizeof()". */ > +#if !defined __SUNPRO_C > ASSERT (strlen (__func__) + 1 == sizeof __func__); > +#endif > + > return 0; > }