Re: [gtk-list] gtk+-1.2.5 va_args fix...
- From: Tim Janik <timj gtk org>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] gtk+-1.2.5 va_args fix...
- Date: Thu, 7 Oct 1999 05:37:17 +0200 (CEST)
On Wed, 6 Oct 1999, Ani Joshi wrote:
> 
> 	I ran into problems with gtk+-1.2.5 and gcc-2.95.2pre with a bunch
> of bad va_arg() calls.  The new compiler is now pretty strict on these.
> Attatched you will find a patch which fixes the bad va_arg() calls.
hm, judging from your patch, gcc-2.95.2pre is completely broken on var args
handling (excerpt):
     case GTK_TYPE_FLAGS: \
-      GTK_VALUE_FLAGS (*arg) = va_arg (var_args, guint); \
+      GTK_VALUE_FLAGS (*arg) = (guint)va_arg (var_args, int); \
va_arg() should return nothing else than the type specified, see stdarg(3):
       type va_arg( va_list ap, type);
       The va_arg macro expands to an  expression  that  has  the
       type  and  value  of  the  next argument in the call.  The
       parameter ap is the va_list ap  initialized  by  va_start.
       Each  call  to  va_arg  modifies  ap so that the next call
       returns the next argument.  The parameter type is  a  type
       name  specified so that the type of a pointer to an object
       that has the specified type  can  be  obtained  simply  by
       adding a * to type.
       break; \
  \
       /* we collect longs as glongs since they differ in size with \
        * integers on some platforms \
        */ \
     case GTK_TYPE_LONG: \
-      GTK_VALUE_LONG (*arg) = va_arg (var_args, glong); \
+      GTK_VALUE_LONG (*arg) = (glong)va_arg (var_args, int); \
       break; \
     case GTK_TYPE_ULONG: \
-      GTK_VALUE_ULONG (*arg) = va_arg (var_args, gulong); \
+      GTK_VALUE_ULONG (*arg) = (gulong)va_arg (var_args, int); \
       break; \
and this is completely broken, sizeof(long)!=sizeof(int) on 64 bit
machines for instance.
thanks for your patch anyways, but i think you'd better send the
report off to the gcc maintainers.
> 
> 
> Ani
> 
---
ciaoTJ
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]