This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Bug in coerce_template_parms
- To: egcs at cygnus dot com
- Subject: Bug in coerce_template_parms
- From: Martin von Loewis <martin at mira dot isdn dot cs dot tu-berlin dot de>
- Date: Sun, 15 Mar 1998 23:49:33 +0100
Did anybody notice problems in template parameter resolution?
There seems to be a problem in coerce_template_parms, exposed e.g.
by ttp26.C. Around line 1896, it checks whether the arglist is
a vector. If it isn't, it treats it as a list.
Now, there is another check whether nargs==nparms. In ttp26.C, this is
not the case because there are default parameters. So the check
fails, but the arguments are still passed as a vector. This goes
unnoticed, as the code retrieves the argument using TREE_VALUE, which
happens to be the right offset. I'm sure one can construct examples
where the code breaks, though.
I found this by putting an assertion into TREE_VALUE that the node
really is a TREE_LIST. I don't have a test case for this specific
code. If nobody can reproduce the problem, I can try to find one. For
ttp26.C, the problem manifests in the 20th invocation of
coerce_template_parms.
Thanks,
Martin