OSDN Git Service

gcc/ChangeLog:
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Mar 2007 06:48:21 +0000 (06:48 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Mar 2007 06:48:21 +0000 (06:48 +0000)
* c-decl.c (grokdeclarator): Disable warnings for anonymous
bitfields.
* tree-sra.c (instantiate_element): Propagate disabled warnings
from the element itself to the created variable.
gcc/cp/ChangeLog:
* decl.c (grokdeclarator): Disable warnings for anonymous
bitfields.

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

gcc/ChangeLog
gcc/c-decl.c
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/tree-sra.c

index b3b40ed..21c0770 100644 (file)
@@ -1,3 +1,10 @@
+2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * c-decl.c (grokdeclarator): Disable warnings for anonymous
+       bitfields.
+       * tree-sra.c (instantiate_element): Propagate disabled warnings
+       from the element itself to the created variable.
+
 2007-03-07  Richard Henderson  <rth@redhat.com>
 
        PR target/30848
index b2bed24..0d9fce5 100644 (file)
@@ -4748,6 +4748,8 @@ grokdeclarator (const struct c_declarator *declarator,
        type = c_build_qualified_type (type, type_quals);
        decl = build_decl (FIELD_DECL, declarator->u.id, type);
        DECL_NONADDRESSABLE_P (decl) = bitfield;
+       if (bitfield && !declarator->u.id)
+         TREE_NO_WARNING (decl) = 1;
 
        if (size_varies)
          C_DECL_VARIABLE_SIZE (decl) = 1;
index 2db8d9c..de0dfd4 100644 (file)
@@ -1,3 +1,8 @@
+2007-03-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * decl.c (grokdeclarator): Disable warnings for anonymous
+       bitfields.
+
 2007-03-05  Volker Reichelt  <reichelt@netcologne.de>
 
        * typeck2.c (readonly_error): Always emit a hard error.
index 749cee3..62c1aaf 100644 (file)
@@ -1,6 +1,6 @@
 /* Process declarations and variables for C++ compiler.
    Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+   2001, 2002, 2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
    Contributed by Michael Tiemann (tiemann@cygnus.com)
 
 This file is part of GCC.
@@ -8539,6 +8539,9 @@ grokdeclarator (const cp_declarator *declarator,
              {
                decl = build_decl (FIELD_DECL, unqualified_id, type);
                DECL_NONADDRESSABLE_P (decl) = bitfield;
+               if (bitfield && !unqualified_id)
+                 TREE_NO_WARNING (decl) = 1;
+
                if (storage_class == sc_mutable)
                  {
                    DECL_MUTABLE_P (decl) = 1;
index ef7707f..9cf2cef 100644 (file)
@@ -1241,6 +1241,8 @@ instantiate_element (struct sra_elt *elt)
       
       DECL_IGNORED_P (var) = 0;
       TREE_NO_WARNING (var) = TREE_NO_WARNING (base);
+      if (elt->element && TREE_NO_WARNING (elt->element))
+       TREE_NO_WARNING (var) = 1;
     }
   else
     {