162306a36Sopenharmony_ci{
262306a36Sopenharmony_ci	"dead code: start",
362306a36Sopenharmony_ci	.insns = {
462306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
562306a36Sopenharmony_ci	BPF_LDX_MEM(BPF_B, BPF_REG_8, BPF_REG_9, 0),
662306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
762306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
862306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, -4),
962306a36Sopenharmony_ci	BPF_EXIT_INSN(),
1062306a36Sopenharmony_ci	},
1162306a36Sopenharmony_ci	.errstr_unpriv = "R9 !read_ok",
1262306a36Sopenharmony_ci	.result_unpriv = REJECT,
1362306a36Sopenharmony_ci	.result = ACCEPT,
1462306a36Sopenharmony_ci	.retval = 7,
1562306a36Sopenharmony_ci},
1662306a36Sopenharmony_ci{
1762306a36Sopenharmony_ci	"dead code: mid 1",
1862306a36Sopenharmony_ci	.insns = {
1962306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
2062306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1),
2162306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 0),
2262306a36Sopenharmony_ci	BPF_EXIT_INSN(),
2362306a36Sopenharmony_ci	},
2462306a36Sopenharmony_ci	.result = ACCEPT,
2562306a36Sopenharmony_ci	.retval = 7,
2662306a36Sopenharmony_ci},
2762306a36Sopenharmony_ci{
2862306a36Sopenharmony_ci	"dead code: mid 2",
2962306a36Sopenharmony_ci	.insns = {
3062306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_prandom_u32),
3162306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 4),
3262306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 1),
3362306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
3462306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
3562306a36Sopenharmony_ci	BPF_EXIT_INSN(),
3662306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 1),
3762306a36Sopenharmony_ci	BPF_EXIT_INSN(),
3862306a36Sopenharmony_ci	},
3962306a36Sopenharmony_ci	.result = ACCEPT,
4062306a36Sopenharmony_ci	.retval = 1,
4162306a36Sopenharmony_ci},
4262306a36Sopenharmony_ci{
4362306a36Sopenharmony_ci	"dead code: end 1",
4462306a36Sopenharmony_ci	.insns = {
4562306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
4662306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
4762306a36Sopenharmony_ci	BPF_EXIT_INSN(),
4862306a36Sopenharmony_ci	BPF_EXIT_INSN(),
4962306a36Sopenharmony_ci	},
5062306a36Sopenharmony_ci	.result = ACCEPT,
5162306a36Sopenharmony_ci	.retval = 7,
5262306a36Sopenharmony_ci},
5362306a36Sopenharmony_ci{
5462306a36Sopenharmony_ci	"dead code: end 2",
5562306a36Sopenharmony_ci	.insns = {
5662306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
5762306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
5862306a36Sopenharmony_ci	BPF_EXIT_INSN(),
5962306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
6062306a36Sopenharmony_ci	BPF_EXIT_INSN(),
6162306a36Sopenharmony_ci	},
6262306a36Sopenharmony_ci	.result = ACCEPT,
6362306a36Sopenharmony_ci	.retval = 7,
6462306a36Sopenharmony_ci},
6562306a36Sopenharmony_ci{
6662306a36Sopenharmony_ci	"dead code: end 3",
6762306a36Sopenharmony_ci	.insns = {
6862306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
6962306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
7062306a36Sopenharmony_ci	BPF_EXIT_INSN(),
7162306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
7262306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 1),
7362306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
7462306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, -5),
7562306a36Sopenharmony_ci	},
7662306a36Sopenharmony_ci	.result = ACCEPT,
7762306a36Sopenharmony_ci	.retval = 7,
7862306a36Sopenharmony_ci},
7962306a36Sopenharmony_ci{
8062306a36Sopenharmony_ci	"dead code: tail of main + func",
8162306a36Sopenharmony_ci	.insns = {
8262306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
8362306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
8462306a36Sopenharmony_ci	BPF_EXIT_INSN(),
8562306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
8662306a36Sopenharmony_ci	BPF_EXIT_INSN(),
8762306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
8862306a36Sopenharmony_ci	BPF_EXIT_INSN(),
8962306a36Sopenharmony_ci	},
9062306a36Sopenharmony_ci	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
9162306a36Sopenharmony_ci	.result_unpriv = REJECT,
9262306a36Sopenharmony_ci	.result = ACCEPT,
9362306a36Sopenharmony_ci	.retval = 7,
9462306a36Sopenharmony_ci},
9562306a36Sopenharmony_ci{
9662306a36Sopenharmony_ci	"dead code: tail of main + two functions",
9762306a36Sopenharmony_ci	.insns = {
9862306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
9962306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
10062306a36Sopenharmony_ci	BPF_EXIT_INSN(),
10162306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
10262306a36Sopenharmony_ci	BPF_EXIT_INSN(),
10362306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
10462306a36Sopenharmony_ci	BPF_EXIT_INSN(),
10562306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
10662306a36Sopenharmony_ci	BPF_EXIT_INSN(),
10762306a36Sopenharmony_ci	},
10862306a36Sopenharmony_ci	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
10962306a36Sopenharmony_ci	.result_unpriv = REJECT,
11062306a36Sopenharmony_ci	.result = ACCEPT,
11162306a36Sopenharmony_ci	.retval = 7,
11262306a36Sopenharmony_ci},
11362306a36Sopenharmony_ci{
11462306a36Sopenharmony_ci	"dead code: function in the middle and mid of another func",
11562306a36Sopenharmony_ci	.insns = {
11662306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 7),
11762306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 3),
11862306a36Sopenharmony_ci	BPF_EXIT_INSN(),
11962306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
12062306a36Sopenharmony_ci	BPF_EXIT_INSN(),
12162306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
12262306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 7, 1),
12362306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -5),
12462306a36Sopenharmony_ci	BPF_EXIT_INSN(),
12562306a36Sopenharmony_ci	},
12662306a36Sopenharmony_ci	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
12762306a36Sopenharmony_ci	.result_unpriv = REJECT,
12862306a36Sopenharmony_ci	.result = ACCEPT,
12962306a36Sopenharmony_ci	.retval = 7,
13062306a36Sopenharmony_ci},
13162306a36Sopenharmony_ci{
13262306a36Sopenharmony_ci	"dead code: middle of main before call",
13362306a36Sopenharmony_ci	.insns = {
13462306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 2),
13562306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 2, 1),
13662306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 5),
13762306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
13862306a36Sopenharmony_ci	BPF_EXIT_INSN(),
13962306a36Sopenharmony_ci	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
14062306a36Sopenharmony_ci	BPF_EXIT_INSN(),
14162306a36Sopenharmony_ci	},
14262306a36Sopenharmony_ci	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
14362306a36Sopenharmony_ci	.result_unpriv = REJECT,
14462306a36Sopenharmony_ci	.result = ACCEPT,
14562306a36Sopenharmony_ci	.retval = 2,
14662306a36Sopenharmony_ci},
14762306a36Sopenharmony_ci{
14862306a36Sopenharmony_ci	"dead code: start of a function",
14962306a36Sopenharmony_ci	.insns = {
15062306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 2),
15162306a36Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
15262306a36Sopenharmony_ci	BPF_EXIT_INSN(),
15362306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 0),
15462306a36Sopenharmony_ci	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
15562306a36Sopenharmony_ci	BPF_EXIT_INSN(),
15662306a36Sopenharmony_ci	},
15762306a36Sopenharmony_ci	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
15862306a36Sopenharmony_ci	.result_unpriv = REJECT,
15962306a36Sopenharmony_ci	.result = ACCEPT,
16062306a36Sopenharmony_ci	.retval = 2,
16162306a36Sopenharmony_ci},
16262306a36Sopenharmony_ci{
16362306a36Sopenharmony_ci	"dead code: zero extension",
16462306a36Sopenharmony_ci	.insns = {
16562306a36Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 0),
16662306a36Sopenharmony_ci	BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),
16762306a36Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1),
16862306a36Sopenharmony_ci	BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_10, -4),
16962306a36Sopenharmony_ci	BPF_EXIT_INSN(),
17062306a36Sopenharmony_ci	},
17162306a36Sopenharmony_ci	.result = ACCEPT,
17262306a36Sopenharmony_ci	.retval = 0,
17362306a36Sopenharmony_ci},
174