PR c++/28736
PR c++/28737 PR c++/28738 * pt.c (process_template_parm): Store invalid template parameters as a TREE_LIST with a TREE_VALUE of error_mark_node. (push_inline_template_parms_recursive): Check for template parameters having a TREE_VALUE of error_mark_node rather than check the parameter itself. (mangle_class_name_for_template): Likewise. (comp_template_parms): When comparing the individual template parameters, return 1 if either is error_mark_node. (current_template_args): Robustify. (redeclare_class_template): Likewise. * g++.dg/template/void10.C: New test. * g++.dg/template/void8.C: New test. * g++.dg/template/void9.C: New test. * g++.dg/template/void3.C: Adjust error markers. * g++.dg/template/void4.C: Likewise. * g++.dg/template/crash55.C: Likewise. * g++.dg/template/void7.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116473 138bc75d-0d04-0410-961f-82ee72b054a4
Showing
- gcc/cp/ChangeLog 16 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/pt.c 37 additions, 26 deletionsgcc/cp/pt.c
- gcc/testsuite/ChangeLog 16 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/template/crash55.C 1 addition, 1 deletiongcc/testsuite/g++.dg/template/crash55.C
- gcc/testsuite/g++.dg/template/void10.C 10 additions, 0 deletionsgcc/testsuite/g++.dg/template/void10.C
- gcc/testsuite/g++.dg/template/void3.C 1 addition, 1 deletiongcc/testsuite/g++.dg/template/void3.C
- gcc/testsuite/g++.dg/template/void4.C 1 addition, 1 deletiongcc/testsuite/g++.dg/template/void4.C
- gcc/testsuite/g++.dg/template/void7.C 1 addition, 1 deletiongcc/testsuite/g++.dg/template/void7.C
- gcc/testsuite/g++.dg/template/void8.C 7 additions, 0 deletionsgcc/testsuite/g++.dg/template/void8.C
- gcc/testsuite/g++.dg/template/void9.C 4 additions, 0 deletionsgcc/testsuite/g++.dg/template/void9.C
Loading
Please register or sign in to comment