; LLVM IR from thepowersgang/mrustc :: src/resolve (index)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%class.RcString = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%struct.Span = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.591 = type { ptr }
%class.anon.592 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.593" = type { ptr }
%"struct.AST::PathBinding.61" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.45", %"class.std::unique_ptr.53", %"class.std::vector.40" }
%"class.std::unique_ptr.45" = type { %"struct.std::__uniq_ptr_data.46" }
%"struct.std::__uniq_ptr_data.46" = type { %"class.std::__uniq_ptr_impl.47" }
%"class.std::__uniq_ptr_impl.47" = type { %"class.std::tuple.48" }
%"class.std::tuple.48" = type { %"struct.std::_Tuple_impl.49" }
%"struct.std::_Tuple_impl.49" = type { %"struct.std::_Head_base.52" }
%"struct.std::_Head_base.52" = type { ptr }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.61", %"struct.AST::PathBinding.62" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::PathBinding.62" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%"class.__gnu_cxx::__normal_iterator.594" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.595" = type { ptr }
%class.anon.596 = type { ptr, ptr }
%"struct.AST::UseItem::Ent" = type { %struct.Span, %"class.AST::Path", %class.RcString }
%"struct.AST::PathBinding_Type::Data_Crate" = type { ptr }
%"class.AST::ExternCrate" = type { %class.RcString, %class.RcString, %"class.std::__cxx11::basic_string", %"class.HIR::CratePtr" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.HIR::CratePtr" = type { ptr }
%"class.HIR::Crate" = type { %class.RcString, i32, %"class.HIR::Module", %"class.std::vector.421", %"class.std::vector.426", %"struct.HIR::Crate::ImplGroup", %"class.HIR::InherentCache", %"class.std::map.446", %"class.std::map.451", %"class.std::vector.456", %"struct.HIR::Crate::ImplGroup.461", %"class.std::map.472", %"class.std::map.477", %"class.std::vector", %"class.std::unordered_map.482", %"class.std::vector", %"class.std::unordered_map.501", %"class.std::vector.515", %"class.std::vector.216" }
%"class.HIR::Module" = type { %"class.std::vector.248", %"class.std::unordered_map.253", %"class.std::unordered_map.267", %"class.std::unordered_map.281", %"class.std::vector.295" }
%"class.std::vector.248" = type { %"struct.std::_Vector_base.249" }
%"struct.std::_Vector_base.249" = type { %"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::SimplePath, std::allocator<HIR::SimplePath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map.253" = type { %"class.std::_Hashtable.254" }
%"class.std::_Hashtable.254" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"class.std::unordered_map.267" = type { %"class.std::_Hashtable.268" }
%"class.std::_Hashtable.268" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.281" = type { %"class.std::_Hashtable.282" }
%"class.std::_Hashtable.282" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.295" = type { %"struct.std::_Vector_base.296" }
%"struct.std::_Vector_base.296" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::Static>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::Static>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.421" = type { %"struct.std::_Vector_base.422" }
%"struct.std::_Vector_base.422" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::TypeItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.426" = type { %"struct.std::_Vector_base.427" }
%"struct.std::_Vector_base.427" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>, std::allocator<std::pair<RcString, std::unique_ptr<HIR::VisEnt<HIR::ValueItem>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup" = type { %"class.std::map.431", %"class.std::vector.436", %"class.std::vector.436" }
%"class.std::map.431" = type { %"class.std::_Rb_tree.432" }
%"class.std::_Rb_tree.432" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<std::unique_ptr<HIR::TypeImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"class.std::vector.436" = type { %"struct.std::_Vector_base.437" }
%"struct.std::_Vector_base.437" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<HIR::TypeImpl>, std::allocator<std::unique_ptr<HIR::TypeImpl>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::InherentCache" = type { %"class.std::map.441" }
%"class.std::map.441" = type { %"class.std::_Rb_tree.442" }
%"class.std::_Rb_tree.442" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, HIR::InherentCache::Inner>, std::_Select1st<std::pair<const RcString, HIR::InherentCache::Inner>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.446" = type { %"class.std::_Rb_tree.447" }
%"class.std::_Rb_tree.447" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::TraitImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.451" = type { %"class.std::_Rb_tree.452" }
%"class.std::_Rb_tree.452" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<std::unique_ptr<HIR::MarkerImpl>>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.456" = type { %"struct.std::_Vector_base.457" }
%"struct.std::_Vector_base.457" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GlobalAssembly, std::allocator<HIR::GlobalAssembly>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Crate::ImplGroup.461" = type { %"class.std::map.462", %"class.std::vector.467", %"class.std::vector.467" }
%"class.std::map.462" = type { %"class.std::_Rb_tree.463" }
%"class.std::_Rb_tree.463" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, std::vector<const HIR::TypeImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.467" = type { %"struct.std::_Vector_base.468" }
%"struct.std::_Vector_base.468" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const HIR::TypeImpl *, std::allocator<const HIR::TypeImpl *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.472" = type { %"class.std::_Rb_tree.473" }
%"class.std::_Rb_tree.473" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::TraitImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.477" = type { %"class.std::_Rb_tree.478" }
%"class.std::_Rb_tree.478" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::Crate::ImplGroup<const HIR::MarkerImpl *>>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::unordered_map.482" = type { %"class.std::_Hashtable.483" }
%"class.std::_Hashtable.483" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::unordered_map.501" = type { %"class.std::_Hashtable.502" }
%"class.std::_Hashtable.502" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::vector.515" = type { %"struct.std::_Vector_base.516" }
%"struct.std::_Vector_base.516" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ExternLibrary, std::allocator<HIR::ExternLibrary>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.216" = type { %"struct.std::_Vector_base.217" }
%"struct.std::_Vector_base.217" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::PathBinding_Type::Data_Enum" = type { ptr, ptr }
%"struct.AST::EnumVariant" = type { %"class.AST::AttributeList", %class.RcString, %"class.AST::EnumVariantData" }
%"class.AST::AttributeList" = type { %"class.std::vector.81" }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::EnumVariantData" = type { i32, %"union.AST::EnumVariantData::DataUnion" }
%"union.AST::EnumVariantData::DataUnion" = type { %"struct.AST::EnumVariantData::Data_Tuple" }
%"struct.AST::EnumVariantData::Data_Tuple" = type { %"class.std::vector.162" }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Enum" = type { %"class.HIR::GenericParams", i8, i32, %"class.HIR::Enum::Class", %"struct.HIR::TraitMarkings" }
%"class.HIR::GenericParams" = type { %"class.std::vector.314", %"class.std::vector.319", %"class.std::vector.324", %"class.std::vector.329" }
%"class.std::vector.314" = type { %"struct.std::_Vector_base.315" }
%"struct.std::_Vector_base.315" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeParamDef, std::allocator<HIR::TypeParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.319" = type { %"struct.std::_Vector_base.320" }
%"struct.std::_Vector_base.320" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::LifetimeDef, std::allocator<HIR::LifetimeDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.324" = type { %"struct.std::_Vector_base.325" }
%"struct.std::_Vector_base.325" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::ValueParamDef, std::allocator<HIR::ValueParamDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.329" = type { %"struct.std::_Vector_base.330" }
%"struct.std::_Vector_base.330" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::GenericBound, std::allocator<HIR::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.HIR::Enum::Class" = type { i32, %"union.HIR::Enum::Class::DataUnion" }
%"union.HIR::Enum::Class::DataUnion" = type { %"class.std::vector.345", [8 x i8] }
%"class.std::vector.345" = type { %"struct.std::_Vector_base.346" }
%"struct.std::_Vector_base.346" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Enum::DataVariant, std::allocator<HIR::Enum::DataVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::TraitMarkings" = type { i8, i8, i8, %"class.std::map.339" }
%"class.std::map.339" = type { %"class.std::_Rb_tree.340" }
%"class.std::_Rb_tree.340" = type { %"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<HIR::SimplePath, std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>, std::_Select1st<std::pair<const HIR::SimplePath, HIR::TraitMarkings::AutoMarking>>, std::less<HIR::SimplePath>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.HIR::Enum::Class::Data_Value" = type <{ %"class.std::vector.350", i8, [7 x i8] }>
%"class.std::vector.350" = type { %"struct.std::_Vector_base.351" }
%"struct.std::_Vector_base.351" = type { %"struct.std::_Vector_base<HIR::Enum::ValueVariant, std::allocator<HIR::Enum::ValueVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::Enum::ValueVariant, std::allocator<HIR::Enum::ValueVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::Enum::ValueVariant, std::allocator<HIR::Enum::ValueVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::Enum::ValueVariant, std::allocator<HIR::Enum::ValueVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.HIR::Enum::ValueVariant" = type { %class.RcString, %"class.HIR::ExprPtr", i64 }
%"class.HIR::ExprPtr" = type { %"class.HIR::ExprPtrInner", %"class.std::vector.535", %"class.std::vector.535", %"class.MIR::FunctionPointer", %"class.HIR::ExprStatePtr" }
%"class.HIR::ExprPtrInner" = type { ptr }
%"class.std::vector.535" = type { %"struct.std::_Vector_base.536" }
%"struct.std::_Vector_base.536" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<HIR::TypeRef, std::allocator<HIR::TypeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MIR::FunctionPointer" = type { ptr }
%"class.HIR::ExprStatePtr" = type { ptr }
%"struct.HIR::Enum::DataVariant" = type { %class.RcString, i8, %"class.HIR::TypeRef" }
%"class.HIR::TypeRef" = type { ptr }

@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@g_debug_indent_level = external global i32, align 4
@__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE = external hidden unnamed_addr constant [40 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #0

declare ptr @__cxa_allocate_exception(i64)

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #2

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

; Function Attrs: nounwind
declare void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare noundef zeroext i1 @_Z13debug_enabledv() #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240)) #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8) #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8) #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z37Resolve_Index_Module_Wildcard__submodRN3AST5CrateERNS_6ModuleERKS2_RKNS_10VisibilityE(ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(36)) #5

; Function Attrs: mustprogress uwtable
define dso_local void @_Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, ptr noundef nonnull align 8 dereferenceable(36) %3) #5 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %"struct.AST::AbsolutePath", align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca %struct.Span, align 8
  %18 = alloca %"class.std::function", align 8
  %19 = alloca %class.anon.591, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"struct.AST::AbsolutePath", align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca %struct.Span, align 8
  %25 = alloca %"class.std::function", align 8
  %26 = alloca %class.anon.592, align 8
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.593", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.593", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"struct.AST::PathBinding.61", align 8
  %33 = alloca %"struct.AST::AbsolutePath", align 8
  %34 = alloca %class.RcString, align 8
  %35 = alloca %"class.AST::PathBinding_Type", align 8
  %36 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %37 = alloca %"class.AST::Path", align 8
  %38 = alloca %"struct.AST::PathBinding", align 8
  %39 = alloca %"struct.AST::AbsolutePath", align 8
  %40 = alloca %class.RcString, align 8
  %41 = alloca %"class.AST::PathBinding_Value", align 8
  %42 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %43 = alloca %"class.AST::Path", align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.594", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.594", align 8
  %49 = alloca ptr, align 8
  %50 = alloca %"struct.AST::PathBinding", align 8
  %51 = alloca %"struct.AST::AbsolutePath", align 8
  %52 = alloca %class.RcString, align 8
  %53 = alloca %"class.AST::PathBinding_Value", align 8
  %54 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %55 = alloca %"class.AST::Path", align 8
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.595", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.595", align 8
  %60 = alloca ptr, align 8
  %61 = alloca %"struct.AST::PathBinding.61", align 8
  %62 = alloca %"struct.AST::AbsolutePath", align 8
  %63 = alloca %class.RcString, align 8
  %64 = alloca %"class.AST::PathBinding_Type", align 8
  %65 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %66 = alloca %"class.AST::Path", align 8
  %67 = alloca %"struct.AST::PathBinding", align 8
  %68 = alloca %"struct.AST::AbsolutePath", align 8
  %69 = alloca %class.RcString, align 8
  %70 = alloca %"class.AST::PathBinding_Value", align 8
  %71 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %72 = alloca %"class.AST::Path", align 8
  %73 = alloca %struct.Span, align 8
  %74 = alloca %"class.std::function", align 8
  %75 = alloca %class.anon.596, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %76 = load ptr, ptr %7, align 8, !tbaa !5
  %77 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %76, i32 0, i32 0
  store ptr %77, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  %78 = load ptr, ptr %7, align 8, !tbaa !5
  %79 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %78, i32 0, i32 1
  %80 = getelementptr inbounds %"class.AST::Path", ptr %79, i32 0, i32 2
  %81 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %80, i32 0, i32 1
  store ptr %81, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #7
  %82 = load ptr, ptr %10, align 8, !tbaa !5
  %83 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %82, i32 0, i32 1
  %84 = call noundef ptr @_ZNK3AST16PathBinding_Type9opt_CrateEv(ptr noundef nonnull align 8 dereferenceable(32) %83)
  store ptr %84, ptr %11, align 8, !tbaa !5
  %85 = load ptr, ptr %11, align 8, !tbaa !5
  %86 = icmp ne ptr %85, null
  br i1 %86, label %87, label %122

87:                                               ; preds = %4
  br label %88

88:                                               ; preds = %87
  %89 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %89, label %90, label %99

90:                                               ; preds = %88
  %91 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %92 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %91, ptr noundef @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef @.str.30)
  %94 = load ptr, ptr %7, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %94, i32 0, i32 1
  %96 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull align 8 dereferenceable(240) %95)
  %97 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef @_ZSt3decRSt8ios_base)
  %98 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %99

99:                                               ; preds = %90, %88
  br label %100

100:                                              ; preds = %99
  br label %101

101:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #7
  %102 = load ptr, ptr %11, align 8, !tbaa !5
  %103 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Crate", ptr %102, i32 0, i32 0
  %104 = load ptr, ptr %103, align 8, !tbaa !11
  %105 = getelementptr inbounds %"class.AST::ExternCrate", ptr %104, i32 0, i32 3
  %106 = call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %105)
  %107 = getelementptr inbounds %"class.HIR::Crate", ptr %106, i32 0, i32 2
  store ptr %107, ptr %12, align 8, !tbaa !5
  %108 = load ptr, ptr %9, align 8, !tbaa !5
  %109 = load ptr, ptr %5, align 8, !tbaa !5
  %110 = load ptr, ptr %6, align 8, !tbaa !5
  %111 = load ptr, ptr %12, align 8, !tbaa !5
  %112 = load ptr, ptr %7, align 8, !tbaa !5
  %113 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %112, i32 0, i32 1
  %114 = load ptr, ptr %8, align 8, !tbaa !5
  %115 = load ptr, ptr %10, align 8, !tbaa !5
  %116 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %115, i32 0, i32 0
  call void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %116)
  invoke void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull align 8 dereferenceable(1112) %109, ptr noundef nonnull align 8 dereferenceable(480) %110, ptr noundef nonnull align 8 dereferenceable(216) %111, ptr noundef nonnull align 8 dereferenceable(240) %113, ptr noundef nonnull align 8 dereferenceable(36) %114, ptr noundef %13)
          to label %117 unwind label %118

