aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2002-01-29 17:19:58 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-01-29 17:19:58 +0000
commit8469e54e147147ee65ee899b20fd68493af85327 (patch)
tree21de1159c8ed89bada613b376351f07531e6dca3 /gcc/objc
parent6c54b16cef90d93555a96dc3542fea96b8a4c7fc (diff)
downloadgcc-8469e54e147147ee65ee899b20fd68493af85327.zip
gcc-8469e54e147147ee65ee899b20fd68493af85327.tar.gz
gcc-8469e54e147147ee65ee899b20fd68493af85327.tar.bz2
re PR c/3325 (cast of bit-field to same type gets discarded)
PR c/3325 * c-decl.c (enum_decl_context): Remove BITFIELD. (grokdeclarator): Take bitfield width as an input. Ensure bitfields are given the correct type. Perform bitfield width validation with build_bitfield_integer_type rather than waiting for finish_struct. (grok_typename, grok_typename_in_parm_context, start_decl, push_parmdecl, grokfield, start_function): Update calls to grokdeclarator. (build_bitfield_integer_type): New function. (finish_struct): Move bitfield validation to grokdeclarator and build_bitfield_integer_type. * tree.c (build_nonstandard_integer_type): New function. * tree.h (build_nonstandard_integer_type): New prototype. objc: * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge. testsuite: * gcc.c-torture/compile/20000224-1.c: Update. * gcc.c-torture/execute/bitfld-1.c: New tests. * gcc.dg/bitfld-1.c, bitfld-2.c: Diagnostic tests. * gcc.dg/uninit-A.c: Update. From-SVN: r49321
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/objc-act.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 0a57d65b..91b2223 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -2393,13 +2393,6 @@ objc_copy_list (list, head)
while (list)
{
tail = copy_node (list);
-
- /* The following statement fixes a bug when inheriting instance
- variables that are declared to be bitfields. finish_struct
- expects to find the width of the bitfield in DECL_INITIAL. */
- if (DECL_BIT_FIELD (tail) && DECL_INITIAL (tail) == 0)
- DECL_INITIAL (tail) = DECL_SIZE (tail);
-
newlist = chainon (newlist, tail);
list = TREE_CHAIN (list);
}