hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/tools/testing/selftests/bpf/prog_tests/btf.c
....@@ -882,6 +882,34 @@
882882 .btf_load_err = true,
883883 .err_str = "Invalid elem",
884884 },
885
+{
886
+ .descr = "var after datasec, ptr followed by modifier",
887
+ .raw_types = {
888
+ /* .bss section */ /* [1] */
889
+ BTF_TYPE_ENC(NAME_TBD, BTF_INFO_ENC(BTF_KIND_DATASEC, 0, 2),
890
+ sizeof(void*)+4),
891
+ BTF_VAR_SECINFO_ENC(4, 0, sizeof(void*)),
892
+ BTF_VAR_SECINFO_ENC(6, sizeof(void*), 4),
893
+ /* int */ /* [2] */
894
+ BTF_TYPE_INT_ENC(0, BTF_INT_SIGNED, 0, 32, 4),
895
+ /* int* */ /* [3] */
896
+ BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_PTR, 0, 0), 2),
897
+ BTF_VAR_ENC(NAME_TBD, 3, 0), /* [4] */
898
+ /* const int */ /* [5] */
899
+ BTF_TYPE_ENC(0, BTF_INFO_ENC(BTF_KIND_CONST, 0, 0), 2),
900
+ BTF_VAR_ENC(NAME_TBD, 5, 0), /* [6] */
901
+ BTF_END_RAW,
902
+ },
903
+ .str_sec = "\0a\0b\0c\0",
904
+ .str_sec_size = sizeof("\0a\0b\0c\0"),
905
+ .map_type = BPF_MAP_TYPE_ARRAY,
906
+ .map_name = ".bss",
907
+ .key_size = sizeof(int),
908
+ .value_size = sizeof(void*)+4,
909
+ .key_type_id = 0,
910
+ .value_type_id = 1,
911
+ .max_entries = 1,
912
+},
885913 /* Test member exceeds the size of struct.
886914 *
887915 * struct A {