18c2ecf20Sopenharmony_ci{
28c2ecf20Sopenharmony_ci	"dead code: start",
38c2ecf20Sopenharmony_ci	.insns = {
48c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
58c2ecf20Sopenharmony_ci	BPF_LDX_MEM(BPF_B, BPF_REG_8, BPF_REG_9, 0),
68c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
78c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
88c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, -4),
98c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
108c2ecf20Sopenharmony_ci	},
118c2ecf20Sopenharmony_ci	.errstr_unpriv = "R9 !read_ok",
128c2ecf20Sopenharmony_ci	.result_unpriv = REJECT,
138c2ecf20Sopenharmony_ci	.result = ACCEPT,
148c2ecf20Sopenharmony_ci	.retval = 7,
158c2ecf20Sopenharmony_ci},
168c2ecf20Sopenharmony_ci{
178c2ecf20Sopenharmony_ci	"dead code: mid 1",
188c2ecf20Sopenharmony_ci	.insns = {
198c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
208c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1),
218c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 0),
228c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
238c2ecf20Sopenharmony_ci	},
248c2ecf20Sopenharmony_ci	.result = ACCEPT,
258c2ecf20Sopenharmony_ci	.retval = 7,
268c2ecf20Sopenharmony_ci},
278c2ecf20Sopenharmony_ci{
288c2ecf20Sopenharmony_ci	"dead code: mid 2",
298c2ecf20Sopenharmony_ci	.insns = {
308c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_prandom_u32),
318c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 4),
328c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 1),
338c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
348c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
358c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
368c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 1),
378c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
388c2ecf20Sopenharmony_ci	},
398c2ecf20Sopenharmony_ci	.result = ACCEPT,
408c2ecf20Sopenharmony_ci	.retval = 1,
418c2ecf20Sopenharmony_ci},
428c2ecf20Sopenharmony_ci{
438c2ecf20Sopenharmony_ci	"dead code: end 1",
448c2ecf20Sopenharmony_ci	.insns = {
458c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
468c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
478c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
488c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
498c2ecf20Sopenharmony_ci	},
508c2ecf20Sopenharmony_ci	.result = ACCEPT,
518c2ecf20Sopenharmony_ci	.retval = 7,
528c2ecf20Sopenharmony_ci},
538c2ecf20Sopenharmony_ci{
548c2ecf20Sopenharmony_ci	"dead code: end 2",
558c2ecf20Sopenharmony_ci	.insns = {
568c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
578c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
588c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
598c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
608c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
618c2ecf20Sopenharmony_ci	},
628c2ecf20Sopenharmony_ci	.result = ACCEPT,
638c2ecf20Sopenharmony_ci	.retval = 7,
648c2ecf20Sopenharmony_ci},
658c2ecf20Sopenharmony_ci{
668c2ecf20Sopenharmony_ci	"dead code: end 3",
678c2ecf20Sopenharmony_ci	.insns = {
688c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
698c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
708c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
718c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
728c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 1),
738c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
748c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, -5),
758c2ecf20Sopenharmony_ci	},
768c2ecf20Sopenharmony_ci	.result = ACCEPT,
778c2ecf20Sopenharmony_ci	.retval = 7,
788c2ecf20Sopenharmony_ci},
798c2ecf20Sopenharmony_ci{
808c2ecf20Sopenharmony_ci	"dead code: tail of main + func",
818c2ecf20Sopenharmony_ci	.insns = {
828c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
838c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
848c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
858c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
868c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
878c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
888c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
898c2ecf20Sopenharmony_ci	},
908c2ecf20Sopenharmony_ci	.errstr_unpriv = "function calls to other bpf functions are allowed for",
918c2ecf20Sopenharmony_ci	.result_unpriv = REJECT,
928c2ecf20Sopenharmony_ci	.result = ACCEPT,
938c2ecf20Sopenharmony_ci	.retval = 7,
948c2ecf20Sopenharmony_ci},
958c2ecf20Sopenharmony_ci{
968c2ecf20Sopenharmony_ci	"dead code: tail of main + two functions",
978c2ecf20Sopenharmony_ci	.insns = {
988c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
998c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
1008c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1018c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
1028c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1038c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
1048c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1058c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
1068c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1078c2ecf20Sopenharmony_ci	},
1088c2ecf20Sopenharmony_ci	.errstr_unpriv = "function calls to other bpf functions are allowed for",
1098c2ecf20Sopenharmony_ci	.result_unpriv = REJECT,
1108c2ecf20Sopenharmony_ci	.result = ACCEPT,
1118c2ecf20Sopenharmony_ci	.retval = 7,
1128c2ecf20Sopenharmony_ci},
1138c2ecf20Sopenharmony_ci{
1148c2ecf20Sopenharmony_ci	"dead code: function in the middle and mid of another func",
1158c2ecf20Sopenharmony_ci	.insns = {
1168c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 7),
1178c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 3),
1188c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1198c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 12),
1208c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1218c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_0, 7),
1228c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 7, 1),
1238c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -5),
1248c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1258c2ecf20Sopenharmony_ci	},
1268c2ecf20Sopenharmony_ci	.errstr_unpriv = "function calls to other bpf functions are allowed for",
1278c2ecf20Sopenharmony_ci	.result_unpriv = REJECT,
1288c2ecf20Sopenharmony_ci	.result = ACCEPT,
1298c2ecf20Sopenharmony_ci	.retval = 7,
1308c2ecf20Sopenharmony_ci},
1318c2ecf20Sopenharmony_ci{
1328c2ecf20Sopenharmony_ci	"dead code: middle of main before call",
1338c2ecf20Sopenharmony_ci	.insns = {
1348c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 2),
1358c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 2, 1),
1368c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 5),
1378c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
1388c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1398c2ecf20Sopenharmony_ci	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
1408c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1418c2ecf20Sopenharmony_ci	},
1428c2ecf20Sopenharmony_ci	.errstr_unpriv = "function calls to other bpf functions are allowed for",
1438c2ecf20Sopenharmony_ci	.result_unpriv = REJECT,
1448c2ecf20Sopenharmony_ci	.result = ACCEPT,
1458c2ecf20Sopenharmony_ci	.retval = 2,
1468c2ecf20Sopenharmony_ci},
1478c2ecf20Sopenharmony_ci{
1488c2ecf20Sopenharmony_ci	"dead code: start of a function",
1498c2ecf20Sopenharmony_ci	.insns = {
1508c2ecf20Sopenharmony_ci	BPF_MOV64_IMM(BPF_REG_1, 2),
1518c2ecf20Sopenharmony_ci	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
1528c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1538c2ecf20Sopenharmony_ci	BPF_JMP_IMM(BPF_JA, 0, 0, 0),
1548c2ecf20Sopenharmony_ci	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
1558c2ecf20Sopenharmony_ci	BPF_EXIT_INSN(),
1568c2ecf20Sopenharmony_ci	},
1578c2ecf20Sopenharmony_ci	.errstr_unpriv = "function calls to other bpf functions are allowed for",
1588c2ecf20Sopenharmony_ci	.result_unpriv = REJECT,
1598c2ecf20Sopenharmony_ci	.result = ACCEPT,
1608c2ecf20Sopenharmony_ci	.retval = 2,
1618c2ecf20Sopenharmony_ci},
162