Closed zerbina closed 3 months ago
/merge
Merge requested by: @saem
Contents after the first section break of the PR description has been removed and preserved below:
## Notes for Reviewers * a latent issue that was surfaced by #1382 * I've built the tests locally with `-Werror=incompatible-pointer-types` enabled to make sure they compile
Summary
Fix a bug with hook synthesis that led to C compiler errors when using some closure procedures or
ref
s of non-top-levelobject
type.Details
sighashes
now uses the symbol ID as the object representation for anonymous object/enum types and object/enum types not defined at the top-levelhashType(x) != hashType(y)
whensameType(x, y) == false
, for object and enum typesref T
types that used the aforementioned types forT
Multiple same-shaped anonymous/non-top-level object types are not merged into a single one by the C code generator, which due to all sharing the same set of hook procedures, resulted in C compiler errors due to implicit conversions between incompatible pointer types.