re PR c++/44039 (ICE: Segmentation fault on error recovery)

/cp
2010-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44039
	* pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
	returns NULL_TREE.

/testsuite
2010-07-02  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/44039
	* g++.dg/template/crash101.C: New.

From-SVN: r161698
This commit is contained in:
Paolo Carlini 2010-07-02 10:13:21 +00:00 committed by Paolo Carlini
parent 49ea7a0ef9
commit baf7c318bb
4 changed files with 25 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2010-07-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/44039
* pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
returns NULL_TREE.
2010-07-01 Richard Guenther <rguenther@suse.de>
* cp-gimplify.c (cp_gimplify_expr): Open-code the rhs

View File

@ -10737,6 +10737,8 @@ tsubst_baselink (tree baselink, tree object_type,
if (IDENTIFIER_TYPENAME_P (name))
name = mangle_conv_op_name_for_type (optype);
baselink = lookup_fnfields (qualifying_scope, name, /*protect=*/1);
if (!baselink)
return error_mark_node;
/* If lookup found a single function, mark it as used at this
point. (If it lookup found multiple functions the one selected

View File

@ -1,3 +1,8 @@
2010-07-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/44039
* g++.dg/template/crash101.C: New.
2010-07-02 Iain Sandoe <iains@gcc.gnu.org>
* obj-c++.dg/cxx-ivars-3.mm: Make the test require OSX <= 10.4.

View File

@ -0,0 +1,12 @@
// PR c++/44039
struct locale { };
template<class charT>
void
foo()
{ locale::locale(); } // // { dg-error "cannot call|function-style" }
void
bar()
{ foo<char>(); }