diff options
author | Mark Mitchell <mark@codesourcery.com> | 1999-04-08 20:16:51 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 1999-04-08 20:16:51 +0000 |
commit | 5082a35587f3bc483ab5d1730d9a179251ff9f09 (patch) | |
tree | eac8067e3bbcbef5008c44f1b4d6d760dd28e3cc | |
parent | d4ca58b3e001758ce57da07cfd636a52c012aa4d (diff) | |
download | gcc-5082a35587f3bc483ab5d1730d9a179251ff9f09.zip gcc-5082a35587f3bc483ab5d1730d9a179251ff9f09.tar.gz gcc-5082a35587f3bc483ab5d1730d9a179251ff9f09.tar.bz2 |
error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands don't have types.
* error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands
don't have types.
From-SVN: r26300
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/error.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/crash35.C | 11 |
3 files changed, 15 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 21cf5a9..c1c04e7 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 1999-04-08 Mark Mitchell <mark@codesourcery.com> + * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands + don't have types. + * search.c (template_self_reference_p): Tweak. 1999-04-07 Mark Mitchell <mark@codesourcery.com> diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 45b96d7..055f92a 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1564,6 +1564,7 @@ dump_expr (t, nop) else { if (TREE_OPERAND (t,0) != NULL_TREE + && TREE_TYPE (TREE_OPERAND (t, 0)) && NEXT_CODE (TREE_OPERAND (t, 0)) == REFERENCE_TYPE) dump_expr (TREE_OPERAND (t, 0), nop); else diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash35.C b/gcc/testsuite/g++.old-deja/g++.pt/crash35.C new file mode 100644 index 0000000..d4084fe --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/crash35.C @@ -0,0 +1,11 @@ +// Build don't link: +// Origin: Miniussi <miniussi@ilog.fr> + +template <class O> +struct Str { + Str(int& val= (*new int())); +}; + +template<class O> +Str<O>::Str(int& val) {} + |