diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2013-10-18 21:24:05 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2013-10-18 21:24:05 +0000 |
commit | 6e62a2b4e8d0342091bc35396c18688fdc9fd9cc (patch) | |
tree | 2c989b5adea59cfc1b910fc9c4db64a7dec46830 /gcc/cp | |
parent | 4484a35a86b8b80034c5b17b690c839103ed73b2 (diff) | |
download | gcc-6e62a2b4e8d0342091bc35396c18688fdc9fd9cc.zip gcc-6e62a2b4e8d0342091bc35396c18688fdc9fd9cc.tar.gz gcc-6e62a2b4e8d0342091bc35396c18688fdc9fd9cc.tar.bz2 |
re PR c++/58466 (ICE in cxx_eval_constant_expression)
/cp
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58466
* pt.c (most_specialized_class): Bump processing_template_decl for
get_class_bindings.
/testsuite
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58466
* g++.dg/cpp0x/variadic145.C: New.
From-SVN: r203836
Diffstat (limited to 'gcc/cp')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/pt.c | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2ef2978..1da821b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,11 @@ 2013-10-18 Paolo Carlini <paolo.carlini@oracle.com> + PR c++/58466 + * pt.c (most_specialized_class): Bump processing_template_decl for + get_class_bindings. + +2013-10-18 Paolo Carlini <paolo.carlini@oracle.com> + * parser.c (cp_parser_lookup_name): Tidy. 2013-10-17 Andrew MacLeod <amacleod@redhat.com> diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index e9c3ce2..e04bdcc 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -18615,10 +18615,15 @@ most_specialized_class (tree type, tree tmpl, tsubst_flags_t complain) if (spec_tmpl == error_mark_node) return error_mark_node; + ++processing_template_decl; + tree parms = DECL_INNERMOST_TEMPLATE_PARMS (spec_tmpl); spec_args = get_class_bindings (tmpl, parms, partial_spec_args, args); + + --processing_template_decl; + if (spec_args) { if (outer_args) |