117:                                              ; preds = %101
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  br label %680

118:                                              ; preds = %101
  %119 = landingpad { ptr, i32 }
          cleanup
  %120 = extractvalue { ptr, i32 } %119, 0
  store ptr %120, ptr %14, align 8
  %121 = extractvalue { ptr, i32 } %119, 1
  store i32 %121, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #7
  br label %681

122:                                              ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %123 = load ptr, ptr %10, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %123, i32 0, i32 1
  %125 = call noundef ptr @_ZNK3AST16PathBinding_Type10opt_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32) %124)
  store ptr %125, ptr %16, align 8, !tbaa !5
  %126 = load ptr, ptr %16, align 8, !tbaa !5
  %127 = icmp ne ptr %126, null
  br i1 %127, label %128, label %198

128:                                              ; preds = %122
  br label %129

129:                                              ; preds = %128
  %130 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %130, label %131, label %140

131:                                              ; preds = %129
  %132 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %132, ptr noundef @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef @.str.31)
  %135 = load ptr, ptr %7, align 8, !tbaa !5
  %136 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %135, i32 0, i32 1
  %137 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull align 8 dereferenceable(240) %136)
  %138 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef @_ZSt3decRSt8ios_base)
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %140

140:                                              ; preds = %131, %129
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141
  %143 = load ptr, ptr %16, align 8, !tbaa !5
  %144 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %143, i32 0, i32 0
  %145 = load ptr, ptr %144, align 8, !tbaa !13
  %146 = icmp ne ptr %145, null
  br i1 %146, label %190, label %147

147:                                              ; preds = %142
  br label %148

148:                                              ; preds = %147
  %149 = load ptr, ptr %16, align 8, !tbaa !5
  %150 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %149, i32 0, i32 1
  %151 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %150, i32 0, i32 1
  %152 = load ptr, ptr %151, align 8, !tbaa !16
  %153 = icmp ne ptr %152, null
  br i1 %153, label %169, label %154

154:                                              ; preds = %148
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %155 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %155)
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %156 = getelementptr inbounds %class.anon.591, ptr %19, i32 0, i32 0
  %157 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %157, ptr %156, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %18)
          to label %158 unwind label %161

158:                                              ; preds = %154
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  %159 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr noundef @.str.5)
          to label %160 unwind label %165

160:                                              ; preds = %158
  call void @__cxa_throw(ptr %159, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #8
  unreachable

161:                                              ; preds = %154
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %14, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %679

165:                                              ; preds = %158
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %14, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %15, align 4
  call void @__cxa_free_exception(ptr %159) #7
  br label %679

169:                                              ; preds = %148
  br label %170

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %172 = load ptr, ptr %16, align 8, !tbaa !5
  %173 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %172, i32 0, i32 1
  %174 = getelementptr inbounds %"struct.AST::PathBinding_Type::(anonymous struct)::Hir", ptr %173, i32 0, i32 1
  %175 = load ptr, ptr %174, align 8, !tbaa !16
  store ptr %175, ptr %20, align 8, !tbaa !5
  %176 = load ptr, ptr %9, align 8, !tbaa !5
  %177 = load ptr, ptr %5, align 8, !tbaa !5
  %178 = load ptr, ptr %6, align 8, !tbaa !5
  %179 = load ptr, ptr %20, align 8, !tbaa !5
  %180 = load ptr, ptr %7, align 8, !tbaa !5
  %181 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %180, i32 0, i32 1
  %182 = load ptr, ptr %8, align 8, !tbaa !5
  %183 = load ptr, ptr %10, align 8, !tbaa !5
  %184 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %183, i32 0, i32 0
  call void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %184)
  invoke void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull align 8 dereferenceable(1112) %177, ptr noundef nonnull align 8 dereferenceable(480) %178, ptr noundef nonnull align 8 dereferenceable(216) %179, ptr noundef nonnull align 8 dereferenceable(240) %181, ptr noundef nonnull align 8 dereferenceable(36) %182, ptr noundef %21)
          to label %185 unwind label %186

185:                                              ; preds = %171
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %197

186:                                              ; preds = %171
  %187 = landingpad { ptr, i32 }
          cleanup
  %188 = extractvalue { ptr, i32 } %187, 0
  store ptr %188, ptr %14, align 8
  %189 = extractvalue { ptr, i32 } %187, 1
  store i32 %189, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %679

190:                                              ; preds = %142
  %191 = load ptr, ptr %5, align 8, !tbaa !5
  %192 = load ptr, ptr %6, align 8, !tbaa !5
  %193 = load ptr, ptr %16, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Module", ptr %193, i32 0, i32 0
  %195 = load ptr, ptr %194, align 8, !tbaa !13
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_Z37Resolve_Index_Module_Wildcard__submodRN3AST5CrateERNS_6ModuleERKS2_RKNS_10VisibilityE(ptr noundef nonnull align 8 dereferenceable(1112) %191, ptr noundef nonnull align 8 dereferenceable(480) %192, ptr noundef nonnull align 8 dereferenceable(480) %195, ptr noundef nonnull align 8 dereferenceable(36) %196)
  br label %197

197:                                              ; preds = %190, %185
  br label %678

198:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %199 = load ptr, ptr %10, align 8, !tbaa !5
  %200 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %199, i32 0, i32 1
  %201 = call noundef ptr @_ZNK3AST16PathBinding_Type8opt_EnumEv(ptr noundef nonnull align 8 dereferenceable(32) %200)
  store ptr %201, ptr %22, align 8, !tbaa !5
  %202 = load ptr, ptr %22, align 8, !tbaa !5
  %203 = icmp ne ptr %202, null
  br i1 %203, label %204, label %656

204:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %205 = load ptr, ptr %22, align 8, !tbaa !5
  store ptr %205, ptr %23, align 8, !tbaa !5
  br label %206

206:                                              ; preds = %204
  %207 = load ptr, ptr %23, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %207, i32 0, i32 0
  %209 = load ptr, ptr %208, align 8, !tbaa !17
  %210 = icmp ne ptr %209, null
  br i1 %210, label %231, label %211

211:                                              ; preds = %206
  %212 = load ptr, ptr %23, align 8, !tbaa !5
  %213 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %212, i32 0, i32 1
  %214 = load ptr, ptr %213, align 8, !tbaa !19
  %215 = icmp ne ptr %214, null
  br i1 %215, label %231, label %216

216:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %217 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %217)
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %218 = getelementptr inbounds %class.anon.592, ptr %26, i32 0, i32 0
  %219 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %219, ptr %218, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef %25)
          to label %220 unwind label %223

220:                                              ; preds = %216
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  %221 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %221, ptr noundef @.str.5)
          to label %222 unwind label %227

222:                                              ; preds = %220
  call void @__cxa_throw(ptr %221, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #8
  unreachable

223:                                              ; preds = %216
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %14, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  br label %655

227:                                              ; preds = %220
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %14, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %15, align 4
  call void @__cxa_free_exception(ptr %221) #7
  br label %655

231:                                              ; preds = %211, %206
  br label %232

232:                                              ; preds = %231
  br label %233

233:                                              ; preds = %232
  %234 = load ptr, ptr %23, align 8, !tbaa !5
  %235 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %234, i32 0, i32 0
  %236 = load ptr, ptr %235, align 8, !tbaa !17
  %237 = icmp ne ptr %236, null
  br i1 %237, label %238, label %399

238:                                              ; preds = %233
  br label %239

239:                                              ; preds = %238
  %240 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %240, label %241, label %251

241:                                              ; preds = %239
  %242 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %242, ptr noundef @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef @.str.32)
  %245 = load ptr, ptr %7, align 8, !tbaa !5
  %246 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %245, i32 0, i32 1
  %247 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull align 8 dereferenceable(240) %246)
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %247, ptr noundef @.str.33)
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %248, ptr noundef @_ZSt3decRSt8ios_base)
  %250 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %249, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %251

251:                                              ; preds = %241, %239
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  store i32 0, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %254 = load ptr, ptr %23, align 8, !tbaa !5
  %255 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %254, i32 0, i32 0
  %256 = load ptr, ptr %255, align 8, !tbaa !17
  %257 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Enum8variantsEv(ptr noundef nonnull align 8 dereferenceable(80) %256)
  store ptr %257, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %258 = load ptr, ptr %28, align 8, !tbaa !5
  %259 = call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %258) #7
  %260 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.593", ptr %29, i32 0, i32 0
  store ptr %259, ptr %260, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %261 = load ptr, ptr %28, align 8, !tbaa !5
  %262 = call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %261) #7
  %263 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.593", ptr %30, i32 0, i32 0
  store ptr %262, ptr %263, align 8
  br label %264

264:                                              ; preds = %395, %253
  %265 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br i1 %265, label %267, label %266

266:                                              ; preds = %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %398

267:                                              ; preds = %264
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %268 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  store ptr %268, ptr %31, align 8, !tbaa !5
  %269 = load ptr, ptr %31, align 8, !tbaa !5
  %270 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %269, i32 0, i32 2
  %271 = call noundef zeroext i1 @_ZNK3AST15EnumVariantData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %270)
  br i1 %271, label %272, label %332

272:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 64, ptr %32) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %32)
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #7
  %273 = load ptr, ptr %10, align 8, !tbaa !5
  %274 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %273, i32 0, i32 0
  %275 = load ptr, ptr %31, align 8, !tbaa !5
  %276 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %275, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %276)
          to label %277 unwind label %300

277:                                              ; preds = %272
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef %34)
          to label %278 unwind label %304

278:                                              ; preds = %277
  %279 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %32, i32 0, i32 0
  %280 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %279, ptr noundef nonnull align 8 dereferenceable(32) %33)
          to label %281 unwind label %308

281:                                              ; preds = %278
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  %282 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %36, i32 0, i32 0
  %283 = load ptr, ptr %23, align 8, !tbaa !5
  %284 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %283, i32 0, i32 0
  %285 = load ptr, ptr %284, align 8, !tbaa !17
  store ptr %285, ptr %282, align 8, !tbaa !20
  %286 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %36, i32 0, i32 1
  %287 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %287, ptr %286, align 8, !tbaa !22
  %288 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %36, i32 0, i32 2
  store ptr null, ptr %288, align 8, !tbaa !23
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %35, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %36)
          to label %289 unwind label %314

289:                                              ; preds = %281
  %290 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %32, i32 0, i32 1
  %291 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %290, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %292 unwind label %318

292:                                              ; preds = %289
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  %293 = load ptr, ptr %9, align 8, !tbaa !5
  %294 = load ptr, ptr %6, align 8, !tbaa !5
  %295 = load ptr, ptr %31, align 8, !tbaa !5
  %296 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %295, i32 0, i32 1
  %297 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %37, ptr noundef nonnull align 8 dereferenceable(64) %32)
          to label %298 unwind label %323

298:                                              ; preds = %292
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %293, ptr noundef nonnull align 8 dereferenceable(480) %294, ptr noundef nonnull align 8 dereferenceable(8) %296, ptr noundef nonnull align 8 dereferenceable(36) %297, ptr noundef %37, i1 noundef zeroext false)
          to label %299 unwind label %327

299:                                              ; preds = %298
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %37) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %32) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #7
  br label %392

300:                                              ; preds = %272
  %301 = landingpad { ptr, i32 }
          cleanup
  %302 = extractvalue { ptr, i32 } %301, 0
  store ptr %302, ptr %14, align 8
  %303 = extractvalue { ptr, i32 } %301, 1
  store i32 %303, ptr %15, align 4
  br label %313

304:                                              ; preds = %277
  %305 = landingpad { ptr, i32 }
          cleanup
  %306 = extractvalue { ptr, i32 } %305, 0
  store ptr %306, ptr %14, align 8
  %307 = extractvalue { ptr, i32 } %305, 1
  store i32 %307, ptr %15, align 4
  br label %312

308:                                              ; preds = %278
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %14, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #7
  br label %312

312:                                              ; preds = %308, %304
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #7
  br label %313

313:                                              ; preds = %312, %300
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #7
  br label %331

314:                                              ; preds = %281
  %315 = landingpad { ptr, i32 }
          cleanup
  %316 = extractvalue { ptr, i32 } %315, 0
  store ptr %316, ptr %14, align 8
  %317 = extractvalue { ptr, i32 } %315, 1
  store i32 %317, ptr %15, align 4
  br label %322

318:                                              ; preds = %289
  %319 = landingpad { ptr, i32 }
          cleanup
  %320 = extractvalue { ptr, i32 } %319, 0
  store ptr %320, ptr %14, align 8
  %321 = extractvalue { ptr, i32 } %319, 1
  store i32 %321, ptr %15, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %322

322:                                              ; preds = %318, %314
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  br label %331

323:                                              ; preds = %292
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %14, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %15, align 4
  br label %331

327:                                              ; preds = %298
  %328 = landingpad { ptr, i32 }
          cleanup
  %329 = extractvalue { ptr, i32 } %328, 0
  store ptr %329, ptr %14, align 8
  %330 = extractvalue { ptr, i32 } %328, 1
  store i32 %330, ptr %15, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %37) #7
  br label %331

331:                                              ; preds = %327, %323, %322, %313
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %32) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #7
  br label %397

332:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 64, ptr %38) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %38)
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #7
  %333 = load ptr, ptr %10, align 8, !tbaa !5
  %334 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %333, i32 0, i32 0
  %335 = load ptr, ptr %31, align 8, !tbaa !5
  %336 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %335, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %336)
          to label %337 unwind label %360

337:                                              ; preds = %332
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %39, ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef %40)
          to label %338 unwind label %364

338:                                              ; preds = %337
  %339 = getelementptr inbounds %"struct.AST::PathBinding", ptr %38, i32 0, i32 0
  %340 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %339, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %341 unwind label %368

341:                                              ; preds = %338
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #7
  %342 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %42, i32 0, i32 0
  %343 = load ptr, ptr %23, align 8, !tbaa !5
  %344 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %343, i32 0, i32 0
  %345 = load ptr, ptr %344, align 8, !tbaa !17
  store ptr %345, ptr %342, align 8, !tbaa !24
  %346 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %42, i32 0, i32 1
  %347 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %347, ptr %346, align 8, !tbaa !26
  %348 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %42, i32 0, i32 2
  store ptr null, ptr %348, align 8, !tbaa !27
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %41, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %42)
          to label %349 unwind label %374

349:                                              ; preds = %341
  %350 = getelementptr inbounds %"struct.AST::PathBinding", ptr %38, i32 0, i32 1
  %351 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %350, ptr noundef nonnull align 8 dereferenceable(32) %41)
          to label %352 unwind label %378

352:                                              ; preds = %349
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  %353 = load ptr, ptr %9, align 8, !tbaa !5
  %354 = load ptr, ptr %6, align 8, !tbaa !5
  %355 = load ptr, ptr %31, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.AST::EnumVariant", ptr %355, i32 0, i32 1
  %357 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %43, ptr noundef nonnull align 8 dereferenceable(64) %38)
          to label %358 unwind label %383

358:                                              ; preds = %352
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %353, ptr noundef nonnull align 8 dereferenceable(480) %354, ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef nonnull align 8 dereferenceable(36) %357, ptr noundef %43, i1 noundef zeroext false)
          to label %359 unwind label %387

