c++: Remove a broken error-recovery path
authorNathan Sidwell <nathan@acm.org>
Tue, 22 Sep 2020 19:21:13 +0000 (12:21 -0700)
committerNathan Sidwell <nathan@acm.org>
Tue, 22 Sep 2020 19:31:39 +0000 (12:31 -0700)
commit7d8177b027b87cf3211e2d6cf144ec71616425ea
tree44a2dcbf283da2ba15f3d536fe70d5778a0a6a6e
parentbc13106e0414b86af8f6878e7681e6a959921b9e
c++: Remove a broken error-recovery path

The remaining use of xref_tag_from_type was also suspicious.  It turns
out to be an error path.  At parse time we diagnose that a class
definition cannot appear, but we swallow the definition.  This code
was attempting to push it into the global scope (or find a conflict).
This seems needless, just return error_mark_node.  This was the
simpler fix than going through the parser and figuring out how to get
it to put in error_mark_node at the right point.

gcc/cp/
* cp-tree.h (xref_tag_from_type): Don't declare.
* decl.c (xref_tag_from_type): Delete.
* pt.c (lookup_template_class_1): Erroneously located class
definitions just give error_mark, don't try and inject it into the
namespace.
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/pt.c