[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