aboutsummaryrefslogtreecommitdiffstats
path: root/sys/test
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-30 19:34:41 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-30 19:34:41 +0200
commit664ef9a3e1016e80fc1fcbbef6e9f66a2ededfe6 (patch)
tree3f5829d9ad2ada25336f3bf98b85a65ec517c22e /sys/test
parent9054fae0162950c1fd961819f64b1ac90e5930b3 (diff)
pkg/compiler: check for unused declarations
Error on unused structs/unions/resources/flags. Finds tons of bugs.
Diffstat (limited to 'sys/test')
-rw-r--r--sys/test/gen/32.go12
-rw-r--r--sys/test/gen/64.go12
-rw-r--r--sys/test/test.txt1
3 files changed, 23 insertions, 2 deletions
diff --git a/sys/test/gen/32.go b/sys/test/gen/32.go
index b3790e0a4..2aedfcf95 100644
--- a/sys/test/gen/32.go
+++ b/sys/test/gen/32.go
@@ -407,6 +407,9 @@ var structDescs_32 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "pad", TypeSize: 4}}, IsPad: true},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "f1", TypeSize: 8}}, Buf: "f0"},
}}},
+ {Key: StructKey{Name: "syz_missing_const_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_missing_const_struct", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 4}}, Val: 1},
+ }}},
{Key: StructKey{Name: "syz_recur_0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_recur_0", TypeSize: 4}, Fields: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "syz_recur_0"}}},
}}},
@@ -485,6 +488,10 @@ var structDescs_32 = []*KeyedStruct{
{Key: StructKey{Name: "syz_union3"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_union3", TypeSize: 4}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "f0", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "syz_use_missing"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_use_missing", TypeSize: 8}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "a0", TypeSize: 4}},
+ &StructType{Key: StructKey{Name: "syz_missing_const_struct"}, FldName: "a1"},
+ }}},
{Key: StructKey{Name: "type_confusion"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "type_confusion", TypeSize: 1}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "f1", TypeSize: 1}}},
}}},
@@ -735,6 +742,9 @@ var syscalls_32 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_length_vma_struct"}}},
}},
{Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_test$missing_struct", CallName: "syz_test", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "syz_use_missing"}}},
+ }},
{Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 4, IsOptional: true}}},
}},
@@ -829,4 +839,4 @@ var consts_32 = []ConstValue{
{Name: "ONLY_32BITS_CONST", Value: 1},
}
-const revision_32 = "4c2bdbb514a55ad5a173660c10184a590dcd8928"
+const revision_32 = "a76874ba311d847b933d888f21392a7d837f1dce"
diff --git a/sys/test/gen/64.go b/sys/test/gen/64.go
index 904b56b8d..6778035d8 100644
--- a/sys/test/gen/64.go
+++ b/sys/test/gen/64.go
@@ -406,6 +406,9 @@ var structDescs_64 = []*KeyedStruct{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "f0", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "f1", TypeSize: 8}}, Buf: "f0"},
}}},
+ {Key: StructKey{Name: "syz_missing_const_struct"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_missing_const_struct", TypeSize: 4}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "a0", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "syz_recur_0"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_recur_0", TypeSize: 8}, Fields: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8, IsOptional: true}, Type: &StructType{Key: StructKey{Name: "syz_recur_0"}}},
}}},
@@ -484,6 +487,10 @@ var structDescs_64 = []*KeyedStruct{
{Key: StructKey{Name: "syz_union3"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_union3", TypeSize: 4}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "f0", TypeSize: 4}}},
}}},
+ {Key: StructKey{Name: "syz_use_missing"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "syz_use_missing", TypeSize: 8}, Fields: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "a0", TypeSize: 4}},
+ &StructType{Key: StructKey{Name: "syz_missing_const_struct"}, FldName: "a1"},
+ }}},
{Key: StructKey{Name: "type_confusion"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "type_confusion", TypeSize: 1}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "f1", TypeSize: 1}}},
}}},
@@ -734,6 +741,9 @@ var syscalls_64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a0", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_length_vma_struct"}}},
}},
{Name: "syz_test$missing_resource", CallName: "syz_test", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "syz_missing_const_res", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_test$missing_struct", CallName: "syz_test", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "a", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "syz_use_missing"}}},
+ }},
{Name: "syz_test$opt0", CallName: "syz_test", Args: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "a0", TypeSize: 8, IsOptional: true}}},
}},
@@ -827,4 +837,4 @@ var consts_64 = []ConstValue{
{Name: "IPPROTO_UDP", Value: 17},
}
-const revision_64 = "34eb49c0f2636be2ae3cff8b4b19a535846131fa"
+const revision_64 = "2bae1e3049afe17220914a995ab078c5510e19f3"
diff --git a/sys/test/test.txt b/sys/test/test.txt
index 0920e6996..491a62317 100644
--- a/sys/test/test.txt
+++ b/sys/test/test.txt
@@ -632,6 +632,7 @@ syz_test$res1(a0 syz_res)
resource syz_missing_const_res[int32]: ONLY_32BITS_CONST
syz_test$missing_resource() syz_missing_const_res
+syz_test$missing_struct(a ptr[in, syz_use_missing])
syz_missing_const_struct {
a0 const[ONLY_32BITS_CONST, int32]