mirror of git://gcc.gnu.org/git/gcc.git
bpf: add tests for CO-RE and BTF tag interaction
Add a couple of tests to ensure that BTF type/decl tags do not interfere with generation of BPF CO-RE relocations. gcc/testsuite/ * gcc.target/bpf/core-btf-tag-1.c: New test. * gcc.target/bpf/core-btf-tag-2.c: New test.
This commit is contained in:
parent
8b5d75121d
commit
4e1f9a0fbe
|
@ -0,0 +1,23 @@
|
|||
/* Test that BTF type tags do not interfere with CO-RE relocations. */
|
||||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-gbtf -dA -mco-re" } */
|
||||
|
||||
struct bpf_cpumask {
|
||||
int i;
|
||||
char c;
|
||||
} __attribute__((preserve_access_index));
|
||||
|
||||
struct kptr_nested {
|
||||
struct bpf_cpumask * __attribute__((btf_type_tag("kptr"))) mask;
|
||||
} __attribute__((preserve_access_index));
|
||||
|
||||
void foo (struct kptr_nested *nested)
|
||||
{
|
||||
if (nested && nested->mask)
|
||||
nested->mask->i = 5;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "bpfcr_insn" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "bpfcr_type \\(struct" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "bpfcr_astr_off \\(\"0:0\"\\)" 3 } } */
|
|
@ -0,0 +1,23 @@
|
|||
/* Test that BTF decl tags do not interfere with CO-RE relocations. */
|
||||
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-gbtf -dA -mco-re" } */
|
||||
|
||||
struct bpf_cpumask {
|
||||
int i;
|
||||
char c;
|
||||
} __attribute__((preserve_access_index));
|
||||
|
||||
struct kptr_nested {
|
||||
struct bpf_cpumask * mask __attribute__((btf_decl_tag ("decltag")));
|
||||
} __attribute__((preserve_access_index));
|
||||
|
||||
void foo (struct kptr_nested *nested __attribute__((btf_decl_tag ("foo"))))
|
||||
{
|
||||
if (nested && nested->mask)
|
||||
nested->mask->i = 5;
|
||||
}
|
||||
|
||||
/* { dg-final { scan-assembler-times "bpfcr_insn" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "bpfcr_type \\(struct" 3 } } */
|
||||
/* { dg-final { scan-assembler-times "bpfcr_astr_off \\(\"0:0\"\\)" 3 } } */
|
Loading…
Reference in New Issue