OSDN Git Service

==> cp/ChangeLog <==
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Oct 2005 13:16:22 +0000 (13:16 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Oct 2005 13:16:22 +0000 (13:16 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105297 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/error.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/label5.C [new file with mode: 0644]

index 53a5cb0..a7e9703 100644 (file)
@@ -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>
 
index 1b70bbb..8e39cca 100644 (file)
@@ -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;
index 51b8119..6787a81 100644 (file)
@@ -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 (file)
index 0000000..0032b0f
--- /dev/null
@@ -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 }