diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2012-05-11 13:27:03 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2012-05-11 13:27:03 +0000 |
commit | 3feb96d2f40609a8d9a77df21c516420004fbf36 (patch) | |
tree | 055a9d6bb9d3ed843b86ba3cbd5574516055c2c8 /gcc | |
parent | 7d5a5747fc5ffbd86d1da0e2cff9823f0446a907 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 |
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); } |