]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/c-family/c-common.c
2004-07-08 Joseph S. Myers <jsm@polyomino.org.uk>
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2004 08:45:05 +0000 (08:45 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2004 08:45:05 +0000 (08:45 +0000)
commit4f7f7efd45b15639029ff88aa51f27e284dd381c
tree69763a66482d42b14599835106ea027f80e7499e
parent07648566379bd442b9bd7479f77c16ad431c8a82
2004-07-08  Joseph S. Myers  <jsm@polyomino.org.uk>
            Neil Booth  <neil@daikokuya.co.uk>

PR c/2511
PR c/3325
* c-decl.c (finish_struct): Ensure bit-fields are given the
correct type.
* c-common.c (c_common_signed_or_unsigned_type): For C, require
the precision to match as well as the mode.
* expr.c (reduce_to_bit_field_precision): New function.
(expand_expr_real_1): Reduce expressions of bit-field type to
proper precision.
* langhooks.h (reduce_bit_field_operations): New hook.
* langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS):
Define.
* c-lang.c, objc/objc-lang.c
(LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define.
* objc/objc-act.c (check_ivars): Convert types to bit-field types
before checking.
* tree.c (build_nonstandard_integer_type): New function.
* tree.h (build_nonstandard_integer_type): New prototype.
* tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat
conversions between integer and boolean types as useless.

testsuite:
* gcc.c-torture/execute/bitfld-1.x: Remove.
* gcc.c-torture/execute/bitfld-3.c: New test.
* gcc.dg/bitfld-2.c: Remove XFAILs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84279 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/ChangeLog
gcc/c-common.c
gcc/c-decl.c
gcc/c-lang.c
gcc/expr.c
gcc/langhooks-def.h
gcc/langhooks.h
gcc/objc/objc-act.c
gcc/objc/objc-lang.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/bitfld-1.x [deleted file]
gcc/testsuite/gcc.c-torture/execute/bitfld-3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/bitfld-2.c
gcc/tree-ssa.c
gcc/tree.c
gcc/tree.h