This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

A question about cp/pt.c:type_unification_real


Hi,

I have a question about cp/pt.c:type_unification_real.

What does "args" represent?  The comment above type_unification_real
says "most parms like fn_type_unification."  According to
fn_type_unification, "args" is supposed to point to function
arguments.  In fact, when I backtraced a call to
type_unification_real, I traced "args" to the second argument of
build_new_function_call, which indicates that "args" are function
arguments.

However, "args" appears to be a parameter list, too.  For example,
type_unification_real contains code like:

  parms = xparms;
  args = xargs;

  while (parms && parms != void_list_node
	 && args && args != void_list_node)

Note that "args" is compared against void_list_node.

As another example, also in type_unification_real, we have

  if (args && args != void_list_node && parms == void_list_node)
    return 1;

Note again that "args" is compared to void_list_node.

Even more confusing is:

      arg = TREE_VALUE (args);
      :
      :
	  if (!TYPE_P (arg))

Can a function argument be a type?

Clarification would be greatly apprecaited.

Thanks,

Kazu Hirata


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]