Skip to main content

rustc_codegen_llvm/llvm/
metadata_kind.rs

1use libc::c_uint;
2
3pub(crate) use self::fixed_kinds::*;
4
5#[derive(#[automatically_derived]
impl ::core::marker::Copy for MetadataKindId { }Copy, #[automatically_derived]
impl ::core::clone::Clone for MetadataKindId {
    #[inline]
    fn clone(&self) -> MetadataKindId {
        let _: ::core::clone::AssertParamIsClone<c_uint>;
        *self
    }
}Clone)]
6#[repr(transparent)]
7pub(crate) struct MetadataKindId(c_uint);
8
9macro_rules! declare_fixed_metadata_kinds {
10    (
11        $(
12            FIXED_MD_KIND($variant:ident, $value:literal)
13        )*
14    ) => {
15        // Use a submodule to group all declarations into one `#[expect(..)]`.
16        #[expect(dead_code)]
17        mod fixed_kinds {
18            use super::MetadataKindId;
19            $(
20                #[expect(non_upper_case_globals)]
21                pub(crate) const $variant: MetadataKindId = MetadataKindId($value);
22            )*
23        }
24    };
25}
26
27// Must be kept in sync with the corresponding static assertions in `RustWrapper.cpp`.
28#[expect(dead_code)]
mod fixed_kinds {
    use super::MetadataKindId;
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_dbg: MetadataKindId = MetadataKindId(0);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_tbaa: MetadataKindId = MetadataKindId(1);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_prof: MetadataKindId = MetadataKindId(2);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_fpmath: MetadataKindId = MetadataKindId(3);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_range: MetadataKindId = MetadataKindId(4);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_tbaa_struct: MetadataKindId = MetadataKindId(5);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_invariant_load: MetadataKindId = MetadataKindId(6);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_alias_scope: MetadataKindId = MetadataKindId(7);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_noalias: MetadataKindId = MetadataKindId(8);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_nontemporal: MetadataKindId = MetadataKindId(9);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_mem_parallel_loop_access: MetadataKindId =
        MetadataKindId(10);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_nonnull: MetadataKindId = MetadataKindId(11);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_dereferenceable: MetadataKindId = MetadataKindId(12);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_dereferenceable_or_null: MetadataKindId =
        MetadataKindId(13);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_make_implicit: MetadataKindId = MetadataKindId(14);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_unpredictable: MetadataKindId = MetadataKindId(15);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_invariant_group: MetadataKindId = MetadataKindId(16);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_align: MetadataKindId = MetadataKindId(17);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_loop: MetadataKindId = MetadataKindId(18);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_type: MetadataKindId = MetadataKindId(19);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_section_prefix: MetadataKindId = MetadataKindId(20);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_absolute_symbol: MetadataKindId = MetadataKindId(21);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_associated: MetadataKindId = MetadataKindId(22);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_callees: MetadataKindId = MetadataKindId(23);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_irr_loop: MetadataKindId = MetadataKindId(24);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_access_group: MetadataKindId = MetadataKindId(25);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_callback: MetadataKindId = MetadataKindId(26);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_preserve_access_index: MetadataKindId =
        MetadataKindId(27);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_vcall_visibility: MetadataKindId = MetadataKindId(28);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_noundef: MetadataKindId = MetadataKindId(29);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_annotation: MetadataKindId = MetadataKindId(30);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_nosanitize: MetadataKindId = MetadataKindId(31);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_func_sanitize: MetadataKindId = MetadataKindId(32);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_exclude: MetadataKindId = MetadataKindId(33);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_memprof: MetadataKindId = MetadataKindId(34);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_callsite: MetadataKindId = MetadataKindId(35);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_kcfi_type: MetadataKindId = MetadataKindId(36);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_pcsections: MetadataKindId = MetadataKindId(37);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_DIAssignID: MetadataKindId = MetadataKindId(38);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_coro_outside_frame: MetadataKindId =
        MetadataKindId(39);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_mmra: MetadataKindId = MetadataKindId(40);
    #[expect(non_upper_case_globals)]
    pub(crate) const MD_noalias_addrspace: MetadataKindId =
        MetadataKindId(41);
}declare_fixed_metadata_kinds! {
29    FIXED_MD_KIND(MD_dbg, 0)
30    FIXED_MD_KIND(MD_tbaa, 1)
31    FIXED_MD_KIND(MD_prof, 2)
32    FIXED_MD_KIND(MD_fpmath, 3)
33    FIXED_MD_KIND(MD_range, 4)
34    FIXED_MD_KIND(MD_tbaa_struct, 5)
35    FIXED_MD_KIND(MD_invariant_load, 6)
36    FIXED_MD_KIND(MD_alias_scope, 7)
37    FIXED_MD_KIND(MD_noalias, 8)
38    FIXED_MD_KIND(MD_nontemporal, 9)
39    FIXED_MD_KIND(MD_mem_parallel_loop_access, 10)
40    FIXED_MD_KIND(MD_nonnull, 11)
41    FIXED_MD_KIND(MD_dereferenceable, 12)
42    FIXED_MD_KIND(MD_dereferenceable_or_null, 13)
43    FIXED_MD_KIND(MD_make_implicit, 14)
44    FIXED_MD_KIND(MD_unpredictable, 15)
45    FIXED_MD_KIND(MD_invariant_group, 16)
46    FIXED_MD_KIND(MD_align, 17)
47    FIXED_MD_KIND(MD_loop, 18)
48    FIXED_MD_KIND(MD_type, 19)
49    FIXED_MD_KIND(MD_section_prefix, 20)
50    FIXED_MD_KIND(MD_absolute_symbol, 21)
51    FIXED_MD_KIND(MD_associated, 22)
52    FIXED_MD_KIND(MD_callees, 23)
53    FIXED_MD_KIND(MD_irr_loop, 24)
54    FIXED_MD_KIND(MD_access_group, 25)
55    FIXED_MD_KIND(MD_callback, 26)
56    FIXED_MD_KIND(MD_preserve_access_index, 27)
57    FIXED_MD_KIND(MD_vcall_visibility, 28)
58    FIXED_MD_KIND(MD_noundef, 29)
59    FIXED_MD_KIND(MD_annotation, 30)
60    FIXED_MD_KIND(MD_nosanitize, 31)
61    FIXED_MD_KIND(MD_func_sanitize, 32)
62    FIXED_MD_KIND(MD_exclude, 33)
63    FIXED_MD_KIND(MD_memprof, 34)
64    FIXED_MD_KIND(MD_callsite, 35)
65    FIXED_MD_KIND(MD_kcfi_type, 36)
66    FIXED_MD_KIND(MD_pcsections, 37)
67    FIXED_MD_KIND(MD_DIAssignID, 38)
68    FIXED_MD_KIND(MD_coro_outside_frame, 39)
69    FIXED_MD_KIND(MD_mmra, 40)
70    FIXED_MD_KIND(MD_noalias_addrspace, 41)
71}