re PR c++/28736 (ICE with friend of invalid template class)
authorLee Millward <lee.millward@codesourcery.com>
Sat, 26 Aug 2006 17:41:18 +0000 (17:41 +0000)
committerLee Millward <lmillward@gcc.gnu.org>
Sat, 26 Aug 2006 17:41:18 +0000 (17:41 +0000)
commit0f67a82f746f54701bea05608502944ca26ae715
tree17042b9752adae54363119249db31c45d318974e
parent9618502bff5f70682077580ff083fe82160b4d7a
re PR c++/28736 (ICE with friend of invalid template class)

        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.

From-SVN: r116473
gcc/cp/ChangeLog
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/crash55.C
gcc/testsuite/g++.dg/template/void10.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/void3.C
gcc/testsuite/g++.dg/template/void4.C
gcc/testsuite/g++.dg/template/void7.C
gcc/testsuite/g++.dg/template/void8.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/void9.C [new file with mode: 0644]