Skip to main content

Module native

Module native 

Source

Re-exportsยง

use std::borrow::Cow; ๐Ÿ”’
use libc::c_uint; ๐Ÿ”’
use rustc_abi::Size; ๐Ÿ”’
use rustc_abi::TagEncoding; ๐Ÿ”’
use rustc_abi::VariantIdx; ๐Ÿ”’
use rustc_abi::Variants; ๐Ÿ”’
use rustc_codegen_ssa::debuginfo::type_names::compute_debuginfo_type_name; ๐Ÿ”’
use rustc_codegen_ssa::debuginfo::tag_base_type; ๐Ÿ”’
use rustc_codegen_ssa::debuginfo::wants_c_like_enum_debuginfo; ๐Ÿ”’
use rustc_codegen_ssa::traits::ConstCodegenMethods; ๐Ÿ”’
use rustc_codegen_ssa::traits::MiscCodegenMethods; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::layout::LayoutOf; ๐Ÿ”’
use rustc_middle::ty::layout::TyAndLayout; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use smallvec::smallvec; ๐Ÿ”’
use crate::common::CodegenCx; ๐Ÿ”’
use crate::debuginfo::metadata::type_map; ๐Ÿ”’
use crate::debuginfo::metadata::type_map::Stub; ๐Ÿ”’
use crate::debuginfo::metadata::type_map::StubInfo; ๐Ÿ”’
use crate::debuginfo::metadata::type_map::UniqueTypeId; ๐Ÿ”’
use crate::debuginfo::metadata::DINodeCreationResult; ๐Ÿ”’
use crate::debuginfo::metadata::NO_GENERICS; ๐Ÿ”’
use crate::debuginfo::metadata::SmallVec; ๐Ÿ”’
use crate::debuginfo::metadata::UNKNOWN_LINE_NUMBER; ๐Ÿ”’
use crate::debuginfo::metadata::create_member_type; ๐Ÿ”’
use crate::debuginfo::metadata::file_metadata; ๐Ÿ”’
use crate::debuginfo::metadata::file_metadata_from_def_id; ๐Ÿ”’
use crate::debuginfo::metadata::size_and_align_of; ๐Ÿ”’
use crate::debuginfo::metadata::type_di_node; ๐Ÿ”’
use crate::debuginfo::metadata::unknown_file_metadata; ๐Ÿ”’
use crate::debuginfo::metadata::visibility_di_flags; ๐Ÿ”’
use crate::debuginfo::utils::DIB; ๐Ÿ”’
use crate::debuginfo::utils::create_DIArray; ๐Ÿ”’
use crate::debuginfo::utils::get_namespace_for_item; ๐Ÿ”’
use crate::llvm; ๐Ÿ”’
use crate::llvm::debuginfo::DIFile; ๐Ÿ”’
use crate::llvm::debuginfo::DIFlags; ๐Ÿ”’
use crate::llvm::debuginfo::DIType; ๐Ÿ”’

Structsยง

VariantMemberInfo ๐Ÿ”’
Information needed for building a DW_TAG_variant:

Functionsยง

build_coroutine_di_node ๐Ÿ”’
Build the debuginfo node for a coroutine environment. It looks the same as the debuginfo for an enum. See build_enum_type_di_node for more information.
build_discr_member_di_node ๐Ÿ”’
Builds the DW_TAG_member describing where we can find the tag of an enum. Returns None if the enum does not have a tag.
build_enum_type_di_node ๐Ÿ”’
Build the debuginfo node for an enum type. The listing below shows how such a type looks like at the LLVM IR/DWARF level. It is a DW_TAG_structure_type with a single DW_TAG_variant_part that in turn contains a DW_TAG_variant for each variant of the enum. The variant-part also contains a single member describing the discriminant, and a nested struct type for each of the variants.
build_enum_variant_member_di_node ๐Ÿ”’
Build the debuginfo node for DW_TAG_variant:
build_enum_variant_part_di_node ๐Ÿ”’
Builds the DW_TAG_variant_part of an enum or coroutine debuginfo node: