]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR c++/53209
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 May 2012 13:27:03 +0000 (13:27 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 11 May 2012 13:27:03 +0000 (13:27 +0000)
* pt.c (tsubst_decl): Bail out if argvec is error_mark_node.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187404 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/pt.c

index dfb3204c18c28f13d8149167e148da85c4b1aa4a..a36aaf6508d6c00370573e988aaa57d910bb8e25 100644 (file)
@@ -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
index a506a8481d00acf923002196846c1d8646cef7d8..77c95bc259ea591066b4c9edcc75a015ce5e88c2 100644 (file)
@@ -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);
              }