On Wed, Apr 28, 2004, Karl Vogel wrote:

> Concerning the glib error on GCC 3.4 (see previous post for details)
> >
> >     g_warning (G_GNUC_PRETTY_FUNCTION
> >               "(): unable to handle positional parameters (%%n$)");
> >
>
> The info pages of GCC 3.3 state:
> "
>    The compiler automagically replaces the identifiers with a string
> literal containing the appropriate name.  Thus, they are neither
> preprocessor macros, like `__FILE__' and `__LINE__', nor variables.
> This means that they catenate with other string literals, and that they
> can be used to initialize char arrays.  For example
>
>      char here[] = "Function " __FUNCTION__ " in " __FILE__;
> "
>
> Whereas GCC 3.4 states:
>
> "
>    These identifiers are not preprocessor macros.  In GCC 3.3 and
> earlier, in C only, `__FUNCTION__' and `__PRETTY_FUNCTION__' were
> treated as string literals; they could be used to initialize `char'
> arrays, and they could be concatenated with other string literals.  GCC
> 3.4 and later treat them as variables, like `__func__'.  In C++,
> `__FUNCTION__' and `__PRETTY_FUNCTION__' have always been variables.
>
> "

Ah, ok. Not it is clear what is going on here with GCC 3.4.
Ok, I've fixed this with glib-1.2.10-20040428 now. See
http://cvs.openpkg.org/chngview?cn=16208 for details.
Thanks for discovering this subtle problem.

                                       Ralf S. Engelschall
                                       [EMAIL PROTECTED]
                                       www.engelschall.com

______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
Developer Communication List                   [EMAIL PROTECTED]

Reply via email to