aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--ssa.c3
-rw-r--r--validation/mem2reg/packed-bitfield.c1
2 files changed, 3 insertions, 1 deletions
diff --git a/ssa.c b/ssa.c
index 3f4fa1a8..26d46baa 100644
--- a/ssa.c
+++ b/ssa.c
@@ -32,6 +32,9 @@ static inline bool is_promotable(struct symbol *type)
case SYM_STRUCT:
// we allow a single scalar field
// but a run of bitfields count for 1
+ // (and packed bifields are excluded).
+ if (type->packed)
+ return 0;
nbr = 0;
bf_seen = 0;
FOR_EACH_PTR(type->symbol_list, member) {
diff --git a/validation/mem2reg/packed-bitfield.c b/validation/mem2reg/packed-bitfield.c
index 4eaf0bef..f3ee259a 100644
--- a/validation/mem2reg/packed-bitfield.c
+++ b/validation/mem2reg/packed-bitfield.c
@@ -12,7 +12,6 @@ static void foo(struct s s)
/*
* check-name: packed-bitfield
* check-command: test-linearize -fmem2reg $file
- * check-known-to-fail
*
* check-output-contains: store.32
* check-output-contains: load.16