359:                                              ; preds = %358
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %43) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %38) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %38) #7
  br label %392

360:                                              ; preds = %332
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %14, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %15, align 4
  br label %373

364:                                              ; preds = %337
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %14, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %15, align 4
  br label %372

368:                                              ; preds = %338
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %14, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %372

372:                                              ; preds = %368, %364
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #7
  br label %373

373:                                              ; preds = %372, %360
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  br label %391

374:                                              ; preds = %341
  %375 = landingpad { ptr, i32 }
          cleanup
  %376 = extractvalue { ptr, i32 } %375, 0
  store ptr %376, ptr %14, align 8
  %377 = extractvalue { ptr, i32 } %375, 1
  store i32 %377, ptr %15, align 4
  br label %382

378:                                              ; preds = %349
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %14, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %15, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #7
  br label %382

382:                                              ; preds = %378, %374
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #7
  br label %391

383:                                              ; preds = %352
  %384 = landingpad { ptr, i32 }
          cleanup
  %385 = extractvalue { ptr, i32 } %384, 0
  store ptr %385, ptr %14, align 8
  %386 = extractvalue { ptr, i32 } %384, 1
  store i32 %386, ptr %15, align 4
  br label %391

387:                                              ; preds = %358
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %14, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %15, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %43) #7
  br label %391

391:                                              ; preds = %387, %383, %382, %373
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %38) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %38) #7
  br label %397

392:                                              ; preds = %359, %299
  %393 = load i32, ptr %27, align 4, !tbaa !9
  %394 = add i32 %393, 1
  store i32 %394, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  br label %395

395:                                              ; preds = %392
  %396 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  br label %264

397:                                              ; preds = %391, %331
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %655

398:                                              ; preds = %266
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %654

399:                                              ; preds = %233
  br label %400

400:                                              ; preds = %399
  %401 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %401, label %402, label %412

402:                                              ; preds = %400
  %403 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %403, ptr noundef @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %404, ptr noundef @.str.32)
  %406 = load ptr, ptr %7, align 8, !tbaa !5
  %407 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %406, i32 0, i32 1
  %408 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %405, ptr noundef nonnull align 8 dereferenceable(240) %407)
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef @.str.34)
  %410 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %409, ptr noundef @_ZSt3decRSt8ios_base)
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %412

412:                                              ; preds = %402, %400
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  store i32 0, ptr %44, align 4, !tbaa !9
  %415 = load ptr, ptr %23, align 8, !tbaa !5
  %416 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %415, i32 0, i32 1
  %417 = load ptr, ptr %416, align 8, !tbaa !19
  %418 = getelementptr inbounds %"class.HIR::Enum", ptr %417, i32 0, i32 3
  %419 = call noundef zeroext i1 @_ZNK3HIR4Enum5Class8is_ValueEv(ptr noundef nonnull align 8 dereferenceable(40) %418)
  br i1 %419, label %420, label %503

420:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %421 = load ptr, ptr %23, align 8, !tbaa !5
  %422 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %421, i32 0, i32 1
  %423 = load ptr, ptr %422, align 8, !tbaa !19
  %424 = getelementptr inbounds %"class.HIR::Enum", ptr %423, i32 0, i32 3
  %425 = call noundef ptr @_ZNK3HIR4Enum5Class9opt_ValueEv(ptr noundef nonnull align 8 dereferenceable(40) %424)
  store ptr %425, ptr %45, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %426 = load ptr, ptr %45, align 8, !tbaa !5
  %427 = getelementptr inbounds %"struct.HIR::Enum::Class::Data_Value", ptr %426, i32 0, i32 0
  store ptr %427, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %428 = load ptr, ptr %46, align 8, !tbaa !5
  %429 = call ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %428) #7
  %430 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.594", ptr %47, i32 0, i32 0
  store ptr %429, ptr %430, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %431 = load ptr, ptr %46, align 8, !tbaa !5
  %432 = call ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %431) #7
  %433 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.594", ptr %48, i32 0, i32 0
  store ptr %432, ptr %433, align 8
  br label %434

434:                                              ; preds = %468, %420
  %435 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  br i1 %435, label %437, label %436

436:                                              ; preds = %434
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  br label %502

437:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %438 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #7
  store ptr %438, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 64, ptr %50) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %50)
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #7
  %439 = load ptr, ptr %10, align 8, !tbaa !5
  %440 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %439, i32 0, i32 0
  %441 = load ptr, ptr %49, align 8, !tbaa !5
  %442 = getelementptr inbounds %"struct.HIR::Enum::ValueVariant", ptr %441, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %442)
          to label %443 unwind label %470

443:                                              ; preds = %437
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %440, ptr noundef %52)
          to label %444 unwind label %474

444:                                              ; preds = %443
  %445 = getelementptr inbounds %"struct.AST::PathBinding", ptr %50, i32 0, i32 0
  %446 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %445, ptr noundef nonnull align 8 dereferenceable(32) %51)
          to label %447 unwind label %478

447:                                              ; preds = %444
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #7
  %448 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %54, i32 0, i32 0
  store ptr null, ptr %448, align 8, !tbaa !24
  %449 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %54, i32 0, i32 1
  %450 = load i32, ptr %44, align 4, !tbaa !9
  store i32 %450, ptr %449, align 8, !tbaa !26
  %451 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %54, i32 0, i32 2
  %452 = load ptr, ptr %23, align 8, !tbaa !5
  %453 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %452, i32 0, i32 1
  %454 = load ptr, ptr %453, align 8, !tbaa !19
  store ptr %454, ptr %451, align 8, !tbaa !27
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %53, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %54)
          to label %455 unwind label %484

455:                                              ; preds = %447
  %456 = getelementptr inbounds %"struct.AST::PathBinding", ptr %50, i32 0, i32 1
  %457 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %456, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %458 unwind label %488

458:                                              ; preds = %455
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  %459 = load ptr, ptr %9, align 8, !tbaa !5
  %460 = load ptr, ptr %6, align 8, !tbaa !5
  %461 = load ptr, ptr %49, align 8, !tbaa !5
  %462 = getelementptr inbounds %"struct.HIR::Enum::ValueVariant", ptr %461, i32 0, i32 0
  %463 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %55, ptr noundef nonnull align 8 dereferenceable(64) %50)
          to label %464 unwind label %493

464:                                              ; preds = %458
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %459, ptr noundef nonnull align 8 dereferenceable(480) %460, ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef nonnull align 8 dereferenceable(36) %463, ptr noundef %55, i1 noundef zeroext false)
          to label %465 unwind label %497

465:                                              ; preds = %464
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %55) #7
  %466 = load i32, ptr %44, align 4, !tbaa !9
  %467 = add i32 %466, 1
  store i32 %467, ptr %44, align 4, !tbaa !9
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %50) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %468

468:                                              ; preds = %465
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #7
  br label %434

470:                                              ; preds = %437
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %14, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %15, align 4
  br label %483

474:                                              ; preds = %443
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %14, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %15, align 4
  br label %482

478:                                              ; preds = %444
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %14, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %482

482:                                              ; preds = %478, %474
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  br label %483

483:                                              ; preds = %482, %470
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  br label %501

484:                                              ; preds = %447
  %485 = landingpad { ptr, i32 }
          cleanup
  %486 = extractvalue { ptr, i32 } %485, 0
  store ptr %486, ptr %14, align 8
  %487 = extractvalue { ptr, i32 } %485, 1
  store i32 %487, ptr %15, align 4
  br label %492

488:                                              ; preds = %455
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %14, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %15, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #7
  br label %492

492:                                              ; preds = %488, %484
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #7
  br label %501

493:                                              ; preds = %458
  %494 = landingpad { ptr, i32 }
          cleanup
  %495 = extractvalue { ptr, i32 } %494, 0
  store ptr %495, ptr %14, align 8
  %496 = extractvalue { ptr, i32 } %494, 1
  store i32 %496, ptr %15, align 4
  br label %501

497:                                              ; preds = %464
  %498 = landingpad { ptr, i32 }
          cleanup
  %499 = extractvalue { ptr, i32 } %498, 0
  store ptr %499, ptr %14, align 8
  %500 = extractvalue { ptr, i32 } %498, 1
  store i32 %500, ptr %15, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %55) #7
  br label %501

501:                                              ; preds = %497, %493, %492, %483
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %50) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %653

502:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %652

503:                                              ; preds = %414
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %504 = load ptr, ptr %23, align 8, !tbaa !5
  %505 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %504, i32 0, i32 1
  %506 = load ptr, ptr %505, align 8, !tbaa !19
  %507 = getelementptr inbounds %"class.HIR::Enum", ptr %506, i32 0, i32 3
  %508 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %507)
  store ptr %508, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %509 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %509, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %510 = load ptr, ptr %57, align 8, !tbaa !5
  %511 = call ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %510) #7
  %512 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.595", ptr %58, i32 0, i32 0
  store ptr %511, ptr %512, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #7
  %513 = load ptr, ptr %57, align 8, !tbaa !5
  %514 = call ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %513) #7
  %515 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.595", ptr %59, i32 0, i32 0
  store ptr %514, ptr %515, align 8
  br label %516

516:                                              ; preds = %648, %503
  %517 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %59) #7
  br i1 %517, label %519, label %518

518:                                              ; preds = %516
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  br label %651

519:                                              ; preds = %516
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  %520 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  store ptr %520, ptr %60, align 8, !tbaa !5
  %521 = load ptr, ptr %60, align 8, !tbaa !5
  %522 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %521, i32 0, i32 1
  %523 = load i8, ptr %522, align 8, !tbaa !28, !range !33, !noundef !34
  %524 = trunc i8 %523 to i1
  br i1 %524, label %525, label %585

525:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 64, ptr %61) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %61)
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  %526 = load ptr, ptr %10, align 8, !tbaa !5
  %527 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %526, i32 0, i32 0
  %528 = load ptr, ptr %60, align 8, !tbaa !5
  %529 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %528, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %529)
          to label %530 unwind label %553

530:                                              ; preds = %525
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %62, ptr noundef nonnull align 8 dereferenceable(32) %527, ptr noundef %63)
          to label %531 unwind label %557

531:                                              ; preds = %530
  %532 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %61, i32 0, i32 0
  %533 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %532, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %534 unwind label %561

