------- 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

Reply via email to