OSDN Git Service

2006-12-03 Richard Henderson <rth@redhat.com>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Dec 2006 02:24:42 +0000 (02:24 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Dec 2006 02:24:42 +0000 (02:24 +0000)
            Andrew Pinski  <pinskia@gmail.com>

        PR C++/14329
        * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.

2006-12-03  Richard Henderson  <rth@redhat.com>
            Andrew Pinski  <pinskia@gmail.com>

        PR C++/14329
        * g++.dg/warn/unit-1.C: New test.

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

gcc/cp/ChangeLog
gcc/cp/error.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/warn/unit-1.C [new file with mode: 0644]

index cfd933c..7e482c0 100644 (file)
@@ -1,3 +1,9 @@
+2006-12-03  Richard Henderson  <rth@redhat.com>
+            Andrew Pinski  <pinskia@gmail.com>
+
+       PR C++/14329
+       * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
+
 2006-12-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>
 
        PR C++/30033
index c4f4d46..49f3367 100644 (file)
@@ -2337,7 +2337,22 @@ cp_printer (pretty_printer *pp, text_info *text, const char *spec,
     {
     case 'A': result = args_to_string (next_tree, verbose);    break;
     case 'C': result = code_to_string (next_tcode);            break;
-    case 'D': result = decl_to_string (next_tree, verbose);    break;
+    case 'D':
+      {
+       tree temp = next_tree;
+       if (DECL_P (temp)
+           && DECL_DEBUG_EXPR_IS_FROM (temp) && DECL_DEBUG_EXPR (temp))
+         {
+           temp = DECL_DEBUG_EXPR (temp);
+           if (!DECL_P (temp))
+             {
+               result = expr_to_string (temp);
+               break;
+             }
+         }
+       result = decl_to_string (temp, verbose);
+      }
+      break;
     case 'E': result = expr_to_string (next_tree);             break;
     case 'F': result = fndecl_to_string (next_tree, verbose);  break;
     case 'L': result = language_to_string (next_lang);         break;
index 2eefcc0..37cc2e2 100644 (file)
@@ -1,3 +1,9 @@
+2006-12-03  Richard Henderson  <rth@redhat.com>
+            Andrew Pinski  <pinskia@gmail.com>
+
+       PR C++/14329
+       * g++.dg/warn/unit-1.C: New test.
+
 2006-12-03  Uros Bizjak  <ubizjak@gmail.com>
 
        * gcc.dg/visibility-11.c: Compile with -mstringop-strategy=libcall.
diff --git a/gcc/testsuite/g++.dg/warn/unit-1.C b/gcc/testsuite/g++.dg/warn/unit-1.C
new file mode 100644 (file)
index 0000000..1bfe75b
--- /dev/null
@@ -0,0 +1,10 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wuninitialized" } */
+
+struct a { int mode; };
+int sys_msgctl (void)
+{
+  struct a setbuf;  /* { dg-warning "'setbuf\.a::mode' is used" } */
+  return setbuf.mode;
+}
+