c++: typename_type structural comparison
authorNathan Sidwell <nathan@acm.org>
Wed, 2 Dec 2020 20:53:23 +0000 (12:53 -0800)
committerNathan Sidwell <nathan@acm.org>
Wed, 2 Dec 2020 20:59:05 +0000 (12:59 -0800)
commit07589ca2b2c84ec9609861ff5d119ed7413fd9c5
tree36c50abb4cfd8568837fe890353751a51154b8c6
parent4ed34c60a818cc513239844f336fc781a8b47a24
c++: typename_type structural comparison

For modules we need to compare structurally all the way down.  This
means inhibiting typename_type resolution, independent of comparing
specializations.

gcc/cp/
* cp-tree.h (comparing_typenames): Declare.
* pt.c (comparing_typenames): Define.
(spec_hasher::equal): Increment it around comparisons.
* typeck.c (structural_comptypes): Adjust TYPENAME resolution
check.
gcc/cp/cp-tree.h
gcc/cp/pt.c
gcc/cp/typeck.c