Fix how empty function pointer cast tables are handled #6308
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes what I think is a fairly straightforward bug when
EMULATE_FUNCTION_POINTER_CASTS
is turned on.When compiling Python as here, some of the tables end up having 0 length. In that case, they look like
[]
and whenfixup_metadata_tables
tries to make all the tables the same length, it sets these empty ones to[,0,0]
rather than[0,0]
as it should. This triggers the assertion:later on in
make_function_tables_defs
, since many of the tables have the same empty string in the first entry in the table.This patch seems to get me to a working state, but I don't know if having empty tables in the first place is the sign of some deeper issue.