aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2019-05-14 16:21:19 +0200
committerDmitry Vyukov <dvyukov@google.com>2019-05-14 19:28:01 +0200
commit2376f0f937b8e6b457ef1fdf088b8b7059dcb0e2 (patch)
tree6a66d085190a488475a843ec8a138fd6a3c8e8a1 /sys
parent9a4969814ea6a65b306ca7d3192c23381c778ad4 (diff)
pkg/compiler: allow to refer to syscall arguments in len paths
This allows to use len[syscall:arg] expressions.
Diffstat (limited to 'sys')
-rw-r--r--sys/test/gen/64.go6
-rw-r--r--sys/test/test.txt1
2 files changed, 5 insertions, 2 deletions
diff --git a/sys/test/gen/64.go b/sys/test/gen/64.go
index c07a033db..09797261d 100644
--- a/sys/test/gen/64.go
+++ b/sys/test/gen/64.go
@@ -90,8 +90,10 @@ var structDescs_64 = []*KeyedStruct{
{Key: StructKey{Name: "explicitly_sized_union"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "explicitly_sized_union", TypeSize: 42}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "f1", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "len_expr1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "len_expr1", TypeSize: 64}, Fields: []Type{
+ {Key: StructKey{Name: "len_expr1"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "len_expr1", TypeSize: 72}, Fields: []Type{
&StructType{Key: StructKey{Name: "len_expr2"}, FldName: "f11"},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "f12", TypeSize: 4}}, BitSize: 8, Path: []string{"syscall", "a2"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
}}},
{Key: StructKey{Name: "len_expr2"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "len_expr2", TypeSize: 64}, Fields: []Type{
&StructType{Key: StructKey{Name: "len_expr3"}, FldName: "f21"},
@@ -1003,4 +1005,4 @@ var consts_64 = []ConstValue{
{Name: "SYS_unsupported"},
}
-const revision_64 = "3218225be4c9aad40c39be2b8bcb3008fd76ff1e"
+const revision_64 = "596ee9bf31191a84ff800056cadc632de17b3b28"
diff --git a/sys/test/test.txt b/sys/test/test.txt
index 9fd037bf3..73c43d83d 100644
--- a/sys/test/test.txt
+++ b/sys/test/test.txt
@@ -432,6 +432,7 @@ test$length29(a ptr[in, static_filename])
len_expr1 {
f11 len_expr2
+ f12 bytesize[syscall:a2, int32]
}
len_expr2 {