[c++] Re: Bootstrap failure on OSF4 libio/isscan.cc in call to va_start

Richard Henderson rth@cygnus.com
Sat Aug 28 15:26:00 GMT 1999


On Sat, Aug 28, 1999 at 10:53:59AM -0400, Kaveh R. Ghazi wrote:
>  > decl_namespace (decl=0x0) at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4455
>  > 4455      while (DECL_CONTEXT (decl))
>  > (gdb) where
>  > #0  decl_namespace (decl=0x0) at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4455
>  > #1  0x12022ae68 in arg_assoc_class (k=0x11fffe810, type=0x140141380)
>  >     at ../../../egcs-CVS19990828/gcc/cp/decl2.c:4624
[...]
> 	Now line 35 in libio/isscan.cc is a call to va_start()...

Indeed.  Somehow I forgot I had a patch for this pending.

The type sent to arg_assoc_class is indeed __builtin_va_list.
Based on advice from Jason, I came up with the following,
which does allow a successful bootstrap.


r~


	* decl2.c (arg_assoc_class): Bail if the class is a builtin type.

Index: decl2.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/decl2.c,v
retrieving revision 1.243
diff -c -p -d -r1.243 decl2.c
*** decl2.c	1999/08/25 22:07:03	1.243
--- decl2.c	1999/08/28 22:22:08
*************** arg_assoc_class (k, type)
*** 4617,4622 ****
--- 4617,4627 ----
    tree list, friends, context;
    int i;
    
+   /* Backend build structures, such as __builtin_va_list, aren't
+      affected by all this.  */
+   if (!CLASS_TYPE_P (type))
+     return 0;
+ 
    if (purpose_member (type, k->classes))
      return 0;
    k->classes = tree_cons (type, NULL_TREE, k->classes);


More information about the Gcc-bugs mailing list