diff options
author | Paolo Bonzini <bonzini@gcc.gnu.org> | 2005-10-12 13:16:22 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2005-10-12 13:16:22 +0000 |
commit | 39e837db6aa45f28e5c1fe314b16d1dcaa8c99ab (patch) | |
tree | d3fe0ddcb855eb7439d3b6aa336fc350e6d0f082 | |
parent | c8c7ed52e4011b656b678a06ae477927f1c6e022 (diff) | |
download | gcc-39e837db6aa45f28e5c1fe314b16d1dcaa8c99ab.zip gcc-39e837db6aa45f28e5c1fe314b16d1dcaa8c99ab.tar.gz gcc-39e837db6aa45f28e5c1fe314b16d1dcaa8c99ab.tar.bz2 |
==> cp/ChangeLog <==
2005-10-12 Paolo Bonzini <bonzini@gnu.org>
PR c++/24052
* error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
an ADDR_EXPR of a LABEL_DECL as &&.
==> testsuite/ChangeLog <==
2005-10-12 Paolo Bonzini <bonzini@gnu.org>
PR c++/24052
* g++.dg/ext/label5.C: New.
From-SVN: r105297
-rw-r--r-- | gcc/cp/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/cp/error.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/label5.C | 7 |
4 files changed, 22 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 53a5cb0..a7e9703 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,7 +1,13 @@ +2005-10-12 Paolo Bonzini <bonzini@gnu.org> + + PR c++/24052 + * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print + an ADDR_EXPR of a LABEL_DECL as &&. + 2005-10-12 Nathan Sidwell <nathan@codesourcery.com> PR c++/19964 - * cp/class.c (walk_subobject_offsets): Don't walk error_mark_node. + * class.c (walk_subobject_offsets): Don't walk error_mark_node. 2005-10-11 Ian Lance Taylor <ian@airs.com> diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 1b70bbb..8e39cca 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1295,6 +1295,7 @@ dump_expr (tree t, int flags) case FUNCTION_DECL: case TEMPLATE_DECL: case NAMESPACE_DECL: + case LABEL_DECL: case OVERLOAD: case IDENTIFIER_NODE: dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS); @@ -1537,6 +1538,8 @@ dump_expr (tree t, int flags) || (TREE_TYPE (t) && TREE_CODE (TREE_TYPE (t)) == REFERENCE_TYPE)) dump_expr (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS); + else if (TREE_CODE (TREE_OPERAND (t, 0)) == LABEL_DECL) + dump_unary_op ("&&", t, flags); else dump_unary_op ("&", t, flags); break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 51b8119..6787a81 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-10-12 Paolo Bonzini <bonzini@gnu.org> + + PR c++/24052 + * g++.dg/ext/label5.C: New. + 2005-10-12 Nathan Sidwell <nathan@codesourcery.com> PR c++/19964 diff --git a/gcc/testsuite/g++.dg/ext/label5.C b/gcc/testsuite/g++.dg/ext/label5.C new file mode 100644 index 0000000..0032b0f --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/label5.C @@ -0,0 +1,7 @@ +// { dg-options "" } +// PR c++/24052 + +struct A { }; +int main() { b: A() && && b; } // { dg-error "A\\(\\) && && *b" } + +// { dg-error "candidate" "additional" { target *-*-* } 5 } |