Add code to verify that operations on short/long bitsets operate on the correct epoch.
#7 957 ouverte le 26 avr. 2017
Métriques du dépôt
- Stars
- (17 886 stars)
- Métriques de merge PR
- (Merge moyen 12j 11h) (661 PRs mergées en 30 j)
Description
See the discussion in https://github.com/dotnet/coreclr/pull/11233 for more details.
These bitsets currently have no checks to ensure that the epoch in which a bitset was created matches the epoch in which it is being used. Depending on the actual representation and the operation, mismatching epochs can have a variety of harmful effects as they can cause out-of-bounds reads or writes.
@BruceForstall writes
Ideally, we would implement a DEBUG ShortLong representation bitset that also carried epoch along with every bitset, and asserted that operations between two bitsets were in the same epoch.
Which seems like a good suggestion.
category:testing theme:jit-coding-style skill-level:intermediate cost:small impact:small