534:                                              ; preds = %531
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %64) #7
  %535 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %65, i32 0, i32 0
  store ptr null, ptr %535, align 8, !tbaa !20
  %536 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %65, i32 0, i32 1
  %537 = load i32, ptr %44, align 4, !tbaa !9
  store i32 %537, ptr %536, align 8, !tbaa !22
  %538 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_EnumVar", ptr %65, i32 0, i32 2
  %539 = load ptr, ptr %23, align 8, !tbaa !5
  %540 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %539, i32 0, i32 1
  %541 = load ptr, ptr %540, align 8, !tbaa !19
  store ptr %541, ptr %538, align 8, !tbaa !23
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Type") align 8 %64, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %65)
          to label %542 unwind label %567

542:                                              ; preds = %534
  %543 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %61, i32 0, i32 1
  %544 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %543, ptr noundef nonnull align 8 dereferenceable(32) %64)
          to label %545 unwind label %571

545:                                              ; preds = %542
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  %546 = load ptr, ptr %9, align 8, !tbaa !5
  %547 = load ptr, ptr %6, align 8, !tbaa !5
  %548 = load ptr, ptr %60, align 8, !tbaa !5
  %549 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %548, i32 0, i32 0
  %550 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %66, ptr noundef nonnull align 8 dereferenceable(64) %61)
          to label %551 unwind label %576

551:                                              ; preds = %545
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %546, ptr noundef nonnull align 8 dereferenceable(480) %547, ptr noundef nonnull align 8 dereferenceable(8) %549, ptr noundef nonnull align 8 dereferenceable(36) %550, ptr noundef %66, i1 noundef zeroext false)
          to label %552 unwind label %580

552:                                              ; preds = %551
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %66) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %61) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %61) #7
  br label %645

553:                                              ; preds = %525
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %14, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %15, align 4
  br label %566

557:                                              ; preds = %530
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %14, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %15, align 4
  br label %565

561:                                              ; preds = %531
  %562 = landingpad { ptr, i32 }
          cleanup
  %563 = extractvalue { ptr, i32 } %562, 0
  store ptr %563, ptr %14, align 8
  %564 = extractvalue { ptr, i32 } %562, 1
  store i32 %564, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %565

565:                                              ; preds = %561, %557
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #7
  br label %566

566:                                              ; preds = %565, %553
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  br label %584

567:                                              ; preds = %534
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %14, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %15, align 4
  br label %575

571:                                              ; preds = %542
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %14, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %15, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #7
  br label %575

575:                                              ; preds = %571, %567
  call void @llvm.lifetime.end.p0(i64 32, ptr %64) #7
  br label %584

576:                                              ; preds = %545
  %577 = landingpad { ptr, i32 }
          cleanup
  %578 = extractvalue { ptr, i32 } %577, 0
  store ptr %578, ptr %14, align 8
  %579 = extractvalue { ptr, i32 } %577, 1
  store i32 %579, ptr %15, align 4
  br label %584

580:                                              ; preds = %551
  %581 = landingpad { ptr, i32 }
          cleanup
  %582 = extractvalue { ptr, i32 } %581, 0
  store ptr %582, ptr %14, align 8
  %583 = extractvalue { ptr, i32 } %581, 1
  store i32 %583, ptr %15, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %66) #7
  br label %584

584:                                              ; preds = %580, %576, %575, %566
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %61) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %61) #7
  br label %650

585:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 64, ptr %67) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %67)
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #7
  %586 = load ptr, ptr %10, align 8, !tbaa !5
  %587 = getelementptr inbounds %"struct.AST::PathBinding.61", ptr %586, i32 0, i32 0
  %588 = load ptr, ptr %60, align 8, !tbaa !5
  %589 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %588, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %589)
          to label %590 unwind label %613

590:                                              ; preds = %585
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %68, ptr noundef nonnull align 8 dereferenceable(32) %587, ptr noundef %69)
          to label %591 unwind label %617

591:                                              ; preds = %590
  %592 = getelementptr inbounds %"struct.AST::PathBinding", ptr %67, i32 0, i32 0
  %593 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %592, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %594 unwind label %621

594:                                              ; preds = %591
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  %595 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %71, i32 0, i32 0
  store ptr null, ptr %595, align 8, !tbaa !24
  %596 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %71, i32 0, i32 1
  %597 = load i32, ptr %44, align 4, !tbaa !9
  store i32 %597, ptr %596, align 8, !tbaa !26
  %598 = getelementptr inbounds %"struct.AST::PathBinding_Value::Data_EnumVar", ptr %71, i32 0, i32 2
  %599 = load ptr, ptr %23, align 8, !tbaa !5
  %600 = getelementptr inbounds %"struct.AST::PathBinding_Type::Data_Enum", ptr %599, i32 0, i32 1
  %601 = load ptr, ptr %600, align 8, !tbaa !19
  store ptr %601, ptr %598, align 8, !tbaa !27
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind writable sret(%"class.AST::PathBinding_Value") align 8 %70, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %71)
          to label %602 unwind label %627

602:                                              ; preds = %594
  %603 = getelementptr inbounds %"struct.AST::PathBinding", ptr %67, i32 0, i32 1
  %604 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %603, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %605 unwind label %631

605:                                              ; preds = %602
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  %606 = load ptr, ptr %9, align 8, !tbaa !5
  %607 = load ptr, ptr %6, align 8, !tbaa !5
  %608 = load ptr, ptr %60, align 8, !tbaa !5
  %609 = getelementptr inbounds %"struct.HIR::Enum::DataVariant", ptr %608, i32 0, i32 0
  %610 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %72, ptr noundef nonnull align 8 dereferenceable(64) %67)
          to label %611 unwind label %636

611:                                              ; preds = %605
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %606, ptr noundef nonnull align 8 dereferenceable(480) %607, ptr noundef nonnull align 8 dereferenceable(8) %609, ptr noundef nonnull align 8 dereferenceable(36) %610, ptr noundef %72, i1 noundef zeroext false)
          to label %612 unwind label %640

612:                                              ; preds = %611
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %72) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %67) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %67) #7
  br label %645

613:                                              ; preds = %585
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %14, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %15, align 4
  br label %626

617:                                              ; preds = %590
  %618 = landingpad { ptr, i32 }
          cleanup
  %619 = extractvalue { ptr, i32 } %618, 0
  store ptr %619, ptr %14, align 8
  %620 = extractvalue { ptr, i32 } %618, 1
  store i32 %620, ptr %15, align 4
  br label %625

621:                                              ; preds = %591
  %622 = landingpad { ptr, i32 }
          cleanup
  %623 = extractvalue { ptr, i32 } %622, 0
  store ptr %623, ptr %14, align 8
  %624 = extractvalue { ptr, i32 } %622, 1
  store i32 %624, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %625

625:                                              ; preds = %621, %617
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #7
  br label %626

626:                                              ; preds = %625, %613
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  br label %644

627:                                              ; preds = %594
  %628 = landingpad { ptr, i32 }
          cleanup
  %629 = extractvalue { ptr, i32 } %628, 0
  store ptr %629, ptr %14, align 8
  %630 = extractvalue { ptr, i32 } %628, 1
  store i32 %630, ptr %15, align 4
  br label %635

631:                                              ; preds = %602
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %14, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %15, align 4
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %635

635:                                              ; preds = %631, %627
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %644

636:                                              ; preds = %605
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %14, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %15, align 4
  br label %644

640:                                              ; preds = %611
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %14, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %15, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %72) #7
  br label %644

644:                                              ; preds = %640, %636, %635, %626
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %67) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %67) #7
  br label %650

645:                                              ; preds = %612, %552
  %646 = load i32, ptr %44, align 4, !tbaa !9
  %647 = add i32 %646, 1
  store i32 %647, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  br label %648

648:                                              ; preds = %645
  %649 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %58) #7
  br label %516

650:                                              ; preds = %644, %584
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %653

651:                                              ; preds = %518
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %652

652:                                              ; preds = %651, %502
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %654

653:                                              ; preds = %650, %501
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  br label %655

654:                                              ; preds = %652, %398
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %676

655:                                              ; preds = %653, %397, %227, %223
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %677

656:                                              ; preds = %198
  br label %657

657:                                              ; preds = %656
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #7
  %658 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %658)
  call void @llvm.lifetime.start.p0(i64 16, ptr %75) #7
  %659 = getelementptr inbounds %class.anon.596, ptr %75, i32 0, i32 0
  %660 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %660, ptr %659, align 8, !tbaa !5
  %661 = getelementptr inbounds %class.anon.596, ptr %75, i32 0, i32 1
  %662 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %662, ptr %661, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(16) %75) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef %74)
          to label %663 unwind label %666

663:                                              ; preds = %657
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  %664 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %664, ptr noundef @.str.5)
          to label %665 unwind label %670

665:                                              ; preds = %663
  call void @__cxa_throw(ptr %664, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #8
  unreachable

666:                                              ; preds = %657
  %667 = landingpad { ptr, i32 }
          cleanup
  %668 = extractvalue { ptr, i32 } %667, 0
  store ptr %668, ptr %14, align 8
  %669 = extractvalue { ptr, i32 } %667, 1
  store i32 %669, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %75) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #7
  br label %677

670:                                              ; preds = %663
  %671 = landingpad { ptr, i32 }
          cleanup
  %672 = extractvalue { ptr, i32 } %671, 0
  store ptr %672, ptr %14, align 8
  %673 = extractvalue { ptr, i32 } %671, 1
  store i32 %673, ptr %15, align 4
  call void @__cxa_free_exception(ptr %664) #7
  br label %677

674:                                              ; No predecessors!
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675, %654
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %678

677:                                              ; preds = %670, %666, %655
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %679

678:                                              ; preds = %676, %197
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %680

679:                                              ; preds = %677, %186, %165, %161
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %681

680:                                              ; preds = %678, %117
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  ret void

681:                                              ; preds = %679, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  br label %682

