diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2014-01-29 17:54:51 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2014-01-29 17:54:51 +0000 |
commit | e1e30986f9d8089f1814e56c15caa6c15a65b885 (patch) | |
tree | 9e9581723e5743c574534996cf6bd88b0ced68ed | |
parent | 53d7df935178b56fd024500e1dcd27b8ffad11bd (diff) | |
download | gcc-e1e30986f9d8089f1814e56c15caa6c15a65b885.zip gcc-e1e30986f9d8089f1814e56c15caa6c15a65b885.tar.gz gcc-e1e30986f9d8089f1814e56c15caa6c15a65b885.tar.bz2 |
re PR c++/58674 ([c++11] ICE with template using declaration)
/cp
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58674
* pt.c (instantiate_template_1): Check for error_mark_node the second
argument too.
/testsuite
2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58674
* g++.dg/cpp0x/pr58674.C: New.
From-SVN: r207275
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/pr58674.C | 18 |
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 594861b..ff6493a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2014-01-29 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/58674 + * pt.c (instantiate_template_1): Check for error_mark_node the second + argument too. + 2014-01-29 Jason Merrill <jason@redhat.com> PR c++/59916 diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 7f1b6d5..ce679f6 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -15258,6 +15258,9 @@ instantiate_template_1 (tree tmpl, tree orig_args, tsubst_flags_t complain) return NULL_TREE; } + if (targ_ptr == error_mark_node) + return error_mark_node; + /* Check to see if we already have this specialization. */ gen_tmpl = most_general_template (tmpl); if (tmpl != gen_tmpl) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0b832ad..ce325ca 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-29 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/58674 + * g++.dg/cpp0x/pr58674.C: New. + 2014-01-28 Kirill Yukhin <kirill.yukhin@intel.com> PR target/59617 diff --git a/gcc/testsuite/g++.dg/cpp0x/pr58674.C b/gcc/testsuite/g++.dg/cpp0x/pr58674.C new file mode 100644 index 0000000..fe97c6d --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/pr58674.C @@ -0,0 +1,18 @@ +// PR c++/58674 +// { dg-do compile { target c++11 } } + +template<int> struct A {}; + +template<int N> using B = A<N>; + +template<typename T> struct C +{ + B<T::i> b; // { dg-error "not usable" } +}; + +struct X +{ + static const int i; +}; + +C<X> c; |