aboutsummaryrefslogtreecommitdiffstats
path: root/prog/prio.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-12-29 15:00:57 +0100
committerDmitry Vyukov <dvyukov@google.com>2015-12-29 15:00:57 +0100
commite6529b30ec934f285d57dc16dd8acbbab074f102 (patch)
tree9bf9673e44997f24e702833904294f3116d4f209 /prog/prio.go
parentd40104b8a35f01d31cad1f11e312e76e034ffc4a (diff)
sys: add union type
Diffstat (limited to 'prog/prio.go')
-rw-r--r--prog/prio.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/prog/prio.go b/prog/prio.go
index 2e6e46da2..d6621cb2c 100644
--- a/prog/prio.go
+++ b/prog/prio.go
@@ -80,6 +80,12 @@ func calcStaticPriorities() [][]float32 {
if _, ok := a.Type.(sys.StructType); ok {
noteUsage(1.0, "ptrto-%v", a.Type.Name())
}
+ if _, ok := a.Type.(sys.UnionType); ok {
+ noteUsage(1.0, "ptrto-%v", a.Type.Name())
+ }
+ if arr, ok := a.Type.(sys.ArrayType); ok {
+ noteUsage(1.0, "ptrto-%v", arr.Type.Name())
+ }
case sys.BufferType:
switch a.Kind {
case sys.BufferBlob, sys.BufferFilesystem, sys.BufferAlgType, sys.BufferAlgName:
@@ -207,6 +213,10 @@ func foreachArgType(meta *sys.Call, f func(sys.Type, ArgDir)) {
for _, f := range a.Fields {
rec(f, d)
}
+ case sys.UnionType:
+ for _, opt := range a.Options {
+ rec(opt, d)
+ }
case sys.ResourceType, sys.FileoffType, sys.BufferType,
sys.VmaType, sys.LenType, sys.FlagsType, sys.ConstType,
sys.StrConstType, sys.IntType, sys.FilenameType: