Select case as const, check jump table size #163
Merged
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.
Check for ranges that would produce unreasonably large jump tables (greater than 8192 entries)
I am confident, due all previous testing, that fbc was already correctly doing the following:
select case as constin the emittercase from-value to to-valuestatements and error on range too largeThe main check missing, is an overall range check for the entire
select case as const...end selectcompound structure.This update adds checks to ensure that while parsing the
select case as conststructure, that nocasestatement is out of range + or - 8192 from the firstcasestatement range value. And that overall range is maximum of 8192 upon reaching theend selectstatement.