682:                                              ; preds = %681
  %683 = load ptr, ptr %14, align 8
  %684 = load i32, ptr %15, align 4
  %685 = insertvalue { ptr, i32 } poison, ptr %683, 0
  %686 = insertvalue { ptr, i32 } %685, i32 %684, 1
  resume { ptr, i32 } %686
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3AST16PathBinding_Type9opt_CrateEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3AST16PathBinding_Type10opt_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3AST16PathBinding_Type8opt_EnumEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Enum8variantsEv(ptr noundef nonnull align 8 dereferenceable(80)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST15EnumVariantData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR4Enum5Class8is_ValueEv(ptr noundef nonnull align 8 dereferenceable(40)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3HIR4Enum5Class9opt_ValueEv(ptr noundef nonnull align 8 dereferenceable(40)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

attributes #0 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 0}
!12 = !{!"_ZTSN3AST16PathBinding_Type10Data_CrateE", !6, i64 0}
!13 = !{!14, !6, i64 0}
!14 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !6, i64 0, !15, i64 8}
!15 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !6, i64 0, !6, i64 8}
!16 = !{!14, !6, i64 16}
!17 = !{!18, !6, i64 0}
!18 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !6, i64 0, !6, i64 8}
!19 = !{!18, !6, i64 8}
!20 = !{!21, !6, i64 0}
!21 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!22 = !{!21, !10, i64 8}
!23 = !{!21, !6, i64 16}
!24 = !{!25, !6, i64 0}
!25 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !6, i64 0, !10, i64 8, !6, i64 16}
!26 = !{!25, !10, i64 8}
!27 = !{!25, !6, i64 16}
!28 = !{!29, !31, i64 8}
!29 = !{!"_ZTSN3HIR4Enum11DataVariantE", !30, i64 0, !31, i64 8, !32, i64 16}
!30 = !{!"_ZTS8RcString", !6, i64 0}
!31 = !{!"bool", !7, i64 0}
!32 = !{!"_ZTSN3HIR7TypeRefE", !6, i64 0}
!33 = !{i8 0, i8 2}
!34 = !{}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector" }
%class.RcString = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl" = type { %"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" }
%"struct.std::_Vector_base<RcString, std::allocator<RcString>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::PathBinding_Type" = type { i32, %"union.AST::PathBinding_Type::DataUnion" }
%"union.AST::PathBinding_Type::DataUnion" = type { %"struct.AST::PathBinding_Type::Data_Module" }
%"struct.AST::PathBinding_Type::Data_Module" = type { ptr, %"struct.AST::PathBinding_Type::(anonymous struct)::Hir" }
%"struct.AST::PathBinding_Type::(anonymous struct)::Hir" = type { ptr, ptr }
%"struct.AST::PathBinding_Type::Data_EnumVar" = type { ptr, i32, ptr }
%"class.AST::PathBinding_Value" = type { i32, %"union.AST::PathBinding_Value::DataUnion" }
%"union.AST::PathBinding_Value::DataUnion" = type { %"struct.AST::PathBinding_Value::Data_EnumVar" }
%"struct.AST::PathBinding_Value::Data_EnumVar" = type { ptr, i32, ptr }
%struct.Span = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.591 = type { ptr }
%class.anon.592 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.593" = type { ptr }
%"struct.AST::PathBinding.61" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"class.AST::Path" = type { ptr, %"class.AST::Path::Class", %"struct.AST::Path::Bindings" }
%"class.AST::Path::Class" = type { i32, %"union.AST::Path::Class::DataUnion" }
%"union.AST::Path::Class::DataUnion" = type { %"struct.AST::Path::Class::Data_UFCS" }
%"struct.AST::Path::Class::Data_UFCS" = type { %"class.std::unique_ptr.45", %"class.std::unique_ptr.53", %"class.std::vector.40" }
%"class.std::unique_ptr.45" = type { %"struct.std::__uniq_ptr_data.46" }
%"struct.std::__uniq_ptr_data.46" = type { %"class.std::__uniq_ptr_impl.47" }
%"class.std::__uniq_ptr_impl.47" = type { %"class.std::tuple.48" }
%"class.std::tuple.48" = type { %"struct.std::_Tuple_impl.49" }
%"struct.std::_Tuple_impl.49" = type { %"struct.std::_Head_base.52" }
%"struct.std::_Head_base.52" = type { ptr }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathNode, std::allocator<AST::PathNode>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Path::Bindings" = type { %"struct.AST::PathBinding", %"struct.AST::PathBinding.61", %"struct.AST::PathBinding.62" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::PathBinding.62" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%"class.__gnu_cxx::__normal_iterator.594" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.595" = type { ptr }
%class.anon.596 = type { ptr, ptr }

@.str.5 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE = external hidden unnamed_addr constant [40 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #2

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind noalias writable sret(%"struct.AST::AbsolutePath") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

; Function Attrs: nounwind
declare void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

; Function Attrs: nounwind
declare void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #2

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #0

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef, i1 noundef zeroext) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(216), ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(36), ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Type") align 8, ptr noundef byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind noalias writable sret(%"class.AST::PathBinding_Value") align 8, ptr noundef byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z37Resolve_Index_Module_Wildcard__submodRN3AST5CrateERNS_6ModuleERKS2_RKNS_10VisibilityE(ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(36)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local void @_Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(256) %2, ptr noundef nonnull align 8 dereferenceable(36) %3) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"struct.AST::AbsolutePath", align 8
  %6 = alloca %struct.Span, align 8
  %7 = alloca %"class.std::function", align 8
  %8 = alloca %class.anon.591, align 8
  %9 = alloca %"struct.AST::AbsolutePath", align 8
  %10 = alloca %struct.Span, align 8
  %11 = alloca %"class.std::function", align 8
  %12 = alloca %class.anon.592, align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.593", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator.593", align 8
  %15 = alloca %"struct.AST::PathBinding.61", align 8
  %16 = alloca %"struct.AST::AbsolutePath", align 8
  %17 = alloca %class.RcString, align 8
  %18 = alloca %"class.AST::PathBinding_Type", align 8
  %19 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %20 = alloca %"class.AST::Path", align 8
  %21 = alloca %"struct.AST::PathBinding", align 8
  %22 = alloca %"struct.AST::AbsolutePath", align 8
  %23 = alloca %class.RcString, align 8
  %24 = alloca %"class.AST::PathBinding_Value", align 8
  %25 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %26 = alloca %"class.AST::Path", align 8
  %27 = alloca %"class.__gnu_cxx::__normal_iterator.594", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.594", align 8
  %29 = alloca %"struct.AST::PathBinding", align 8
  %30 = alloca %"struct.AST::AbsolutePath", align 8
  %31 = alloca %class.RcString, align 8
  %32 = alloca %"class.AST::PathBinding_Value", align 8
  %33 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %34 = alloca %"class.AST::Path", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.595", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.595", align 8
  %37 = alloca %"struct.AST::PathBinding.61", align 8
  %38 = alloca %"struct.AST::AbsolutePath", align 8
  %39 = alloca %class.RcString, align 8
  %40 = alloca %"class.AST::PathBinding_Type", align 8
  %41 = alloca %"struct.AST::PathBinding_Type::Data_EnumVar", align 8
  %42 = alloca %"class.AST::Path", align 8
  %43 = alloca %"struct.AST::PathBinding", align 8
  %44 = alloca %"struct.AST::AbsolutePath", align 8
  %45 = alloca %class.RcString, align 8
  %46 = alloca %"class.AST::PathBinding_Value", align 8
  %47 = alloca %"struct.AST::PathBinding_Value::Data_EnumVar", align 8
  %48 = alloca %"class.AST::Path", align 8
  %49 = alloca %struct.Span, align 8
  %50 = alloca %"class.std::function", align 8
  %51 = alloca %class.anon.596, align 8
  %52 = getelementptr inbounds i8, ptr %2, i64 8
  %53 = getelementptr inbounds i8, ptr %2, i64 128
  %54 = getelementptr inbounds i8, ptr %2, i64 160
  %55 = tail call noundef ptr @_ZNK3AST16PathBinding_Type9opt_CrateEv(ptr noundef nonnull align 8 dereferenceable(32) %54)
  %.not = icmp eq ptr %55, null
  br i1 %.not, label %73, label %56

56:                                               ; preds = %4
  %57 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %57, label %58, label %65

58:                                               ; preds = %56
  %59 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %60 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %59, ptr noundef nonnull @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %61 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull @.str.30)
  %62 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(240) %52)
  %63 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %64 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %65

65:                                               ; preds = %58, %56
  %66 = load ptr, ptr %55, align 8, !tbaa !9
  %67 = getelementptr inbounds i8, ptr %66, i64 48
  %68 = tail call noundef ptr @_ZNK3HIR8CratePtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %67)
  %69 = getelementptr inbounds i8, ptr %68, i64 16
  call void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %53)
  invoke void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(216) %69, ptr noundef nonnull align 8 dereferenceable(240) %52, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %5)
          to label %70 unwind label %71

70:                                               ; preds = %65
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %292

71:                                               ; preds = %65
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #7
  br label %293

73:                                               ; preds = %4
  %74 = tail call noundef ptr @_ZNK3AST16PathBinding_Type10opt_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32) %54)
  %.not123 = icmp eq ptr %74, null
  br i1 %.not123, label %102, label %75

75:                                               ; preds = %73
  %76 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %76, label %77, label %84

77:                                               ; preds = %75
  %78 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %79 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %78, ptr noundef nonnull @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %80 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull @.str.31)
  %81 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(240) %52)
  %82 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %83 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %84

84:                                               ; preds = %77, %75
  %85 = load ptr, ptr %74, align 8, !tbaa !12
  %.not142 = icmp eq ptr %85, null
  br i1 %.not142, label %86, label %101

86:                                               ; preds = %84
  %87 = getelementptr inbounds i8, ptr %74, i64 16
  %88 = load ptr, ptr %87, align 8, !tbaa !15
  %.not143 = icmp eq ptr %88, null
  br i1 %.not143, label %89, label %97

89:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #7
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  store ptr %2, ptr %8, align 8, !tbaa !16
  call void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull %7)
          to label %90 unwind label %93

90:                                               ; preds = %89
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  %91 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %91, ptr noundef nonnull @.str.5)
          to label %92 unwind label %95

92:                                               ; preds = %90
  call void @__cxa_throw(ptr nonnull %91, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
  unreachable

93:                                               ; preds = %89
  %94 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #7
  br label %293

95:                                               ; preds = %90
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %91) #7
  br label %293

