https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104668
--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:9fd377a747375a82912bd81c67b275301489785c commit r12-8029-g9fd377a747375a82912bd81c67b275301489785c Author: Jakub Jelinek <ja...@redhat.com> Date: Wed Apr 6 17:53:41 2022 +0200 c++: Fix up ICE when cplus_decl_attributes is called with error_mark_node attributes [PR104668] cplus_decl_attributes can be called with attributes equal to error_mark_node, there are some spots in the function that test it or decl_attributes it calls starts with: if (TREE_TYPE (*node) == error_mark_node || attributes == error_mark_node) return NULL_TREE; But the recent PR104245 change broke this when processing_template_decl is true. The patch returns early for attributes error_mark_node from cplus_decl_attributes. 2022-04-06 Jakub Jelinek <ja...@redhat.com> PR c++/104668 * decl2.cc (splice_template_attributes): Return NULL if *p is error_mark_node. (cplus_decl_attributes): Return early if attributes is error_mark_node. Don't check that later. * g++.dg/cpp0x/pr104668.C: New test.