./:
commit843bd2fa78007c193692f6382edf3b6b5c2d3a62
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jun 2009 15:29:18 +0000 (19 15:29 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Jun 2009 15:29:18 +0000 (19 15:29 +0000)
tree0dea9b2fb4eca6aa396f8ba7b9c2513061e504ae
parent4a76ab2acb9e11d7a0fbb6ac702b781f73418a46
./:
* dse.c (struct store_info): Rename bitmap field to bmap.  Change
all uses.

* c-decl.c (in_struct, struct_types): Remove.
(struct c_binding): Add in_struct field.
(c_binding_ptr): Define type, along with VEC.
(struct c_struct_parse_info): Define.
(struct_parse_info): New static variable.
(bind): Initialize in_struct field.
(start_struct): Remove enclosing_in_struct and
enclosing_struct_types parameters.  Add
enclosing_struct_parse_info parameter.  Change all callers.  Set
struct_parse_info rather than in_struct and struct_types.
(grokfield): If -Wc++-compat and there is a symbol binding for the
field name, set the in_struct flag and push it on the
struct_parse_info->fields vector.
(warn_cxx_compat_finish_struct): New static function.
(finish_struct): Remove enclosing_in_struct and
enclosing_struct_types parameters.  Add
enclosing_struct_parse_info parameter.  Change all callers.  Don't
set C_TYPE_DEFINED_IN_STRUCT here.  Call
warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
parameter.  Only push on struct_types if warn_cxx_compat.
(finish_enum): Only push on struct_types if warn_cxx_compat.
(declspecs_add_type): Add loc parameter.  Change all callers.
Change all error calls to error_at.  Pass loc, not input_location,
to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
defined in a struct.  If -Wc++-compat and parsing a struct, record
that a typedef name was used.
* c-parser.c (c_parser_declspecs): Get location to pass to
declspecs_add_type.
(c_parser_struct_or_union_specifier): Update calls to start_struct
and finish_struct.
* c-tree.h (struct c_struct_parse_info): Declare.
(finish_struct, start_struct): Update declarations.
(declspecs_add_type): Update declaration.
objc/:
* objc-act.c (objc_in_struct, objc_struct_types): Remove.
(objc_struct_info): New static variable.
(objc_start_struct): Pass &objc_struct_info, not &objc_in_struct
and &objc_struct_types, to start_struct.
(objc_finish_struct): Likewise for finish_struct.
objcp/:
* objcp-decl.h (start_struct): Remove in_struct and struct_types
parameters.  Add struct_info parameter.
(finish_struct): Likewise.
testsuite/:
* gcc.dg/Wcxx-compat-15.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148709 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/c-decl.c
gcc/c-parser.c
gcc/c-tree.h
gcc/dse.c
gcc/objc/ChangeLog
gcc/objc/objc-act.c
gcc/objcp/ChangeLog
gcc/objcp/objcp-decl.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/Wcxx-compat-15.c [new file with mode: 0644]