97:                                               ; preds = %86
  call void @_ZN3AST12AbsolutePathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %53)
  invoke void @_Z46Resolve_Index_Module_Wildcard__glob_in_hir_modRK4SpanRKN3AST5CrateERNS2_6ModuleERKN3HIR6ModuleERKNS2_4PathERKNS2_10VisibilityENS2_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(216) %88, ptr noundef nonnull align 8 dereferenceable(240) %52, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %9)
          to label %98 unwind label %99

98:                                               ; preds = %97
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %292

99:                                               ; preds = %97
  %100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #7
  br label %293

101:                                              ; preds = %84
  tail call void @_Z37Resolve_Index_Module_Wildcard__submodRN3AST5CrateERNS_6ModuleERKS2_RKNS_10VisibilityE(ptr noundef nonnull align 8 dereferenceable(1112) %0, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(480) %85, ptr noundef nonnull align 8 dereferenceable(36) %3)
  br label %292

102:                                              ; preds = %73
  %103 = tail call noundef ptr @_ZNK3AST16PathBinding_Type8opt_EnumEv(ptr noundef nonnull align 8 dereferenceable(32) %54)
  %.not124 = icmp eq ptr %103, null
  br i1 %.not124, label %283, label %104

104:                                              ; preds = %102
  %105 = load ptr, ptr %103, align 8, !tbaa !17
  %.not125 = icmp eq ptr %105, null
  br i1 %.not125, label %106, label %117

106:                                              ; preds = %104
  %107 = getelementptr inbounds i8, ptr %103, i64 8
  %108 = load ptr, ptr %107, align 8, !tbaa !19
  %.not126 = icmp eq ptr %108, null
  br i1 %.not126, label %109, label %183

109:                                              ; preds = %106
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #7
  store ptr %2, ptr %12, align 8, !tbaa !16
  call void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull %11)
          to label %110 unwind label %113

110:                                              ; preds = %109
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  %111 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull @.str.5)
          to label %112 unwind label %115

112:                                              ; preds = %110
  call void @__cxa_throw(ptr nonnull %111, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
  unreachable

113:                                              ; preds = %109
  %114 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  br label %293

115:                                              ; preds = %110
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %111) #7
  br label %293

117:                                              ; preds = %104
  %118 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %118, label %119, label %127

119:                                              ; preds = %117
  %120 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %121 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %120, ptr noundef nonnull @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %122 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %121, ptr noundef nonnull @.str.32)
  %123 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull align 8 dereferenceable(240) %52)
  %124 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull @.str.33)
  %125 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %126 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %125, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %127

127:                                              ; preds = %119, %117
  %128 = load ptr, ptr %103, align 8, !tbaa !17
  %129 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Enum8variantsEv(ptr noundef nonnull align 8 dereferenceable(80) %128)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %130 = tail call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %129) #7
  store ptr %130, ptr %13, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  %131 = tail call ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %129) #7
  store ptr %131, ptr %14, align 8
  %132 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br i1 %132, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %127
  %133 = getelementptr inbounds i8, ptr %25, i64 8
  %134 = getelementptr inbounds i8, ptr %25, i64 16
  %135 = getelementptr inbounds i8, ptr %21, i64 32
  %136 = getelementptr inbounds i8, ptr %19, i64 8
  %137 = getelementptr inbounds i8, ptr %19, i64 16
  %138 = getelementptr inbounds i8, ptr %15, i64 32
  br label %139

._crit_edge:                                      ; preds = %178, %127
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %292

139:                                              ; preds = %.lr.ph, %178
  %.0115148 = phi i32 [ 0, %.lr.ph ], [ %179, %178 ]
  %140 = call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  %141 = getelementptr inbounds i8, ptr %140, i64 32
  %142 = call noundef zeroext i1 @_ZNK3AST15EnumVariantData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32) %141)
  %143 = getelementptr inbounds i8, ptr %140, i64 24
  br i1 %142, label %144, label %161

144:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %15)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %143)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull %17)
          to label %145 unwind label %152

145:                                              ; preds = %144
  %146 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %16)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  %147 = load ptr, ptr %103, align 8, !tbaa !17
  store ptr %147, ptr %19, align 8, !tbaa !20
  store i32 %.0115148, ptr %136, align 8, !tbaa !22
  store ptr null, ptr %137, align 8, !tbaa !23
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %18, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %19)
          to label %148 unwind label %154

148:                                              ; preds = %145
  %149 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %138, ptr noundef nonnull align 8 dereferenceable(32) %18)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %20, ptr noundef nonnull align 8 dereferenceable(64) %15)
          to label %150 unwind label %156

150:                                              ; preds = %148
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %20, i1 noundef zeroext false)
          to label %151 unwind label %158

151:                                              ; preds = %150
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %20) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %15) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #7
  br label %178

152:                                              ; preds = %144
  %153 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  br label %160

154:                                              ; preds = %145
  %155 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %160

156:                                              ; preds = %148
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %160

158:                                              ; preds = %150
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %20) #7
  br label %160

160:                                              ; preds = %158, %156, %154, %152
  %.pn137 = phi { ptr, i32 } [ %159, %158 ], [ %157, %156 ], [ %155, %154 ], [ %153, %152 ]
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %15) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #7
  br label %182

161:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %21) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %21)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %143)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull %23)
          to label %162 unwind label %169

162:                                              ; preds = %161
  %163 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %22)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #7
  %164 = load ptr, ptr %103, align 8, !tbaa !17
  store ptr %164, ptr %25, align 8, !tbaa !24
  store i32 %.0115148, ptr %133, align 8, !tbaa !26
  store ptr null, ptr %134, align 8, !tbaa !27
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %24, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %25)
          to label %165 unwind label %171

165:                                              ; preds = %162
  %166 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %135, ptr noundef nonnull align 8 dereferenceable(32) %24)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %26, ptr noundef nonnull align 8 dereferenceable(64) %21)
          to label %167 unwind label %173

167:                                              ; preds = %165
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %26, i1 noundef zeroext false)
          to label %168 unwind label %175

168:                                              ; preds = %167
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %26) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %21) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %21) #7
  br label %178

169:                                              ; preds = %161
  %170 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #7
  br label %177

171:                                              ; preds = %162
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #7
  br label %177

173:                                              ; preds = %165
  %174 = landingpad { ptr, i32 }
          cleanup
  br label %177

175:                                              ; preds = %167
  %176 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %26) #7
  br label %177

177:                                              ; preds = %175, %173, %171, %169
  %.pn135 = phi { ptr, i32 } [ %176, %175 ], [ %174, %173 ], [ %172, %171 ], [ %170, %169 ]
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %21) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %21) #7
  br label %182

178:                                              ; preds = %168, %151
  %179 = add i32 %.0115148, 1
  %180 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13) #7
  %181 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #7
  br i1 %181, label %139, label %._crit_edge

182:                                              ; preds = %177, %160
  %.pn137.pn = phi { ptr, i32 } [ %.pn137, %160 ], [ %.pn135, %177 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  br label %293

183:                                              ; preds = %106
  %184 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %184, label %185, label %193

185:                                              ; preds = %183
  %186 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %187 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %186, ptr noundef nonnull @__FUNCTION__._Z39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS_6ModuleERKNS_7UseItem3EntERKNS_10VisibilityE)
  %188 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %187, ptr noundef nonnull @.str.32)
  %189 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull align 8 dereferenceable(240) %52)
  %190 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull @.str.34)
  %191 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %192 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %193

193:                                              ; preds = %185, %183
  %194 = load ptr, ptr %107, align 8, !tbaa !19
  %195 = getelementptr inbounds i8, ptr %194, i64 104
  %196 = tail call noundef zeroext i1 @_ZNK3HIR4Enum5Class8is_ValueEv(ptr noundef nonnull align 8 dereferenceable(40) %195)
  %197 = load ptr, ptr %107, align 8, !tbaa !19
  %198 = getelementptr inbounds i8, ptr %197, i64 104
  br i1 %196, label %199, label %228

199:                                              ; preds = %193
  %200 = tail call noundef ptr @_ZNK3HIR4Enum5Class9opt_ValueEv(ptr noundef nonnull align 8 dereferenceable(40) %198)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  %201 = tail call ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %200) #7
  store ptr %201, ptr %27, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #7
  %202 = tail call ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %200) #7
  store ptr %202, ptr %28, align 8
  %203 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br i1 %203, label %.lr.ph155, label %._crit_edge156

.lr.ph155:                                        ; preds = %199
  %204 = getelementptr inbounds i8, ptr %33, i64 8
  %205 = getelementptr inbounds i8, ptr %33, i64 16
  %206 = getelementptr inbounds i8, ptr %29, i64 32
  br label %207

._crit_edge156:                                   ; preds = %215, %199
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %292

207:                                              ; preds = %.lr.ph155, %215
  %.0116153 = phi i32 [ 0, %.lr.ph155 ], [ %216, %215 ]
  %208 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %29) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %29)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %208)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull %31)
          to label %209 unwind label %219

209:                                              ; preds = %207
  %210 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 8 dereferenceable(32) %30)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #7
  store ptr null, ptr %33, align 8, !tbaa !24
  store i32 %.0116153, ptr %204, align 8, !tbaa !26
  %211 = load ptr, ptr %107, align 8, !tbaa !19
  store ptr %211, ptr %205, align 8, !tbaa !27
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %32, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %33)
          to label %212 unwind label %221

212:                                              ; preds = %209
  %213 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %206, ptr noundef nonnull align 8 dereferenceable(32) %32)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %34, ptr noundef nonnull align 8 dereferenceable(64) %29)
          to label %214 unwind label %223

214:                                              ; preds = %212
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %208, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %34, i1 noundef zeroext false)
          to label %215 unwind label %225

215:                                              ; preds = %214
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %34) #7
  %216 = add i32 %.0116153, 1
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %29) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #7
  %217 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  %218 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %28) #7
  br i1 %218, label %207, label %._crit_edge156

219:                                              ; preds = %207
  %220 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #7
  br label %227

221:                                              ; preds = %209
  %222 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #7
  br label %227

