diff options
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/compiler/types.go | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/pkg/compiler/types.go b/pkg/compiler/types.go index 97f7d18c4..c41ce4bdf 100644 --- a/pkg/compiler/types.go +++ b/pkg/compiler/types.go @@ -244,9 +244,20 @@ var typeFlags = &typeDesc{ Kind: prog.IntPlain, } } + bitmask := true + var combined uint64 + values := genIntArray(f.Values) + for _, v := range values { + if v&combined != 0 { + bitmask = false + break + } + combined |= v + } return &prog.FlagsType{ IntTypeCommon: base, - Vals: genIntArray(f.Values), + Vals: values, + BitMask: bitmask, } }, } |
