dotnet/runtime

Add code to verify that operations on short/long bitsets operate on the correct epoch.

Open

#7.957 aberto em 26 de abr. de 2017

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)C# (5.445 forks)batch import
area-CodeGen-coreclrhelp wanted

Métricas do repositório

Stars
 (17.886 stars)
Métricas de merge de PR
 (Mesclagem média 12d 11h) (661 fundiu PRs em 30d)

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

Guia do colaborador