mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
f83e513eb7
A logic bug caused the wrong detection of nodes with many fields. As a result, the field deduplication was only executed on a subset of the real candidates. This caused the following two problems. - Degradation of the quality of the results, i.e. unions that could be deduplicated were not deduplicated. - Failing assertions in rare cases. The algorithm assumes that if it's looking at the children (C1, ..., Cn) of node A to be deduplicated, then all (C1, ..., Cn) have beed already visited, hence they don't have children that should be duplicated because they would have been deduplicated already, when looking at (C1, ..., Cn). The bug possibly caused to miss the deduplication of children of Ci (for some i) causing assertions to fail when looking at A to deduplicate (C1, ..., Cn).