aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--prog/validation.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/prog/validation.go b/prog/validation.go
index ac874c49e..efd178a41 100644
--- a/prog/validation.go
+++ b/prog/validation.go
@@ -85,6 +85,18 @@ func (c *Call) validate(ctx *validCtx) error {
default:
return fmt.Errorf("syscall %v: filename arg '%v' has bad kind %v", c.Meta.Name, typ.Name(), arg.Kind)
}
+ case *sys.StructType, *sys.ArrayType:
+ switch arg.Kind {
+ case ArgGroup:
+ default:
+ return fmt.Errorf("syscall %v: struct/array arg '%v' has bad kind %v", c.Meta.Name, typ.Name(), arg.Kind)
+ }
+ case *sys.UnionType:
+ switch arg.Kind {
+ case ArgUnion:
+ default:
+ return fmt.Errorf("syscall %v: union arg '%v' has bad kind %v", c.Meta.Name, typ.Name(), arg.Kind)
+ }
}
switch arg.Kind {
case ArgConst: