|  | use libc::c_uint; | 
|  |  | 
|  | pub(crate) use self::fixed_kinds::*; | 
|  |  | 
|  | #[derive(Copy, Clone)] | 
|  | #[repr(transparent)] | 
|  | pub(crate) struct MetadataKindId(c_uint); | 
|  |  | 
|  | macro_rules! declare_fixed_metadata_kinds { | 
|  | ( | 
|  | $( | 
|  | FIXED_MD_KIND($variant:ident, $value:literal) | 
|  | )* | 
|  | ) => { | 
|  | // Use a submodule to group all declarations into one `#[expect(..)]`. | 
|  | #[expect(dead_code)] | 
|  | mod fixed_kinds { | 
|  | use super::MetadataKindId; | 
|  | $( | 
|  | #[expect(non_upper_case_globals)] | 
|  | pub(crate) const $variant: MetadataKindId = MetadataKindId($value); | 
|  | )* | 
|  | } | 
|  | }; | 
|  | } | 
|  |  | 
|  | // Must be kept in sync with the corresponding static assertions in `RustWrapper.cpp`. | 
|  | declare_fixed_metadata_kinds! { | 
|  | FIXED_MD_KIND(MD_dbg, 0) | 
|  | FIXED_MD_KIND(MD_tbaa, 1) | 
|  | FIXED_MD_KIND(MD_prof, 2) | 
|  | FIXED_MD_KIND(MD_fpmath, 3) | 
|  | FIXED_MD_KIND(MD_range, 4) | 
|  | FIXED_MD_KIND(MD_tbaa_struct, 5) | 
|  | FIXED_MD_KIND(MD_invariant_load, 6) | 
|  | FIXED_MD_KIND(MD_alias_scope, 7) | 
|  | FIXED_MD_KIND(MD_noalias, 8) | 
|  | FIXED_MD_KIND(MD_nontemporal, 9) | 
|  | FIXED_MD_KIND(MD_mem_parallel_loop_access, 10) | 
|  | FIXED_MD_KIND(MD_nonnull, 11) | 
|  | FIXED_MD_KIND(MD_dereferenceable, 12) | 
|  | FIXED_MD_KIND(MD_dereferenceable_or_null, 13) | 
|  | FIXED_MD_KIND(MD_make_implicit, 14) | 
|  | FIXED_MD_KIND(MD_unpredictable, 15) | 
|  | FIXED_MD_KIND(MD_invariant_group, 16) | 
|  | FIXED_MD_KIND(MD_align, 17) | 
|  | FIXED_MD_KIND(MD_loop, 18) | 
|  | FIXED_MD_KIND(MD_type, 19) | 
|  | FIXED_MD_KIND(MD_section_prefix, 20) | 
|  | FIXED_MD_KIND(MD_absolute_symbol, 21) | 
|  | FIXED_MD_KIND(MD_associated, 22) | 
|  | FIXED_MD_KIND(MD_callees, 23) | 
|  | FIXED_MD_KIND(MD_irr_loop, 24) | 
|  | FIXED_MD_KIND(MD_access_group, 25) | 
|  | FIXED_MD_KIND(MD_callback, 26) | 
|  | FIXED_MD_KIND(MD_preserve_access_index, 27) | 
|  | FIXED_MD_KIND(MD_vcall_visibility, 28) | 
|  | FIXED_MD_KIND(MD_noundef, 29) | 
|  | FIXED_MD_KIND(MD_annotation, 30) | 
|  | FIXED_MD_KIND(MD_nosanitize, 31) | 
|  | FIXED_MD_KIND(MD_func_sanitize, 32) | 
|  | FIXED_MD_KIND(MD_exclude, 33) | 
|  | FIXED_MD_KIND(MD_memprof, 34) | 
|  | FIXED_MD_KIND(MD_callsite, 35) | 
|  | FIXED_MD_KIND(MD_kcfi_type, 36) | 
|  | FIXED_MD_KIND(MD_pcsections, 37) | 
|  | FIXED_MD_KIND(MD_DIAssignID, 38) | 
|  | FIXED_MD_KIND(MD_coro_outside_frame, 39) | 
|  | FIXED_MD_KIND(MD_mmra, 40) | 
|  | FIXED_MD_KIND(MD_noalias_addrspace, 41) | 
|  | } |