diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2007-09-09 00:30:44 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2007-09-09 00:30:44 -0400 |
commit | 97c954f700eaf9b67909a322dcd780f6168b3aba (patch) | |
tree | 57cfe615547b43e8c6441d127657431ed1532f43 /gcc | |
parent | fd452cefa9e28453d3ca5a7efa05facdda32e58f (diff) | |
download | gcc-97c954f700eaf9b67909a322dcd780f6168b3aba.zip gcc-97c954f700eaf9b67909a322dcd780f6168b3aba.tar.gz gcc-97c954f700eaf9b67909a322dcd780f6168b3aba.tar.bz2 |
re PR c++/33342 (ICE in dependent_type_p, at cp/pt.c:15081)
PR c++/33342
* pt.c (most_specialized_class): Set processing_template_decl
while tsubsting partial spec args.
From-SVN: r128286
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/g++.dg/template/mem-partial3.C | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/mem-partial3.C b/gcc/testsuite/g++.dg/template/mem-partial3.C new file mode 100644 index 0000000..bea6cd3 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/mem-partial3.C @@ -0,0 +1,29 @@ +// PR c++/33342 + +template <bool B, class T = void> +struct enable_if_c { + typedef T type; +}; + +template <class T> +struct A +{ + template <class U, class V> + struct B; + + template <class U> + struct B<U, typename enable_if_c<U::sub::value==0>::type> + { }; +}; + +struct C +{ + struct sub + { + static const int value = 0; + }; +}; + + +A<int> a; +A<int>::B<C, void> b; |