diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2005-06-15 08:23:01 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2005-06-15 08:23:01 +0000 |
commit | c4eacf9907eb2298d8552e02910723518203bca0 (patch) | |
tree | aca000b905a2460fc61e96ed4169a7a16ced86ad | |
parent | 1bf5fc346a3f74999a27c5ad6ff456bb59c1783b (diff) | |
download | gcc-c4eacf9907eb2298d8552e02910723518203bca0.zip gcc-c4eacf9907eb2298d8552e02910723518203bca0.tar.gz gcc-c4eacf9907eb2298d8552e02910723518203bca0.tar.bz2 |
re PR c++/20678 (Make process stopped)
cp:
PR c++/20678
* error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
null.
testsuite:
PR c++/20678
* g++.dg/other/crash-4.C: New.
From-SVN: r100972
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/error.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/crash-4.C | 19 |
4 files changed, 30 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 44281fb..8a24049 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2005-06-15 Nathan Sidwell <nathan@codesourcery.com> + PR c++/20678 + * error.c (dump_expr) <COMPONENT_REF case>: 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 c247c97..3d202d6 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 9b38bcd..216b331 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-06-15 Nathan Sidwell <nathan@codesourcery.com> + + PR c++/20678 + * g++.dg/other/crash-4.C: New. + 2005-06-14 Devang Patel <dpatel@apple.com> * 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 0000000..35f23e8 --- /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 <nathan@codesourcery.com> + +// 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" } +}; |