Commit ab53bae2 by Alexandre Oliva Committed by Alexandre Oliva

c-decl.c (grokdeclarator): Disable warnings for anonymous bitfields.

gcc/ChangeLog:
* 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.

From-SVN: r122684
parent cd265edd
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> 2007-03-07 Richard Henderson <rth@redhat.com>
PR target/30848 PR target/30848
......
...@@ -4748,6 +4748,8 @@ grokdeclarator (const struct c_declarator *declarator, ...@@ -4748,6 +4748,8 @@ grokdeclarator (const struct c_declarator *declarator,
type = c_build_qualified_type (type, type_quals); type = c_build_qualified_type (type, type_quals);
decl = build_decl (FIELD_DECL, declarator->u.id, type); decl = build_decl (FIELD_DECL, declarator->u.id, type);
DECL_NONADDRESSABLE_P (decl) = bitfield; DECL_NONADDRESSABLE_P (decl) = bitfield;
if (bitfield && !declarator->u.id)
TREE_NO_WARNING (decl) = 1;
if (size_varies) if (size_varies)
C_DECL_VARIABLE_SIZE (decl) = 1; C_DECL_VARIABLE_SIZE (decl) = 1;
......
2007-03-08 Alexandre Oliva <aoliva@redhat.com>
* decl.c (grokdeclarator): Disable warnings for anonymous
bitfields.
2007-03-05 Volker Reichelt <reichelt@netcologne.de> 2007-03-05 Volker Reichelt <reichelt@netcologne.de>
* typeck2.c (readonly_error): Always emit a hard error. * typeck2.c (readonly_error): Always emit a hard error.
......
/* Process declarations and variables for C++ compiler. /* Process declarations and variables for C++ compiler.
Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 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) Contributed by Michael Tiemann (tiemann@cygnus.com)
This file is part of GCC. This file is part of GCC.
...@@ -8539,6 +8539,9 @@ grokdeclarator (const cp_declarator *declarator, ...@@ -8539,6 +8539,9 @@ grokdeclarator (const cp_declarator *declarator,
{ {
decl = build_decl (FIELD_DECL, unqualified_id, type); decl = build_decl (FIELD_DECL, unqualified_id, type);
DECL_NONADDRESSABLE_P (decl) = bitfield; DECL_NONADDRESSABLE_P (decl) = bitfield;
if (bitfield && !unqualified_id)
TREE_NO_WARNING (decl) = 1;
if (storage_class == sc_mutable) if (storage_class == sc_mutable)
{ {
DECL_MUTABLE_P (decl) = 1; DECL_MUTABLE_P (decl) = 1;
......
...@@ -1241,6 +1241,8 @@ instantiate_element (struct sra_elt *elt) ...@@ -1241,6 +1241,8 @@ instantiate_element (struct sra_elt *elt)
DECL_IGNORED_P (var) = 0; DECL_IGNORED_P (var) = 0;
TREE_NO_WARNING (var) = TREE_NO_WARNING (base); TREE_NO_WARNING (var) = TREE_NO_WARNING (base);
if (elt->element && TREE_NO_WARNING (elt->element))
TREE_NO_WARNING (var) = 1;
} }
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment