aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2012-05-11 13:27:03 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2012-05-11 13:27:03 +0000
commit3feb96d2f40609a8d9a77df21c516420004fbf36 (patch)
tree055a9d6bb9d3ed843b86ba3cbd5574516055c2c8 /gcc
parent7d5a5747fc5ffbd86d1da0e2cff9823f0446a907 (diff)
downloadgcc-3feb96d2f40609a8d9a77df21c516420004fbf36.zip
gcc-3feb96d2f40609a8d9a77df21c516420004fbf36.tar.gz
gcc-3feb96d2f40609a8d9a77df21c516420004fbf36.tar.bz2
re PR c++/53209 (tree check ICE: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7038)
PR c++/53209 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node. From-SVN: r187404
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/pt.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index dfb3204..a36aaf6 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-11 Alexandre Oliva <aoliva@redhat.com>
+
+ PR c++/53209
+ * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
+
2012-05-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53305
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index a506a84..77c95bc 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -10631,6 +10631,8 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain)
tmpl = DECL_TI_TEMPLATE (t);
gen_tmpl = most_general_template (tmpl);
argvec = tsubst (DECL_TI_ARGS (t), args, complain, in_decl);
+ if (argvec == error_mark_node)
+ RETURN (error_mark_node);
hash = hash_tmpl_and_args (gen_tmpl, argvec);
spec = retrieve_specialization (gen_tmpl, argvec, hash);
}