diff options
| -rw-r--r-- | ssa.c | 4 | ||||
| -rw-r--r-- | validation/mem2reg/init-local32.c | 2 |
2 files changed, 2 insertions, 4 deletions
@@ -30,8 +30,6 @@ static inline bool is_promotable(struct symbol *type) case SYM_RESTRICT: // OK, always integer types return 1; case SYM_STRUCT: - if (type->bit_size > long_ctype.bit_size) - return 0; // we allow a single scalar field // but a run of bitfields count for 1 nbr = 0; @@ -49,6 +47,8 @@ static inline bool is_promotable(struct symbol *type) if (nbr++) return 0; } END_FOR_EACH_PTR(member); + if (bf_seen && (type->bit_size > long_ctype.bit_size)) + return 0; return 1; case SYM_UNION: // FIXME: should be like struct but has problem diff --git a/validation/mem2reg/init-local32.c b/validation/mem2reg/init-local32.c index c988bb6e..9a65c205 100644 --- a/validation/mem2reg/init-local32.c +++ b/validation/mem2reg/init-local32.c @@ -21,8 +21,6 @@ double sdouble(void) /* * check-name: init-local32 * check-command: test-linearize -Wno-decl -m32 -fdump-ir=mem2reg $file - * check-known-to-fail - * * check-output-ignore * check-output-excludes: load\\. * check-output-excludes: store\\. |