223:                                              ; preds = %212
  %224 = landingpad { ptr, i32 }
          cleanup
  br label %227

225:                                              ; preds = %214
  %226 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %34) #7
  br label %227

227:                                              ; preds = %225, %223, %221, %219
  %.pn132 = phi { ptr, i32 } [ %226, %225 ], [ %224, %223 ], [ %222, %221 ], [ %220, %219 ]
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %29) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  br label %293

228:                                              ; preds = %193
  %229 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40) %198)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #7
  %230 = tail call ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %229) #7
  store ptr %230, ptr %35, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  %231 = tail call ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %229) #7
  store ptr %231, ptr %36, align 8
  %232 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  br i1 %232, label %.lr.ph151, label %._crit_edge152

.lr.ph151:                                        ; preds = %228
  %233 = getelementptr inbounds i8, ptr %47, i64 8
  %234 = getelementptr inbounds i8, ptr %47, i64 16
  %235 = getelementptr inbounds i8, ptr %43, i64 32
  %236 = getelementptr inbounds i8, ptr %41, i64 8
  %237 = getelementptr inbounds i8, ptr %41, i64 16
  %238 = getelementptr inbounds i8, ptr %37, i64 32
  br label %239

._crit_edge152:                                   ; preds = %278, %228
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br label %292

239:                                              ; preds = %.lr.ph151, %278
  %.1117149 = phi i32 [ 0, %.lr.ph151 ], [ %279, %278 ]
  %240 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  %241 = getelementptr inbounds i8, ptr %240, i64 8
  %242 = load i8, ptr %241, align 8, !tbaa !28, !range !33, !noundef !34
  %243 = trunc nuw i8 %242 to i1
  br i1 %243, label %244, label %261

244:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %37) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %37)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %240)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %38, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull %39)
          to label %245 unwind label %252

245:                                              ; preds = %244
  %246 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(32) %38)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #7
  store ptr null, ptr %41, align 8, !tbaa !20
  store i32 %.1117149, ptr %236, align 8, !tbaa !22
  %247 = load ptr, ptr %107, align 8, !tbaa !19
  store ptr %247, ptr %237, align 8, !tbaa !23
  invoke void @_ZN3AST16PathBinding_Type12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Type") align 8 %40, ptr noundef nonnull byval(%"struct.AST::PathBinding_Type::Data_EnumVar") align 8 %41)
          to label %248 unwind label %254

248:                                              ; preds = %245
  %249 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST16PathBinding_TypeaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %238, ptr noundef nonnull align 8 dereferenceable(32) %40)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_16PathBinding_TypeEEE(ptr noundef nonnull align 8 dereferenceable(240) %42, ptr noundef nonnull align 8 dereferenceable(64) %37)
          to label %250 unwind label %256

250:                                              ; preds = %248
  invoke void @_Z14_add_item_typeRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %42, i1 noundef zeroext false)
          to label %251 unwind label %258

251:                                              ; preds = %250
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %42) #7
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %37) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %37) #7
  br label %278

252:                                              ; preds = %244
  %253 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %260

254:                                              ; preds = %245
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #7
  br label %260

256:                                              ; preds = %248
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %260

258:                                              ; preds = %250
  %259 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %42) #7
  br label %260

260:                                              ; preds = %258, %256, %254, %252
  %.pn129 = phi { ptr, i32 } [ %259, %258 ], [ %257, %256 ], [ %255, %254 ], [ %253, %252 ]
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %37) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %37) #7
  br label %282

261:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %43) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEEC2Ev(ptr noundef nonnull align 8 dereferenceable(64) %43)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %44) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %240)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %44, ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull %45)
          to label %262 unwind label %269

262:                                              ; preds = %261
  %263 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST12AbsolutePathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 8 dereferenceable(32) %44)
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #7
  store ptr null, ptr %47, align 8, !tbaa !24
  store i32 %.1117149, ptr %233, align 8, !tbaa !26
  %264 = load ptr, ptr %107, align 8, !tbaa !19
  store ptr %264, ptr %234, align 8, !tbaa !27
  invoke void @_ZN3AST17PathBinding_Value12make_EnumVarENS0_12Data_EnumVarE(ptr dead_on_unwind nonnull writable sret(%"class.AST::PathBinding_Value") align 8 %46, ptr noundef nonnull byval(%"struct.AST::PathBinding_Value::Data_EnumVar") align 8 %47)
          to label %265 unwind label %271

265:                                              ; preds = %262
  %266 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST17PathBinding_ValueaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %235, ptr noundef nonnull align 8 dereferenceable(32) %46)
  call void @_ZN3AST17PathBinding_ValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  invoke void @_ZN3AST4PathC2ERKNS_11PathBindingINS_17PathBinding_ValueEEE(ptr noundef nonnull align 8 dereferenceable(240) %48, ptr noundef nonnull align 8 dereferenceable(64) %43)
          to label %267 unwind label %273

267:                                              ; preds = %265
  invoke void @_Z15_add_item_valueRK4SpanRN3AST6ModuleERK8RcStringRKNS2_10VisibilityENS2_4PathEb(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(480) %1, ptr noundef nonnull align 8 dereferenceable(8) %240, ptr noundef nonnull align 8 dereferenceable(36) %3, ptr noundef nonnull %48, i1 noundef zeroext false)
          to label %268 unwind label %275

268:                                              ; preds = %267
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %48) #7
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %43) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %43) #7
  br label %278

269:                                              ; preds = %261
  %270 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %44) #7
  br label %277

271:                                              ; preds = %262
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #7
  br label %277

273:                                              ; preds = %265
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %277

275:                                              ; preds = %267
  %276 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %48) #7
  br label %277

277:                                              ; preds = %275, %273, %271, %269
  %.pn = phi { ptr, i32 } [ %276, %275 ], [ %274, %273 ], [ %272, %271 ], [ %270, %269 ]
  call void @_ZN3AST11PathBindingINS_17PathBinding_ValueEED2Ev(ptr noundef nonnull align 8 dereferenceable(64) %43) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %43) #7
  br label %282

278:                                              ; preds = %268, %251
  %279 = add i32 %.1117149, 1
  %280 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %35) #7
  %281 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  br i1 %281, label %239, label %._crit_edge152

282:                                              ; preds = %277, %260
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %260 ], [ %.pn, %277 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #7
  br label %293

283:                                              ; preds = %102
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #7
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %2)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %51) #7
  store ptr %53, ptr %51, align 8, !tbaa !16
  %284 = getelementptr inbounds i8, ptr %51, i64 8
  store ptr %2, ptr %284, align 8, !tbaa !16
  call void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 8 dereferenceable(16) %51) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull %50)
          to label %285 unwind label %288

285:                                              ; preds = %283
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  %286 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %286, ptr noundef nonnull @.str.5)
          to label %287 unwind label %290

287:                                              ; preds = %285
  call void @__cxa_throw(ptr nonnull %286, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
  unreachable

288:                                              ; preds = %283
  %289 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %51) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #7
  br label %293

290:                                              ; preds = %285
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %286) #7
  br label %293

292:                                              ; preds = %101, %98, %._crit_edge156, %._crit_edge152, %._crit_edge, %70
  ret void

293:                                              ; preds = %93, %95, %99, %113, %115, %182, %282, %227, %290, %288, %71
  %.pn146 = phi { ptr, i32 } [ %72, %71 ], [ %100, %99 ], [ %96, %95 ], [ %94, %93 ], [ %291, %290 ], [ %289, %288 ], [ %.pn137.pn, %182 ], [ %116, %115 ], [ %114, %113 ], [ %.pn132, %227 ], [ %.pn129.pn, %282 ]
  resume { ptr, i32 } %.pn146
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3AST16PathBinding_Type9opt_CrateEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3AST16PathBinding_Type10opt_ModuleEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3AST16PathBinding_Type8opt_EnumEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Enum8variantsEv(ptr noundef nonnull align 8 dereferenceable(80)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3AST11EnumVariantESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(64) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST15EnumVariantData9is_StructEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST11EnumVariantESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK3HIR4Enum5Class8is_ValueEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNK3HIR4Enum5Class9opt_ValueEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum12ValueVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum12ValueVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3HIR4Enum5Class7as_DataEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorIN3HIR4Enum11DataVariantESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3HIR4Enum11DataVariantESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ39Resolve_Index_Module_Wildcard__use_stmtRN3AST5CrateERNS4_6ModuleERKNS4_7UseItem3EntERKNS4_10VisibilityEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #3 align 2

attributes #0 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nounwind }
attributes #8 = { noreturn }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN3AST16PathBinding_Type10Data_CrateE", !11, i64 0}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!13, !11, i64 0}
!13 = !{!"_ZTSN3AST16PathBinding_Type11Data_ModuleE", !11, i64 0, !14, i64 8}
!14 = !{!"_ZTSN3AST16PathBinding_Type11Data_Module3HirE", !11, i64 0, !11, i64 8}
!15 = !{!13, !11, i64 16}
!16 = !{!11, !11, i64 0}
!17 = !{!18, !11, i64 0}
!18 = !{!"_ZTSN3AST16PathBinding_Type9Data_EnumE", !11, i64 0, !11, i64 8}
!19 = !{!18, !11, i64 8}
!20 = !{!21, !11, i64 0}
!21 = !{!"_ZTSN3AST16PathBinding_Type12Data_EnumVarE", !11, i64 0, !6, i64 8, !11, i64 16}
!22 = !{!21, !6, i64 8}
!23 = !{!21, !11, i64 16}
!24 = !{!25, !11, i64 0}
!25 = !{!"_ZTSN3AST17PathBinding_Value12Data_EnumVarE", !11, i64 0, !6, i64 8, !11, i64 16}
!26 = !{!25, !6, i64 8}
!27 = !{!25, !11, i64 16}
!28 = !{!29, !31, i64 8}
!29 = !{!"_ZTSN3HIR4Enum11DataVariantE", !30, i64 0, !31, i64 8, !32, i64 16}
!30 = !{!"_ZTS8RcString", !11, i64 0}
!31 = !{!"bool", !7, i64 0}
!32 = !{!"_ZTSN3HIR7TypeRefE", !11, i64 0}
!33 = !{i8 0, i8 2}
!34 = !{}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass