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