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>
PR target/30848
......
......@@ -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;
......
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.
......
/* 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;
......
......@@ -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
{
......
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