From: Nathan Sidwell Date: Wed, 15 Jun 2005 08:23:01 +0000 (+0000) Subject: re PR c++/20678 (Make process stopped) X-Git-Tag: misc/cutover-cvs2svn~2406 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c4eacf9907eb2298d8552e02910723518203bca0;p=thirdparty%2Fgcc.git re PR c++/20678 (Make process stopped) cp: PR c++/20678 * error.c (dump_expr) : Check DECL_NAME is not null. testsuite: PR c++/20678 * g++.dg/other/crash-4.C: New. From-SVN: r100972 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 44281fbf502d..8a24049ba1ce 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 c247c97c61e7..3d202d6f636b 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 9b38bcd1d59b..216b331232e1 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 000000000000..35f23e8ccc00 --- /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" } +};