remove TYPE_ARG_TYPES from godump.c
authorNathan Froyd <froydnj@codesourcery.com>
Fri, 20 May 2011 20:01:46 +0000 (20:01 +0000)
committerNathan Froyd <froydnj@gcc.gnu.org>
Fri, 20 May 2011 20:01:46 +0000 (20:01 +0000)
remove TYPE_ARG_TYPES from godump.c
* godump.c (go_format_type): Don't use TYPE_ARG_TYPES.

From-SVN: r173980

gcc/ChangeLog
gcc/godump.c

index 124c86c53a9ec06249614dd54f1f593e5a975901..f9c65da2546c93ba2bcc43859ac6cb7ec37c6d64 100644 (file)
@@ -1,3 +1,7 @@
+2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
+
+       * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
+
 2011-05-20  Tom de Vries  <tom@codesourcery.com>
 
        PR target/45098
index 4f83777bc9da9b3668550999f031cb728c915067..1ef5e1722921458f367730d05093a4886f5e59ed 100644 (file)
@@ -741,9 +741,11 @@ go_format_type (struct godump_container *container, tree type,
 
     case FUNCTION_TYPE:
       {
-       tree args;
+       tree arg_type;
        bool is_varargs;
        tree result;
+       function_args_iterator iter;
+       bool seen_arg;
 
        /* Go has no way to write a type which is a function but not a
           pointer to a function.  */
@@ -754,25 +756,21 @@ go_format_type (struct godump_container *container, tree type,
          }
 
        obstack_1grow (ob, '(');
-       is_varargs = true;
-       for (args = TYPE_ARG_TYPES (type);
-            args != NULL_TREE;
-            args = TREE_CHAIN (args))
+       is_varargs = stdarg_p (type);
+       seen_arg = false;
+       FOREACH_FUNCTION_ARGS (type, arg_type, iter)
          {
-           if (VOID_TYPE_P (TREE_VALUE (args)))
-             {
-               gcc_assert (TREE_CHAIN (args) == NULL);
-               is_varargs = false;
-               break;
-             }
-           if (args != TYPE_ARG_TYPES (type))
+           if (VOID_TYPE_P (arg_type))
+             break;
+           if (seen_arg)
              obstack_grow (ob, ", ", 2);
-           if (!go_format_type (container, TREE_VALUE (args), true, false))
+           if (!go_format_type (container, arg_type, true, false))
              ret = false;
+           seen_arg = true;
          }
        if (is_varargs)
          {
-           if (TYPE_ARG_TYPES (type) != NULL_TREE)
+           if (prototype_p (type))
              obstack_grow (ob, ", ", 2);
            obstack_grow (ob, "...interface{}", 14);
          }