diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-11-03 15:06:42 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2005-11-03 07:06:42 -0800 |
commit | b88b7ced9b63f5f77b03dcd7fe114a152ac1dbd5 (patch) | |
tree | 677adb6581b12a2ebb71ea2b3137935794902c49 | |
parent | f9c4ee6d100ed11255aa7177c3b8c1a25150b1c4 (diff) | |
download | gcc-b88b7ced9b63f5f77b03dcd7fe114a152ac1dbd5.zip gcc-b88b7ced9b63f5f77b03dcd7fe114a152ac1dbd5.tar.gz gcc-b88b7ced9b63f5f77b03dcd7fe114a152ac1dbd5.tar.bz2 |
re PR c++/24582 (ICE in decl_jump_unsafe)
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/24582
* g++.dg/init/switch1.C: New test.
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/24582
* decl.c (declare_local_label): Return 0 for variables
with error_mark_node as their types.
From-SVN: r106434
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/decl.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/switch1.C | 8 |
4 files changed, 21 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index eb52015..e1edc45 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-11-03 Andrew Pinski <pinskia@physics.uc.edu> + + PR c++/24582 + * decl.c (declare_local_label): Return 0 for variables + with error_mark_node as their types. + 2005-11-02 Mark Mitchell <mark@codesourcery.com> PR c++/22434 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 7e38ec3..c5fe658 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -2147,7 +2147,8 @@ declare_local_label (tree id) static int decl_jump_unsafe (tree decl) { - if (TREE_CODE (decl) != VAR_DECL || TREE_STATIC (decl)) + if (TREE_CODE (decl) != VAR_DECL || TREE_STATIC (decl) + || TREE_TYPE (decl) == error_mark_node) return 0; if (TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (decl)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3be28a7..82124c6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-11-03 Andrew Pinski <pinskia@physics.uc.edu> + + PR c++/24582 + * g++.dg/init/switch1.C: New test. + 2005-11-03 Eric Botcazou <ebotcazou@libertysurf.fr> * gcc.dg/delay-slot-1.c: New test. diff --git a/gcc/testsuite/g++.dg/init/switch1.C b/gcc/testsuite/g++.dg/init/switch1.C new file mode 100644 index 0000000..b0b06b7 --- /dev/null +++ b/gcc/testsuite/g++.dg/init/switch1.C @@ -0,0 +1,8 @@ +int f(int c) +{ + switch (c) + { + case d: /* { dg-error "'d' was not declared" } */ + int optBzip2 = true; + } +} |