diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 44281fbf502..8a24049ba1c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2005-06-15 Nathan Sidwell + PR c++/20678 + * error.c (dump_expr) : Check DECL_NAME is not + null. + * Make-lang.in: Reformat some long lines. (gt-cp-rtti.h): New target. (cp/rtti.o): Add dependency. diff --git a/gcc/cp/error.c b/gcc/cp/error.c index c247c97c61e..3d202d6f636 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1489,7 +1489,8 @@ dump_expr (tree t, int flags) { ob = TREE_OPERAND (ob, 0); if (TREE_CODE (ob) != PARM_DECL - || strcmp (IDENTIFIER_POINTER (DECL_NAME (ob)), "this")) + || (DECL_NAME (ob) + && strcmp (IDENTIFIER_POINTER (DECL_NAME (ob)), "this"))) { dump_expr (ob, flags | TFF_EXPR_IN_PARENS); pp_cxx_arrow (cxx_pp); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9b38bcd1d59..216b331232e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-06-15 Nathan Sidwell + + PR c++/20678 + * g++.dg/other/crash-4.C: New. + 2005-06-14 Devang Patel * gcc.dg/vect/vect-ifcvt-1.c: Remove. diff --git a/gcc/testsuite/g++.dg/other/crash-4.C b/gcc/testsuite/g++.dg/other/crash-4.C new file mode 100644 index 00000000000..35f23e8ccc0 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/crash-4.C @@ -0,0 +1,19 @@ +// Copyright (C) 2005 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 14 Jun 2005 + +// PR 20678: ICE on error message +// Origin: Andrew Pinski pinskia@gcc.gnu.org + +struct a +{ + a(const a&); +}; +struct b +{ // { dg-error "cannot bind packed field" } + a aa __attribute__((packed)); +}; +struct c +{ + b bb; + c(const b& __a): bb(__a) {} // { dg-error "synthesized" } +};