aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/symbol.c
diff options
Diffstat (limited to 'symbol.c')
-rw-r--r--symbol.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/symbol.c b/symbol.c
index d6613524..1a083fb8 100644
--- a/symbol.c
+++ b/symbol.c
@@ -298,8 +298,8 @@ static struct symbol *examine_bitfield_type(struct symbol *sym)
sym->ctype.alignment = alignment;
modifiers = base_type->ctype.modifiers;
- /* Bitfields are unsigned, unless the base type was explicitly signed */
- if (!(modifiers & MOD_EXPLICITLY_SIGNED))
+ /* use -funsigned-bitfields to determine the sign if not explicit */
+ if (!(modifiers & MOD_EXPLICITLY_SIGNED) && funsigned_bitfields)
modifiers = (modifiers & ~MOD_SIGNED) | MOD_UNSIGNED;
sym->ctype.modifiers |= modifiers & MOD_SIGNEDNESS;
return sym;