Alastair Robertson
df5ae4e34c
AlignmentCalc: Array alignment should be based on elementType's alignment
2023-07-25 14:23:01 +01:00
Alastair Robertson
dfc0c62749
AlignmentCalc: Tests for bitfields
...
Extend TypeGraphParser to understand bitfields
2023-07-25 14:23:01 +01:00
Alastair Robertson
14d193df64
AlignmentCalc: Recurse into params,parents,members,children of Classes
2023-07-25 14:23:01 +01:00
Alastair Robertson
e1b16a3d7e
TypeGraph: Switch from pointers to references
...
References must always have a value, so are semantically clearer than
pointers for variables which must always be set.
No functional changes.
2023-07-06 17:24:33 +01:00
Alastair Robertson
23efc8d2d6
TypeGraph: Add Node IDs to non-leaf types
...
These aren't used for anything yet, but should be useful for stable IDs
when printing nodes before and after passes and for faster cycle
detection than the current map of pointers.
2023-07-06 14:54:30 +01:00
Alastair Robertson
e86ebb7aff
TypeGraph: Support bitfields
...
- Change member and parent offsets to work in bits, not bytes
- Printer still displays offsets in bytes, with decimals when using
bitfields
- AddPadding: Don't pad bitfields
- CodeGen: Emit code for bitfields
2023-07-05 13:23:23 +01:00
Alastair Robertson
5560624c0b
Unit tests: Move last remaining tests onto using the type_graph_utils helpers
2023-07-04 17:18:43 +01:00
Alastair Robertson
00b46377a1
Unit tests: Remove unnecessary make_unique calls
...
This was a purely mechanical change made with some find-and-replace
macros.
2023-07-04 17:18:43 +01:00
Alastair Robertson
bd919ae4e4
TypeGraph: Add core code
...
This code mostly works, but is obviously not complete. This commit just
adds the code and tests, but does not enable it in OID or OIL.
2023-05-30 13:27:23 +01:00