__u32 seq_num = ctx->meta->seq_num;
        unsigned long value;
        char type;
-       int ret;
 
        if (!iter)
                return 0;
 
        char cur_cc[TCP_CA_NAME_MAX];
        struct tcp_sock *tp;
        struct sock *sk;
-       int ret;
 
        if (!bpf_tcp_sk(ctx->sk_common))
                return 0;
 
 SEC("fentry/" SYS_PREFIX "sys_nanosleep")
 int prog_non_constant_callback(void *ctx)
 {
-       struct callback_ctx data = {};
-
        if (bpf_get_current_pid_tgid() >> 32 != pid)
                return 0;
 
 
 {
        struct prog_test_ref_kfunc *p;
        struct map_value *v;
-       unsigned long sl;
 
        v = bpf_map_lookup_elem(&array_map, &(int){0});
        if (!v)
 
 SEC("cgroup_skb/ingress")
 int ingress_lookup(struct __sk_buff *skb)
 {
-       __u32 serv_port_key = 0;
        struct ipv6hdr ip6h;
        struct tcphdr tcph;
 
 
        acquired = bpf_cgroup_acquire(cgrp);
 
        /* Acquired cgroup is never released. */
+       __sink(acquired);
 
        return 0;
 }
 
             struct sockaddr *uaddr, int addr_len, int flags)
 {
        struct socket_cookie *p;
-       struct tcp_sock *tcp_sk;
 
        if (uaddr->sa_family != AF_INET6)
                return 0;
 
 SEC("?iter.s/cgroup")
 int cgroup_iter(struct bpf_iter__cgroup *ctx)
 {
-       struct seq_file *seq = ctx->meta->seq;
        struct cgroup *cgrp = ctx->cgroup;
        long *ptr;
 
 
        void *data_end = (void *)(long)ctx->data_end;
        void *data = (void *)(long)ctx->data;
        void *ptr;
-       int ret = 0, nh_off, i = 0;
+       int nh_off, i = 0;
 
        nh_off = 14;
 
 
        struct bpf_cpumask *cpumask;
 
        cpumask = create_cpumask();
+       __sink(cpumask);
 
        /* cpumask is never released. */
        return 0;
 
        /* Can't acquire a non-struct bpf_cpumask. */
        cpumask = bpf_cpumask_acquire((struct bpf_cpumask *)task->cpus_ptr);
+       __sink(cpumask);
 
        return 0;
 }
 
        /* Can't set the CPU of a non-struct bpf_cpumask. */
        bpf_cpumask_set_cpu(0, (struct bpf_cpumask *)task->cpus_ptr);
+       __sink(cpumask);
 
        return 0;
 }
 
 int BPF_PROG(test_insert_leave, struct task_struct *task, u64 clone_flags)
 {
        struct bpf_cpumask *cpumask;
-       struct __cpumask_map_value *v;
 
        cpumask = create_cpumask();
        if (!cpumask)
 
 __failure __msg("value is outside of the allowed memory range")
 int data_slice_out_of_bounds_map_value(void *ctx)
 {
-       __u32 key = 0, map_val;
+       __u32 map_val;
        struct bpf_dynptr ptr;
        void *data;
 
                /* this should fail */
                *data2 = 3;
 
-done:
        bpf_ringbuf_discard_dynptr(&ptr, 0);
        return 0;
 }
 
        /* this should fail */
        data = bpf_dynptr_data(&ptr, 0, 1);
+       __sink(data);
 
        return 0;
 }
         * changing packet data
         */
        hdr = bpf_dynptr_slice_rdwr(&ptr, 0, buffer, sizeof(buffer));
+       __sink(hdr);
 
        return 0;
 }
 
 int test_read_write(void *ctx)
 {
        char write_data[64] = "hello there, world!!";
-       char read_data[64] = {}, buf[64] = {};
+       char read_data[64] = {};
        struct bpf_dynptr ptr;
        int i;
 
 {
        __u8 write_data[2] = {1, 2};
        struct bpf_dynptr ptr;
-       __u64 *data;
        int ret;
 
        if (bpf_dynptr_from_skb(skb, 0, &ptr)) {
 SEC("?cgroup_skb/egress")
 int test_dynptr_skb_data(struct __sk_buff *skb)
 {
-       __u8 write_data[2] = {1, 2};
        struct bpf_dynptr ptr;
        __u64 *data;
-       int ret;
 
        if (bpf_dynptr_from_skb(skb, 0, &ptr)) {
                err = 1;
 
        void *data = (void *)(long)skb->data;
        struct ipv6hdr ip6, *ip6p;
        int ifindex = skb->ifindex;
-       __u32 eth_proto;
-       __u32 nh_off;
 
        /* check that BPF extension can read packet via direct packet access */
        if (data + 14 + sizeof(ip6) > data_end)
 
 SEC("freplace/handle_kprobe")
 int new_handle_kprobe(struct pt_regs *ctx)
 {
-       struct hmap_elem zero = {}, *val;
+       struct hmap_elem *val;
        int key = 0;
 
        val = bpf_map_lookup_elem(&hash_map, &key);
 
 int iter_err_unsafe_asm_loop(const void *ctx)
 {
        struct bpf_iter_num it;
-       int *v, i = 0;
 
        MY_PID_GUARD();
 
 int iter_while_loop(const void *ctx)
 {
        struct bpf_iter_num it;
-       int *v, i;
+       int *v;
 
        MY_PID_GUARD();
 
 int iter_while_loop_auto_cleanup(const void *ctx)
 {
        __attribute__((cleanup(bpf_iter_num_destroy))) struct bpf_iter_num it;
-       int *v, i;
+       int *v;
 
        MY_PID_GUARD();
 
 int iter_for_loop(const void *ctx)
 {
        struct bpf_iter_num it;
-       int *v, i;
+       int *v;
 
        MY_PID_GUARD();
 
 int iter_manual_unroll_loop(const void *ctx)
 {
        struct bpf_iter_num it;
-       int *v, i;
+       int *v;
 
        MY_PID_GUARD();
 
 int iter_stack_array_loop(const void *ctx)
 {
        long arr1[16], arr2[16], sum = 0;
-       int *v, i;
+       int i;
 
        MY_PID_GUARD();
 
 
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_tracing.h>
 #include <bpf/bpf_core_read.h>
+#include "bpf_misc.h"
 
 /* weak and shared between two files */
 const volatile int my_tid __weak;
         * cause problems for BPF static linker
         */
        whatever = bpf_core_type_size(struct task_struct);
+       __sink(whatever);
 
        output_weak1 = x;
        return x;
 
        /* make sure we have CO-RE relocations in main program */
        whatever = bpf_core_type_size(struct task_struct);
+       __sink(whatever);
 
        set_output_val2(1000);
        set_output_ctx2(ctx); /* ctx definition is hidden in BPF_PROG macro */
 
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_tracing.h>
 #include <bpf/bpf_core_read.h>
+#include "bpf_misc.h"
 
 /* weak and shared between both files */
 const volatile int my_tid __weak;
         * cause problems for BPF static linker
         */
        whatever = 2 * bpf_core_type_size(struct task_struct);
+       __sink(whatever);
 
        output_weak2 = x;
        return 2 * x;
 
        /* make sure we have CO-RE relocations in main program */
        whatever = bpf_core_type_size(struct task_struct);
+       __sink(whatever);
 
        set_output_val1(2000);
        set_output_ctx1(ctx); /* ctx definition is hidden in BPF_PROG macro */
 
 int map_list_push_pop_multiple(void *ctx)
 {
        struct map_value *v;
-       int ret;
 
        v = bpf_map_lookup_elem(&array_map, &(int){0});
        if (!v)
 {
        struct map_value *v;
        void *map;
-       int ret;
 
        map = bpf_map_lookup_elem(&map_of_maps, &(int){0});
        if (!map)
 int map_list_in_list(void *ctx)
 {
        struct map_value *v;
-       int ret;
 
        v = bpf_map_lookup_elem(&array_map, &(int){0});
        if (!v)
 {
        struct map_value *v;
        void *map;
-       int ret;
 
        map = bpf_map_lookup_elem(&map_of_maps, &(int){0});
        if (!map)
 
 int incorrect_head_off2(void *ctx)
 {
        struct foo *f;
-       struct bar *b;
 
        f = bpf_obj_new(typeof(*f));
        if (!f)
 
             struct inode *new_dir, struct dentry *new_dentry,
             unsigned int flags)
 {
-       __u32 pid = bpf_get_current_pid_tgid() >> 32;
        struct local_storage *storage;
        int err;
 
 
 {
        struct task_struct *current;
        struct map_value *v;
-       int ret;
 
        current = bpf_get_current_task_btf();
        if (!current)
 {
        struct task_struct *current;
        struct map_value *v;
-       int ret;
 
        current = bpf_get_current_task_btf();
        if (!current)
 {
        struct task_struct *current;
        struct map_value *v;
-       int ret;
 
        current = bpf_get_current_task_btf();
        if (!current)
 
 int bpf_nextcnt(struct __sk_buff *skb)
 {
        union percpu_net_cnt *percpu_cnt;
-       char fmt[] = "%d %llu %llu\n";
        union net_cnt *cnt;
        __u64 ts, dt;
        int ret;
 
        do {                                                            \
                static const char _expectedval[EXPECTED_STRSIZE] =      \
                                                        _expected;      \
-               static const char _ptrtype[64] = #_type;                \
                __u64 _hflags = _flags | BTF_F_COMPACT;                 \
                static _type _ptrdata = __VA_ARGS__;                    \
                static struct btf_ptr _ptr = { };                       \
 
 SEC("fentry/" SYS_PREFIX "sys_getpgid")
 int bench_perfbuf(void *ctx)
 {
-       __u64 *sample;
        int i;
 
        for (i = 0; i < batch_cnt; i++) {
 
 SEC("raw_tracepoint/kfree_skb")
 int on_event(struct bpf_raw_tracepoint_args* ctx)
 {
-       int i, ret = 0;
+       int ret = 0;
        ret |= __on_event(ctx);
        ret |= __on_event(ctx);
        ret |= __on_event(ctx);
 
        struct bpf_list_node node;
 };
 
-static bool less(struct bpf_rb_node *a, const struct bpf_rb_node *b)
-{
-       struct node_data *node_a;
-       struct node_data *node_b;
-
-       node_a = container_of(a, struct node_data, node);
-       node_b = container_of(b, struct node_data, node);
-
-       return node_a->key < node_b->key;
-}
-
 #define private(name) SEC(".data." #name) __hidden __attribute__((aligned(8)))
 private(A) struct bpf_spin_lock glock;
 private(A) struct bpf_rb_root groot __contains(node_data, node);
 
 }
 
 SEC("?tc")
-__failure __msg("Unreleased reference id=2 alloc_insn=11")
+__failure __msg("Unreleased reference id=2 alloc_insn=10")
 long rbtree_api_remove_no_drop(void *ctx)
 {
        struct bpf_rb_node *res;
        res = bpf_rbtree_remove(&groot, res);
 
        n = container_of(res, struct node_data, node);
+       __sink(n);
        bpf_spin_unlock(&glock);
 
        /* bpf_obj_drop(n) is missing here */
 
 int miss_lock(void *ctx)
 {
        struct task_struct *task;
-       struct css_set *cgroups;
-       struct cgroup *dfl_cgrp;
 
        /* missing bpf_rcu_read_lock() */
        task = bpf_get_current_task_btf();
 int miss_unlock(void *ctx)
 {
        struct task_struct *task;
-       struct css_set *cgroups;
-       struct cgroup *dfl_cgrp;
 
        /* missing bpf_rcu_read_unlock() */
        task = bpf_get_current_task_btf();
 
 int BPF_PROG(read_bpf_task_storage_busy)
 {
        int *value;
-       int key;
 
        if (!CONFIG_PREEMPT)
                return 0;
 
 int recvmsg4_prog(struct bpf_sock_addr *ctx)
 {
        struct bpf_sock *sk;
-       __u32 user_ip4;
-       __u16 user_port;
 
        sk = ctx->sk;
        if (!sk)
 
 int recvmsg6_prog(struct bpf_sock_addr *ctx)
 {
        struct bpf_sock *sk;
-       __u32 user_ip4;
-       __u16 user_port;
 
        sk = ctx->sk;
        if (!sk)
 
 SEC("cgroup/sendmsg4")
 int sendmsg_v4_prog(struct bpf_sock_addr *ctx)
 {
-       int prio;
-
        if (ctx->type != SOCK_DGRAM)
                return 0;
 
 
 #include <linux/bpf.h>
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_endian.h>
+#include "bpf_misc.h"
 
 struct {
        __uint(type, BPF_MAP_TYPE_SOCKMAP);
        __u8 *d = data;
        __u8 sk, map;
 
+       __sink(lport);
+       __sink(rport);
+
        if (data + 8 > data_end)
                return SK_DROP;
 
 
        struct strobe_map_raw map;
        void *location;
        uint64_t len;
-       int i;
 
        descr->tag_len = 0; /* presume no tag is set */
        descr->cnt = -1; /* presume no value is set */
 
 #include <linux/bpf.h>
 #include <bpf/bpf_helpers.h>
 #include "bpf_legacy.h"
+#include "bpf_misc.h"
 
 struct {
        __uint(type, BPF_MAP_TYPE_PROG_ARRAY);
        else
                bpf_tail_call_static(skb, &jmp_table, 1);
 
+       __sink(arr[sizeof(arr) - 1]);
+
        return skb->len;
 }
 
 
        bpf_tail_call_static(skb, &jmp_table, 0);
 
+       __sink(arr[sizeof(arr) - 1]);
+
        return skb->len * 2;
 }
 
 {
        volatile char arr[128] = {};
 
+       __sink(arr[sizeof(arr) - 1]);
+
        return subprog_tail2(skb);
 }
 
 {
        volatile char arr[128] = {};
 
+       __sink(arr[sizeof(arr) - 1]);
+
        return skb->len * 3;
 }
 
 {
        volatile char arr[128] = {};
 
+       __sink(arr[sizeof(arr) - 1]);
+
        return subprog_tail(skb);
 }
 
 
 // SPDX-License-Identifier: GPL-2.0
 #include <linux/bpf.h>
 #include <bpf/bpf_helpers.h>
+#include "bpf_misc.h"
 
 #define __unused __attribute__((unused))
 
        /* Have data on stack which size is not a multiple of 8 */
        volatile char arr[1] = {};
 
+       __sink(arr[0]);
+
        return subprog_tail(skb);
 }
 
 
        acquired = bpf_task_acquire(task);
 
        /* Acquired task is never released. */
+       __sink(acquired);
 
        return 0;
 }
 
 SEC("tp_btf/task_newtask")
 int BPF_PROG(test_task_from_pid_arg, struct task_struct *task, u64 clone_flags)
 {
-       struct task_struct *acquired;
-
        if (!is_test_kfunc_task())
                return 0;
 
 SEC("tp_btf/task_newtask")
 int BPF_PROG(test_task_from_pid_current, struct task_struct *task, u64 clone_flags)
 {
-       struct task_struct *current, *acquired;
-
        if (!is_test_kfunc_task())
                return 0;
 
 SEC("tp_btf/task_newtask")
 int BPF_PROG(test_task_from_pid_invalid, struct task_struct *task, u64 clone_flags)
 {
-       struct task_struct *acquired;
-
        if (!is_test_kfunc_task())
                return 0;
 
 
        struct bpf_ct_opts___local opts_def = { .l4proto = IPPROTO_TCP, .netns_id = -1 };
        struct bpf_sock_tuple bpf_tuple;
        struct nf_conn *ct;
-       int err;
 
        __builtin_memset(&bpf_tuple, 0, sizeof(bpf_tuple.ipv4));
 
 
 
 static ret_t skip_next_hops(__u64 *offset, int n)
 {
-       __u32 res;
        switch (n) {
        case 1:
                *offset += sizeof(struct in_addr);
 
 {
        struct core_reloc_bitfields *in = (void *)&data.in;
        struct core_reloc_bitfields_output *out = (void *)&data.out;
-       uint64_t res;
 
        out->ub1 = BPF_CORE_READ_BITFIELD_PROBED(in, ub1);
        out->ub2 = BPF_CORE_READ_BITFIELD_PROBED(in, ub2);
 
 {
        volatile char buf[MAX_STACK] = {};
 
+       __sink(buf[MAX_STACK - 1]);
+
        return f0(0, skb) + skb->len;
 }
 
 {
        volatile char buf[MAX_STACK] = {};
 
+       __sink(buf[MAX_STACK - 1]);
+
        return skb->ifindex * val * var;
 }
 
 
 {
        volatile char buf[MAX_STACK] = {};
 
+       __sink(buf[MAX_STACK - 1]);
+
        return f0(0, skb) + skb->len;
 }
 
 {
        volatile char buf[MAX_STACK] = {};
 
+       __sink(buf[MAX_STACK - 1]);
+
        return skb->ifindex * val * var;
 }
 
 
 SEC("raw_tracepoint/sys_enter")
 int bpf_hash_large_key_test(void *ctx)
 {
-       int zero = 0, err = 1, value = 42;
+       int zero = 0, value = 42;
        struct bigelement *key;
 
        key = bpf_map_lookup_elem(&key_map, &zero);
 
 int handler2(const void *ctx)
 {
        int *active;
-       __u32 cpu;
 
        active = bpf_this_cpu_ptr(&bpf_prog_active);
        write_active(active);
 
 SEC("tp/raw_syscalls/sys_enter")
 int handle_modern(void *ctx)
 {
-       int zero = 0, cur_pid;
+       int cur_pid;
 
        cur_pid = bpf_get_current_pid_tgid() >> 32;
        if (cur_pid != my_pid_var)
 
 SEC("cgroup/skb")
 int bpf_map_lock_test(struct __sk_buff *skb)
 {
-       struct hmap_elem zero = {}, *val;
+       struct hmap_elem *val;
        int rnd = bpf_get_prandom_u32();
        int key = 0, err = 1, i;
        struct array_elem *q;
 
 #include <stddef.h>
 #include <linux/bpf.h>
 #include <bpf/bpf_helpers.h>
+#include "bpf_misc.h"
 
 struct {
        __uint(type, BPF_MAP_TYPE_ARRAY);
        __u64 *value;
 
        value = bpf_map_lookup_elem(&test_map_id, &key);
+       __sink(value);
 
        return 0;
 }
 
        __u8 tcp_hdr_opt_len = 0;
        struct tcphdr *tcp_hdr;
        __u64 tcp_offset = 0;
-       __u32 off;
        int err;
 
        tcp_offset = sizeof(struct ethhdr) + sizeof(struct ipv6hdr);
 
 static int parse_hdr_opt(struct bpf_dynptr *ptr, __u32 *off, __u8 *hdr_bytes_remaining,
                         __u32 *server_id)
 {
-       __u8 *tcp_opt, kind, hdr_len;
+       __u8 kind, hdr_len;
        __u8 buffer[sizeof(kind) + sizeof(hdr_len) + sizeof(*server_id)];
        __u8 *data;
 
 
 #include <linux/pkt_cls.h>
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_endian.h>
+#include "bpf_misc.h"
 
 /* llvm will optimize both subprograms into exactly the same BPF assembly
  *
 {
        volatile char buf[MAX_STACK] = {};
 
+       __sink(buf[MAX_STACK - 1]);
+
        return skb->len;
 }
 
 {
        volatile char buf[MAX_STACK] = {};
 
+       __sink(buf[MAX_STACK - 1]);
+
        return skb->ifindex * val * var;
 }
 
 
 {
        int cur_pid = bpf_get_current_pid_tgid() >> 32;
        struct sample *sample;
-       int zero = 0;
 
        if (cur_pid != pid)
                return 0;
 
        /* test using 'sample' (PTR_TO_MEM | MEM_ALLOC) as map key arg
         */
        lookup_val = (int *)bpf_map_lookup_elem(&hash_map, sample);
+       __sink(lookup_val);
 
        /* workaround - memcpy is necessary so that verifier doesn't
         * complain with:
 
        int cur_pid = bpf_get_current_pid_tgid() >> 32;
        struct sample *sample;
        void *rb;
-       int zero = 0;
 
        if (cur_pid != pid)
                return 0;
 
 int _select_by_skb_data(struct sk_reuseport_md *reuse_md)
 {
        __u32 linum, index = 0, flags = 0, index_zero = 0;
-       __u32 *result_cnt, *linum_value;
+       __u32 *result_cnt;
        struct data_check data_check = {};
        struct cmd *cmd, cmd_copy;
        void *data, *data_end;
 
 #include <sys/socket.h>
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_endian.h>
+#include "bpf_misc.h"
 
 #if defined(IPROUTE2_HAVE_LIBBPF)
 /* Use a new-style map definition. */
        void *data = (void *)(long)skb->data;
        struct bpf_sock_tuple *result;
        struct ethhdr *eth;
-       __u64 tuple_len;
        __u8 proto = 0;
        __u64 ihl_len;
 
                return NULL;
 
        *tcp = (proto == IPPROTO_TCP);
+       __sink(ihl_len);
        return result;
 }
 
        struct bpf_sock_tuple *tuple;
        bool ipv4 = false;
        bool tcp = false;
-       int tuple_len;
        int ret = 0;
 
        tuple = get_tuple(skb, &ipv4, &tcp);
 
 int ctx_narrow_access(struct bpf_sk_lookup *ctx)
 {
        struct bpf_sock *sk;
-       int err, family;
        __u32 val_u32;
        bool v4;
 
 SEC("sk_lookup")
 int multi_prog_redir1(struct bpf_sk_lookup *ctx)
 {
-       int ret;
-
-       ret = select_server_a(ctx);
+       (void)select_server_a(ctx);
        bpf_map_update_elem(&run_map, &KEY_PROG1, &PROG_DONE, BPF_ANY);
        return SK_PASS;
 }
 SEC("sk_lookup")
 int multi_prog_redir2(struct bpf_sk_lookup *ctx)
 {
-       int ret;
-
-       ret = select_server_a(ctx);
+       (void)select_server_a(ctx);
        bpf_map_update_elem(&run_map, &KEY_PROG2, &PROG_DONE, BPF_ANY);
        return SK_PASS;
 }
 
 {
        struct bpf_sock_tuple tuple = {};
        struct bpf_sock *sk;
-       __u32 family;
 
        sk = bpf_sk_lookup_tcp(skb, &tuple, sizeof(tuple), BPF_F_CURRENT_NETNS, 0);
        if (sk) {
 {
        struct bpf_sock_tuple tuple = {};
        struct bpf_sock *sk;
-       __u32 family;
 
        sk = bpf_sk_lookup_tcp(skb, &tuple, sizeof(tuple), BPF_F_CURRENT_NETNS, 0);
        sk += 1;
 
 SEC("cgroup_skb/egress")
 int egress_read_sock_fields(struct __sk_buff *skb)
 {
-       struct bpf_spinlock_cnt cli_cnt_init = { .lock = 0, .cnt = 0xeB9F };
+       struct bpf_spinlock_cnt cli_cnt_init = { .lock = {}, .cnt = 0xeB9F };
        struct bpf_spinlock_cnt *pkt_out_cnt, *pkt_out_cnt10;
        struct bpf_tcp_sock *tp, *tp_ret;
        struct bpf_sock *sk, *sk_ret;
 
 #include <sys/socket.h>
 #include <bpf/bpf_helpers.h>
 #include <bpf/bpf_endian.h>
+#include "bpf_misc.h"
 
 /* Sockmap sample program connects a client and a backend together
  * using cgroups.
        int len, *f, ret, zero = 0;
        __u64 flags = 0;
 
+       __sink(rport);
        if (lport == 10000)
                ret = 10;
        else
                ret = 1;
 
        len = (__u32)skb->data_end - (__u32)skb->data;
+       __sink(len);
+
        f = bpf_map_lookup_elem(&sock_skb_opts, &zero);
        if (f && *f) {
                ret = 3;
        if (err)
                return SK_DROP;
        bpf_write_pass(skb, 13);
-tls_out:
        return ret;
 }
 
 int bpf_sockmap(struct bpf_sock_ops *skops)
 {
        __u32 lport, rport;
-       int op, err = 0, index, key, ret;
-
+       int op, err, ret;
 
        op = (int) skops->op;
 
                break;
        }
 
+       __sink(err);
+
        return 0;
 }
 
        } else {
                return SK_DROP;
        }
+
+       __sink(data_end);
+       __sink(data);
+
        return SK_PASS;
 }
 SEC("sk_msg4")
 
 #include <linux/bpf.h>
 #include <linux/version.h>
 #include <bpf/bpf_helpers.h>
+#include "bpf_misc.h"
 
 struct hmap_elem {
        volatile int cnt;
        credit = q->credit;
        bpf_spin_unlock(&q->lock);
 
+       __sink(credit);
+
        /* spin_lock in cgroup local storage */
        cls = bpf_get_local_storage(&cls_map, 0);
        bpf_spin_lock(&cls->lock);
 
                ip6h = data + sizeof(struct ethhdr);
                if (ip6h + 1 > data_end)
                        return -1;
-               if (v6_equal(ip6h->saddr, (struct in6_addr)ip6_src))
+               if (v6_equal(ip6h->saddr, (struct in6_addr){{ip6_src}}))
                        ns = SRC_NS;
-               else if (v6_equal(ip6h->saddr, (struct in6_addr)ip6_dst))
+               else if (v6_equal(ip6h->saddr, (struct in6_addr){{ip6_dst}}))
                        ns = DST_NS;
                inet_proto = ip6h->nexthdr;
                trans = ip6h + 1;
 
                redirect = is_remote_ep_v4(skb, __bpf_constant_htonl(ip4_src));
                break;
        case __bpf_constant_htons(ETH_P_IPV6):
-               redirect = is_remote_ep_v6(skb, (struct in6_addr)ip6_src);
+               redirect = is_remote_ep_v6(skb, (struct in6_addr){{ip6_src}});
                break;
        }
 
                redirect = is_remote_ep_v4(skb, __bpf_constant_htonl(ip4_dst));
                break;
        case __bpf_constant_htons(ETH_P_IPV6):
-               redirect = is_remote_ep_v6(skb, (struct in6_addr)ip6_dst);
+               redirect = is_remote_ep_v6(skb, (struct in6_addr){{ip6_dst}});
                break;
        }
 
 
        struct bpf_sock_ops *reuse = skops;
        struct tcphdr *thdr;
        int window_clamp = 9216;
-       int good_call_rv = 0;
-       int bad_call_rv = 0;
        int save_syn = 1;
        int rv = -1;
        int v = 0;
 
 {
        struct bpf_tunnel_key key;
        struct erspan_metadata md;
-       __u32 index;
        int ret;
 
        ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key), 0);
 {
        struct bpf_tunnel_key key;
        struct erspan_metadata md;
-       __u32 index;
        int ret;
 
        ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key),
        int ret;
        struct bpf_tunnel_key key;
        struct vxlan_metadata md;
-       __u32 orig_daddr;
-       __u32 index = 0;
 
        ret = bpf_skb_get_tunnel_key(skb, &key, sizeof(key),
                                     BPF_F_TUNINFO_FLAGS);
        void *data_end = (void *)(long)skb->data_end;
        struct udphdr *udph;
        struct iphdr *iph;
-       __u32 index = 0;
        int ret = 0;
-       int shrink;
        __s64 csum;
 
        if ((void *)eth + sizeof(*eth) > data_end) {
 
 SEC("usdt//proc/self/exe:test:usdt_100")
 int BPF_USDT(usdt_100, int x)
 {
-       long tmp;
-
        if (my_pid != (bpf_get_current_pid_tgid() >> 32))
                return 0;
 
 
        void *data_end = (void *)(long)ctx->data_end;
        void *data = (void *)(long)ctx->data;
        void *ptr;
-       int ret = 0, nh_off, i = 0;
+       int nh_off, i = 0;
 
        nh_off = 14;
 
 
        void *data_end = (void *)(long)ctx->data_end;
        void *data = (void *)(long)ctx->data;
        void *ptr;
-       int ret = 0, nh_off, i = 0;
+       int nh_off, i = 0;
 
        nh_off = 14;
 
 
        void *data_end = (void *)(long)ctx->data_end;
        void *data = (void *)(long)ctx->data;
        void *ptr;
-       int ret = 0, nh_off, i = 0;
+       int nh_off, i = 0;
 
        nh_off = 32;
 
 
 SEC("xdp")
 int _xdp_adjust_tail_grow(struct xdp_md *xdp)
 {
-       void *data_end = (void *)(long)xdp->data_end;
-       void *data = (void *)(long)xdp->data;
        int data_len = bpf_xdp_get_buff_len(xdp);
        int offset = 0;
        /* SKB_DATA_ALIGN(sizeof(struct skb_shared_info)) */
 
 int BPF_PROG(trace_on_entry, struct xdp_buff *xdp)
 {
        struct meta meta;
-       void *data_end = (void *)(long)xdp->data_end;
-       void *data = (void *)(long)xdp->data;
 
        meta.ifindex = xdp->rxq->dev->ifindex;
        meta.pkt_len = bpf_xdp_get_buff_len((struct xdp_md *)xdp);
 
        struct iptnl_info *tnl;
        struct ethhdr *new_eth;
        struct ethhdr *old_eth;
-       __u32 transport_hdr_sz;
        struct iphdr *iph;
        __u16 *next_iph;
        __u16 payload_len;
        struct iptnl_info *tnl;
        struct ethhdr *new_eth;
        struct ethhdr *old_eth;
-       __u32 transport_hdr_sz;
        struct ipv6hdr *ip6h;
        __u16 payload_len;
        struct vip vip = {};
 
        return true;
 }
 
-static __attribute__ ((noinline))
-bool decap_v6(struct xdp_md *xdp, void **data, void **data_end, bool inner_v4)
-{
-       struct eth_hdr *new_eth;
-       struct eth_hdr *old_eth;
-
-       old_eth = *data;
-       new_eth = *data + sizeof(struct ipv6hdr);
-       memcpy(new_eth->eth_source, old_eth->eth_source, 6);
-       memcpy(new_eth->eth_dest, old_eth->eth_dest, 6);
-       if (inner_v4)
-               new_eth->eth_proto = 8;
-       else
-               new_eth->eth_proto = 56710;
-       if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct ipv6hdr)))
-               return false;
-       *data = (void *)(long)xdp->data;
-       *data_end = (void *)(long)xdp->data_end;
-       return true;
-}
-
-static __attribute__ ((noinline))
-bool decap_v4(struct xdp_md *xdp, void **data, void **data_end)
-{
-       struct eth_hdr *new_eth;
-       struct eth_hdr *old_eth;
-
-       old_eth = *data;
-       new_eth = *data + sizeof(struct iphdr);
-       memcpy(new_eth->eth_source, old_eth->eth_source, 6);
-       memcpy(new_eth->eth_dest, old_eth->eth_dest, 6);
-       new_eth->eth_proto = 8;
-       if (bpf_xdp_adjust_head(xdp, (int)sizeof(struct iphdr)))
-               return false;
-       *data = (void *)(long)xdp->data;
-       *data_end = (void *)(long)xdp->data_end;
-       return true;
-}
-
 static __attribute__ ((noinline))
 int swap_mac_and_send(void *data, void *data_end)
 {
        __u16 *next_iph_u16;
        __u32 tmp_addr = 0;
        struct iphdr *iph;
-       __u32 csum1 = 0;
        __u32 csum = 0;
        __u64 off = 0;
 
                                 void *data_end)
 {
        struct iphdr *iph;
-       __u64 iph_len;
        int action;
 
        iph = data + off;
        struct packet_description pckt = { };
        struct vip_definition vip = { };
        struct lb_stats *data_stats;
-       struct eth_hdr *eth = data;
        void *lru_map = &lru_cache;
        struct vip_meta *vip_info;
        __u32 lru_stats_key = 513;
        __u32 stats_key = 512;
        struct ctl_value *cval;
        __u16 pkt_bytes;
-       __u64 iph_len;
        __u8 protocol;
        __u32 vip_num;
        int action;
 
        return XDP_PASS;
 }
 
-static __always_inline
-void shift_mac_4bytes_16bit(void *data)
-{
-       __u16 *p = data;
-
-       p[7] = p[5]; /* delete p[7] was vlan_hdr->h_vlan_TCI */
-       p[6] = p[4]; /* delete p[6] was ethhdr->h_proto */
-       p[5] = p[3];
-       p[4] = p[2];
-       p[3] = p[1];
-       p[2] = p[0];
-}
-
 static __always_inline
 void shift_mac_4bytes_32bit(void *data)
 {
 
 int BPF_PROG(untrusted_ptr, struct pt_regs *regs, long id)
 {
        struct task_struct *task, *task_dup;
-       long *ptr;
 
        task = bpf_get_current_task_btf();
        task_dup = bpf_rdonly_cast(task, bpf_core_type_id_kernel(struct task_struct));
 
 int sock(struct bpf_sock *ctx)
 {
        int *sk_storage;
-       __u32 key;
 
        if (ctx->type != SOCK_DGRAM)
                return 1;
 int sock_release(struct bpf_sock *ctx)
 {
        int *sk_storage;
-       __u32 key;
 
        if (ctx->type != SOCK_DGRAM)
                return 1;
 
 int test_user_ringbuf_protocol(void *ctx)
 {
        long status = 0;
-       struct sample *sample = NULL;
-       struct bpf_dynptr ptr;
 
        if (!is_test_process())
                return 0;
 SEC("fentry/" SYS_PREFIX "sys_getpgid")
 int test_user_ringbuf(void *ctx)
 {
-       int status = 0;
-       struct sample *sample = NULL;
-       struct bpf_dynptr ptr;
-
        if (!is_test_process())
                return 0;
 
 
        struct tlv_hdr *tlv;
        struct udphdr *uh;
        __be16 port;
-       __u8 *cmd;
 
        if (eh + 1 > (struct ethhdr *)data_end)
                return -EINVAL;
 
 SEC("xdp")
 int xdping_client(struct xdp_md *ctx)
 {
-       void *data_end = (void *)(long)ctx->data_end;
        void *data = (void *)(long)ctx->data;
        struct pinginfo *pinginfo = NULL;
        struct ethhdr *eth = data;
 SEC("xdp")
 int xdping_server(struct xdp_md *ctx)
 {
-       void *data_end = (void *)(long)ctx->data_end;
        void *data = (void *)(long)ctx->data;
        struct ethhdr *eth = data;
        struct icmphdr *icmph;
 
        void *data = (void *)(long)(ctx->data);
        struct fw_match_info match_info = {};
        struct pkt_info info = {};
-       __u8 parse_err = NO_ERR;
        void *transport_hdr;
        struct ethhdr *eth;
        bool filter_res;