diff options
author | Josh Rahm <joshuarahm@gmail.com> | 2024-11-27 11:21:40 -0700 |
---|---|---|
committer | Josh Rahm <joshuarahm@gmail.com> | 2024-11-27 11:21:40 -0700 |
commit | 83cfdf2bd4f9815a67576a0e34ef8b2bf19492aa (patch) | |
tree | 2a9557cf8564ed07ef2978ab7591a3e2bd057343 | |
parent | 7f5b64062ed975f856892d95e74b8d2f917ade66 (diff) | |
download | fiddle-83cfdf2bd4f9815a67576a0e34ef8b2bf19492aa.tar.gz fiddle-83cfdf2bd4f9815a67576a0e34ef8b2bf19492aa.tar.bz2 fiddle-83cfdf2bd4f9815a67576a0e34ef8b2bf19492aa.zip |
Fix bug where fiddle was incorrectly calculating the size of sub-bitfields structs
-rw-r--r-- | goal.fiddle | 8 | ||||
-rw-r--r-- | src/Language/Fiddle/Compiler/ConsistencyCheck.hs | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/goal.fiddle b/goal.fiddle index bf170ed..ed90ad3 100644 --- a/goal.fiddle +++ b/goal.fiddle @@ -251,7 +251,13 @@ package stm32l4.gpio { asc_r : (16); [[ export_as = "ascr_upper" ]] - reserved (16); + union { + reserved (16); + struct { + reserved (8); + wo upper_8 : (8); + }; + }; }; }; diff --git a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs index c34007f..f85d9d4 100644 --- a/src/Language/Fiddle/Compiler/ConsistencyCheck.hs +++ b/src/Language/Fiddle/Compiler/ConsistencyCheck.hs @@ -258,7 +258,7 @@ advanceRegisterBody Union {} -> do checkJagged decls' return $ maximum (map fst decls') - Struct {} -> return structSize + Struct {} -> return (structSize - startOffset) return (calcSize, RegisterBodyPattern us (map snd $ toList decls') a b) |