From 4160009ff82996166b12cd9dd5b00228ccf28e91 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 26 Apr 1995 08:35:12 -0400 Subject: [PATCH] (output_init_element): Constructor is not simple if a bitfield is being assigned a non-integer. From-SVN: r9472 --- gcc/c-typeck.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index fd0eae04cfa..1873613a954 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -5707,7 +5707,10 @@ output_init_element (value, type, field, pending) constructor_erroneous = 1; else if (!TREE_CONSTANT (value)) constructor_constant = 0; - else if (initializer_constant_valid_p (value, TREE_TYPE (value)) == 0) + else if (initializer_constant_valid_p (value, TREE_TYPE (value)) == 0 + || ((TREE_CODE (constructor_type) == RECORD_TYPE + || TREE_CODE (constructor_type) == UNION_TYPE) + && DECL_BIT_FIELD (field) && TREE_CODE (value) != INTEGER_CST)) constructor_simple = 0; if (require_constant_value && ! TREE_CONSTANT (value)) -- 2.30.2