Patch 1 in this series introduced a pseudo-regression. If the symbol table contained: foo(int) foo(char) Bar Bar and the user did: (gdb) print foo or (gdb) ptype Bar they would get the results for an arbitrary match of foo and Bar where previously the would just get a "symbol not found" error just because template lookup did not work properly. This patch corrects that by introducing a meta variable representing the template into the scope of the template instance. This symbol is a place holder until overload resolution, but if the user tries to evaluate it or print its type they receive an appropriate error message: "Symbol represents a template and cannot be evaluated." "type = Template Symbol" respectively.