aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/compiler/types.go13
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,
}
},
}