From: Jason Merrill Date: Mon, 4 Dec 1995 23:56:00 +0000 (+0000) Subject: (finish_struct): Don't mess with the type of bitfields. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=57883245f35ac30d83c43339b45927b1cb20e4e6;p=gcc.git (finish_struct): Don't mess with the type of bitfields. From-SVN: r10673 --- diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 20165214f94..68d61db5791 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -5690,27 +5690,6 @@ finish_struct (t, fieldlist, attributes) TYPE_ALIGN (x) = TYPE_ALIGN (t); } - /* Promote each bit-field's type to int if it is narrower than that. */ - for (x = fieldlist; x; x = TREE_CHAIN (x)) - if (DECL_BIT_FIELD (x) - && (C_PROMOTING_INTEGER_TYPE_P (TREE_TYPE (x)) - || DECL_FIELD_SIZE (x) < TYPE_PRECISION (integer_type_node))) - { - tree type = TREE_TYPE (x); - - /* Preserve unsignedness if traditional - or if not really getting any wider. */ - if (TREE_UNSIGNED (type) - && (flag_traditional - || - (TYPE_PRECISION (type) == TYPE_PRECISION (integer_type_node) - && - DECL_FIELD_SIZE (x) == TYPE_PRECISION (integer_type_node)))) - TREE_TYPE (x) = unsigned_type_node; - else - TREE_TYPE (x) = integer_type_node; - } - /* If this was supposed to be a transparent union, but we can't make it one, warn and turn off the flag. */ if (TREE_CODE (t) == UNION_TYPE