aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2014-08-15 18:27:06 -0400
committerJason Merrill <jason@gcc.gnu.org>2014-08-15 18:27:06 -0400
commit2b14490e737ecc16e2411d466afd21ac95b3bc05 (patch)
treef31e54d6c315542e335bbd156ac2f964f5fc4549 /gcc
parentab36d98dd2803009eb49393d72f19041d53adffd (diff)
downloadgcc-2b14490e737ecc16e2411d466afd21ac95b3bc05.zip
gcc-2b14490e737ecc16e2411d466afd21ac95b3bc05.tar.gz
gcc-2b14490e737ecc16e2411d466afd21ac95b3bc05.tar.bz2
re PR c++/61566 (ICE in write_unscoped_name)
PR c++/61566 * pt.c (lookup_template_class_1): Revert recent change. * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change. From-SVN: r214049
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/mangle.c1
-rw-r--r--gcc/cp/pt.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index c926978..059ae60 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,6 +1,10 @@
2014-08-15 Jason Merrill <jason@redhat.com>
PR c++/61566
+ * pt.c (lookup_template_class_1): Revert recent change.
+ * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Revert recent change.
+
+ PR c++/61566
* pt.c (instantiate_class_template_1): Ignore lambda on
CLASSTYPE_DECL_LIST.
(push_template_decl_real): A lambda is not primary.
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index ac165e0..40508ab 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -87,7 +87,6 @@ along with GCC; see the file COPYING3. If not see
(TYPE_LANG_SPECIFIC (NODE) != NULL \
&& (TREE_CODE (NODE) == BOUND_TEMPLATE_TEMPLATE_PARM \
|| (CLASSTYPE_TEMPLATE_INFO (NODE) != NULL \
- && !LAMBDA_TYPE_P (NODE) \
&& (PRIMARY_TEMPLATE_P (CLASSTYPE_TI_TEMPLATE (NODE))))))
/* Things we only need one of. This module is not reentrant. */
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 611bfd6..41fd424 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -7878,8 +7878,6 @@ lookup_template_class_1 (tree d1, tree arglist, tree in_decl, tree context,
&& TMPL_ARGS_HAVE_MULTIPLE_LEVELS (arglist)
/* the enclosing class must be an instantiation... */
&& CLASS_TYPE_P (context)
- /* We don't do partial instantiation of closures. */
- && !LAMBDA_TYPE_P (TREE_TYPE (gen_tmpl))
&& !same_type_p (context, DECL_CONTEXT (gen_tmpl)))
{
tree partial_inst_args;