diff options
author | Paolo Carlini <paolo.carlini@oracle.com> | 2010-05-04 14:17:52 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2010-05-04 14:17:52 +0000 |
commit | 4ac4b596988312f096f860d3e10579af438e3085 (patch) | |
tree | c13a2d8ae7baf9bfd1394f3b4141c40b16b1ba0c /gcc | |
parent | 0d3f65273b2de423cb9895d70cd646d19f650322 (diff) | |
download | gcc-4ac4b596988312f096f860d3e10579af438e3085.zip gcc-4ac4b596988312f096f860d3e10579af438e3085.tar.gz gcc-4ac4b596988312f096f860d3e10579af438e3085.tar.bz2 |
re PR c++/43705 (ICE: SIGSEGV with template specialization in non-namespace scope)
/cp
2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/43705
* call.c (build_new_method_call): Return error_mark_node if fns is
NULL_TREE.
/testsuite
2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/43705
* g++.dg/template/crash95.C: New.
From-SVN: r159029
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/call.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/crash95.C | 11 |
4 files changed, 23 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 026abe8..634a74b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2010-05-04 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/43705 + * call.c (build_new_method_call): Return error_mark_node if fns is + NULL_TREE. + 2010-05-03 Dodji Seketeli <dodji@redhat.com> PR c++/43953 diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 7915417..157b473 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -6219,7 +6219,7 @@ build_new_method_call (tree instance, tree fns, VEC(tree,gc) **args, *fn_p = NULL_TREE; if (error_operand_p (instance) - || error_operand_p (fns)) + || !fns || error_operand_p (fns)) return error_mark_node; if (!BASELINK_P (fns)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 29eaf71..d43de64 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-05-04 Paolo Carlini <paolo.carlini@oracle.com> + + PR c++/43705 + * g++.dg/template/crash95.C: New. + 2010-05-04 H.J. Lu <hongjiu.lu@intel.com> PR debug/43508 diff --git a/gcc/testsuite/g++.dg/template/crash95.C b/gcc/testsuite/g++.dg/template/crash95.C new file mode 100644 index 0000000..959a9d0 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/crash95.C @@ -0,0 +1,11 @@ +// PR c++/43705 + +template < typename > struct S +{ + template < > struct S < int > // { dg-error "explicit|specialization|template|parameter" } + { + S(int); + }; +}; + +S < int > s(0); |