https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68009

Jan Hubicka <hubicka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
See implementation of stdarg_p in tree.c:

/* Return true if TYPE has a variable argument list.  */

bool
stdarg_p (const_tree fntype)
{
  function_args_iterator args_iter;
  tree n = NULL_TREE, t;

  if (!fntype)
    return false;

  FOREACH_FUNCTION_ARGS (fntype, t, args_iter)
    {
      n = t;
    }

  return n != NULL_TREE && n != void_type_node;
}

The calling convetion of stdarg functions need not to be compatible with
non-stdarg. This is the case of x86_64, too, where %rax sets number of SSE
registers used when calling variadic function.

So the fortran FE should produce a protottype that retuns true for stdarg_p.
This is done via build_varargs_function_type_array

Reply via email to