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ยง
- Variant
Member ๐Info - 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
Noneif 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_typewith a singleDW_TAG_variant_partthat in turn contains aDW_TAG_variantfor 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: