17cb29b1cSKumar Kartikeya Dwivedi // SPDX-License-Identifier: GPL-2.0-only
27cb29b1cSKumar Kartikeya Dwivedi #include <vmlinux.h>
37cb29b1cSKumar Kartikeya Dwivedi #include <bpf/bpf_helpers.h>
495ebb376SAndrii Nakryiko #include "bpf_misc.h"
57cb29b1cSKumar Kartikeya Dwivedi 
foo(int * p)67cb29b1cSKumar Kartikeya Dwivedi __noinline int foo(int *p)
77cb29b1cSKumar Kartikeya Dwivedi {
8*e02851adSYonghong Song 	barrier_var(p);
97cb29b1cSKumar Kartikeya Dwivedi 	return p ? (*p = 42) : 0;
107cb29b1cSKumar Kartikeya Dwivedi }
117cb29b1cSKumar Kartikeya Dwivedi 
127cb29b1cSKumar Kartikeya Dwivedi const volatile int i;
137cb29b1cSKumar Kartikeya Dwivedi 
147cb29b1cSKumar Kartikeya Dwivedi SEC("tc")
1595ebb376SAndrii Nakryiko __failure __msg("Caller passes invalid args into func#1")
global_func17(struct __sk_buff * skb)1695ebb376SAndrii Nakryiko int global_func17(struct __sk_buff *skb)
177cb29b1cSKumar Kartikeya Dwivedi {
187cb29b1cSKumar Kartikeya Dwivedi 	return foo((int *)&i);
197cb29b1cSKumar Kartikeya Dwivedi }
20