diff options
author | Andres Noetzli <andres.noetzli@gmail.com> | 2020-01-13 12:26:52 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-13 12:26:52 -0800 |
commit | 4e50d35447b5ee07304d2b857af388ea569db98b (patch) | |
tree | 7eb2497463ad1807dd0153b7e60c909f70cabb8d /src/decision | |
parent | 81a2e226251bea677f6a920004e846a08072c851 (diff) |
Support arbitrary unsigned integer attributes (#3591)
Fixes #3586. On macOS, `size_t` resolves to `unsigned long` whereas `uint64_t`
resolves to `unsigned long long`. Even though the types have the same bit-width
and signedness, they are not considered the same type. This caused issues with
`Attribute`s that store `size_t` values because we only specialized the
`getTable()` struct for `uint64_t`. This commit changes the specialization to
work for arbitrary unsigned integer types of at most 64-bit. It does that by
generalizing the specialization of `getTable()` and by implementing a
`KindValueToTableValueMapping` for unsigned integer attributes of up to 64-bit
that casts integers between the attributes bit-width and `uint64_t`.
Diffstat (limited to 'src/decision')
0 files changed, 0 insertions, 0 deletions