------- Comment #3 from pinskia at gcc dot gnu dot org 2006-08-27 23:23 ------- The patch which I am testing: Index: call.c =================================================================== --- call.c (revision 116493) +++ call.c (working copy) @@ -4544,10 +4544,12 @@ build_x_va_arg (tree expr, tree type)
if (! pod_type_p (type)) { + /* Remove reference types so we don't ICE later on. */ + tree type1 = non_reference (type); /* Undefined behavior [expr.call] 5.2.2/7. */ warning (0, "cannot receive objects of non-POD type %q#T through %<...%>; " "call will abort at runtime", type); - expr = convert (build_pointer_type (type), null_node); + expr = convert (build_pointer_type (type1), null_node); expr = build2 (COMPOUND_EXPR, TREE_TYPE (expr), call_builtin_trap (), expr); expr = build_indirect_ref (expr, NULL); ------- Since we already build a pointer type, we don't need use the reference type. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28349