; LLVM IR from thepowersgang/mrustc :: src/resolve/use.ll (Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)

; 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"

%class.RcString = type { ptr }
%"class.std::map.107" = type { %"class.std::_Rb_tree.108" }
%"class.std::_Rb_tree.108" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, RcString>, std::_Select1st<std::pair<const RcString, RcString>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, RcString>, std::_Select1st<std::pair<const RcString, RcString>>, std::less<RcString>>::_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.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.2", %"class.std::unique_ptr.10", %"class.std::vector" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.std::unique_ptr.10" = type { %"struct.std::__uniq_ptr_data.11" }
%"struct.std::__uniq_ptr_data.11" = type { %"class.std::__uniq_ptr_impl.12" }
%"class.std::__uniq_ptr_impl.12" = type { %"class.std::tuple.13" }
%"class.std::tuple.13" = type { %"struct.std::_Tuple_impl.14" }
%"struct.std::_Tuple_impl.14" = type { %"struct.std::_Head_base.17" }
%"struct.std::_Head_base.17" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.23", %"struct.AST::PathBinding.24" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector.18" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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_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.AST::PathBinding.23" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"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.24" = 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 }
%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 = type { i8 }
%class.anon.98 = type { i8 }
%class.anon.100 = type { i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.112" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.20" = type { i8 }
%"class.std::vector.113" = type { %"struct.std::_Vector_base.114" }
%"struct.std::_Vector_base.114" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.118 = type { ptr }
%class.anon.119 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.120" = type { ptr }
%class.anon.246 = type { ptr, ptr }
%"class.std::span" = type { ptr, i64 }
%class.anon.247 = type { ptr }
%"class.AST::PathNode" = type { %class.RcString, %"struct.AST::PathParams" }
%"struct.AST::PathParams" = type <{ %"class.std::vector.102", i8, [7 x i8] }>
%"class.std::vector.102" = type { %"struct.std::_Vector_base.103" }
%"struct.std::_Vector_base.103" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.248 = type { i8 }
%class.anon.250 = type { ptr }
%"class.AST::Crate" = type { %"class.AST::AttributeList", %"class.std::map", %"class.AST::Module", %"class.std::vector.18", %"class.std::map.71", %"class.std::map.77", %class.RcString, %class.RcString, %class.RcString, %class.RcString, i8, %"class.std::vector.82", %"class.std::vector.87", %"class.std::vector.92", i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %class.RcString, %"class.AST::Path" }
%"class.AST::AttributeList" = type { %"class.std::vector.25" }
%"class.std::vector.25" = type { %"struct.std::_Vector_base.26" }
%"struct.std::_Vector_base.26" = 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.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, AST::AbsolutePath>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.33", %"class.std::vector.38", %"class.std::vector.43", %"struct.AST::Module::FileInfo", i8, i8, %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::unordered_map", %"class.std::vector.56", %"class.std::vector.61", %"class.std::vector.66" }
%"class.std::vector.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = type { %"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<AST::Named<AST::Item>>, std::allocator<std::unique_ptr<AST::Named<AST::Item>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = type { %"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<AST::Module>, std::allocator<std::shared_ptr<AST::Module>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = type { %"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Named<MacroRulesPtr>, std::allocator<AST::Named<MacroRulesPtr>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Module::FileInfo" = type { i8, i8, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = 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::vector.56" = type { %"struct.std::_Vector_base.57" }
%"struct.std::_Vector_base.57" = type { %"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::AbsolutePath, std::allocator<AST::AbsolutePath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.61" = type { %"struct.std::_Vector_base.62" }
%"struct.std::_Vector_base.62" = type { %"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module::MacroImport, std::allocator<AST::Module::MacroImport>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.66" = type { %"struct.std::_Vector_base.67" }
%"struct.std::_Vector_base.67" = type { %"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Module::Import, std::allocator<AST::Module::Import>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map.71" = type { %"class.std::_Rb_tree.72" }
%"class.std::_Rb_tree.72" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, AST::ExternCrate>, std::_Select1st<std::pair<const RcString, AST::ExternCrate>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, AST::ExternCrate>, std::_Select1st<std::pair<const RcString, AST::ExternCrate>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::map.77" = type { %"class.std::_Rb_tree.78" }
%"class.std::_Rb_tree.78" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, const MacroRules *>, std::_Select1st<std::pair<const RcString, const MacroRules *>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, const MacroRules *>, std::_Select1st<std::pair<const RcString, const MacroRules *>>, std::less<RcString>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.82" = type { %"struct.std::_Vector_base.83" }
%"struct.std::_Vector_base.83" = type { %"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TestDesc, std::allocator<AST::TestDesc>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.87" = type { %"struct.std::_Vector_base.88" }
%"struct.std::_Vector_base.88" = 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 }
%"class.std::vector.92" = type { %"struct.std::_Vector_base.93" }
%"struct.std::_Vector_base.93" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ProcMacroDef, std::allocator<AST::ProcMacroDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"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] }
%"struct.AST::Path::Class::Data_Relative" = type { %"class.Ident::Hygiene", %"class.std::vector" }
%"class.Ident::Hygiene" = type { %"class.std::unique_ptr" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.1" }
%"struct.std::_Head_base.1" = type { ptr }
%"struct.std::pair" = type { %class.RcString, %class.RcString }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"class.AST::Visibility" = type <{ %"class.std::shared_ptr.129", %"class.std::shared_ptr.132", i32, [4 x i8] }>
%"class.std::shared_ptr.129" = type { %"class.std::__shared_ptr.130" }
%"class.std::__shared_ptr.130" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.132" = type { %"class.std::__shared_ptr.133" }
%"class.std::__shared_ptr.133" = type { ptr, %"class.std::__shared_count" }
%"class.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"struct.AST::Path::Class::Data_Super" = type { i32, %"class.std::vector" }
%"struct.AST::Path::Class::Data_Absolute" = type { %class.RcString, %"class.std::vector" }

@_ZN12_GLOBAL__N_123rcstring_crate_builtinsE = external hidden global %class.RcString, align 8
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [74 x i8], align 1
@__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_ = external hidden unnamed_addr constant [107 x i8], align 1
@.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__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_ = external hidden unnamed_addr constant [27 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN3AST17g_implicit_cratesE = external global %"class.std::map.107", align 8
@.str.7 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [47 x i8], align 1
@_ZTIPKc = external constant ptr

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef %4) #1 personality ptr @__gxx_personality_v0 {
  %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 i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca %struct.Span, align 8
  %17 = alloca %"class.std::function", align 8
  %18 = alloca %class.anon, align 1
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca ptr, align 8
  %23 = alloca %struct.Span, align 8
  %24 = alloca %"class.std::function", align 8
  %25 = alloca %class.anon.98, align 1
  %26 = alloca i8, align 1
  %27 = alloca ptr, align 8
  %28 = alloca %struct.Span, align 8
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %class.anon.100, align 1
  %31 = alloca i8, align 1
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %35 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.112", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %39 = alloca %class.RcString, align 8
  %40 = alloca %"class.std::vector", align 8
  %41 = alloca i32, align 4
  %42 = alloca i1, align 1
  %43 = alloca %class.RcString, align 8
  %44 = alloca %"class.std::vector", align 8
  %45 = alloca %"struct.AST::AbsolutePath", align 8
  %46 = alloca %class.RcString, align 8
  %47 = alloca %"class.std::vector.18", align 8
  %48 = alloca %"class.std::initializer_list", align 8
  %49 = alloca [1 x %class.RcString], align 8
  %50 = alloca ptr, align 8
  %51 = alloca %"class.std::allocator.20", align 1
  %52 = alloca %"class.AST::PathBinding_Type", align 8
  %53 = alloca %"class.std::vector.113", align 8
  %54 = alloca ptr, align 8
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca ptr, align 8
  %58 = alloca i32, align 4
  %59 = alloca %struct.Span, align 8
  %60 = alloca %"class.std::function", align 8
  %61 = alloca %class.anon.118, align 8
  %62 = alloca %struct.Span, align 8
  %63 = alloca %"class.std::function", align 8
  %64 = alloca %class.anon.119, align 8
  %65 = alloca ptr, align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %68 = alloca ptr, align 8
  %69 = alloca %struct.Span, align 8
  %70 = alloca %"class.std::function", align 8
  %71 = alloca %class.anon.246, align 8
  %72 = alloca %"struct.AST::Path::Bindings", align 8
  %73 = alloca %"class.std::span", align 8
  %74 = alloca %struct.Span, align 8
  %75 = alloca %"class.std::function", align 8
  %76 = alloca %class.anon.247, align 8
  %77 = alloca i1, align 1
  %78 = alloca %class.RcString, align 8
  %79 = alloca %"class.std::vector", align 8
  %80 = alloca i32, align 4
  %81 = alloca %"class.AST::PathNode", align 8
  %82 = alloca %class.RcString, align 8
  %83 = alloca %"struct.AST::PathParams", align 8
  %84 = alloca i8, align 1
  %85 = alloca ptr, align 8
  %86 = alloca i1, align 1
  %87 = alloca %class.RcString, align 8
  %88 = alloca %"class.std::vector", align 8
  %89 = alloca i32, align 4
  %90 = alloca i8, align 1
  %91 = alloca ptr, align 8
  %92 = alloca i1, align 1
  %93 = alloca %class.RcString, align 8
  %94 = alloca %"class.std::vector", align 8
  %95 = alloca %struct.Span, align 8
  %96 = alloca %"class.std::function", align 8
  %97 = alloca %class.anon.248, align 1
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i8, align 1
  %101 = alloca ptr, align 8
  %102 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %103 = alloca %class.RcString, align 8
  %104 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %105 = alloca %struct.Span, align 8
  %106 = alloca %"class.std::function", align 8
  %107 = alloca %class.anon.250, align 8
  store ptr %0, ptr %6, align 8
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  store ptr %4, ptr %10, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #9
  store i8 1, ptr %11, align 1, !tbaa !9
  br label %108

108:                                              ; preds = %1233, %5
  %109 = load i8, ptr %11, align 1, !tbaa !9, !range !11, !noundef !12
  %110 = trunc i8 %109 to i1
  br i1 %110, label %112, label %111

111:                                              ; preds = %108
  store i32 2, ptr %12, align 4
  br label %1234

112:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %113 = getelementptr inbounds %"class.AST::Path", ptr %4, i32 0, i32 1
  store ptr %113, ptr %13, align 8, !tbaa !5
  br label %114

114:                                              ; preds = %1228, %112
  %115 = load i8, ptr %11, align 1, !tbaa !9, !range !11, !noundef !12
  %116 = trunc i8 %115 to i1
  br i1 %116, label %118, label %117

117:                                              ; preds = %114
  store i32 5, ptr %12, align 4
  br label %1229

118:                                              ; preds = %114
  %119 = load ptr, ptr %13, align 8, !tbaa !5
  %120 = call noundef i32 @_ZNK3AST4Path5Class3tagEv(ptr noundef nonnull align 8 dereferenceable(48) %119)
  switch i32 %120, label %1227 [
    i32 0, label %121
    i32 1, label %122
    i32 2, label %156
    i32 7, label %190
    i32 3, label %224
    i32 4, label %881
    i32 5, label %976
    i32 6, label %1141
  ]

121:                                              ; preds = %118
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.4, i32 noundef 54, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_) #10
  unreachable

122:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #9
  store i8 1, ptr %14, align 1, !tbaa !9
  br label %123

123:                                              ; preds = %154, %122
  %124 = load i8, ptr %14, align 1, !tbaa !9, !range !11, !noundef !12
  %125 = trunc i8 %124 to i1
  br i1 %125, label %127, label %126

126:                                              ; preds = %123
  store i32 9, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  br label %155

127:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %128 = load ptr, ptr %13, align 8, !tbaa !5
  %129 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZN3AST4Path5Class10as_InvalidEv(ptr noundef nonnull align 8 dereferenceable(48) %128)
  store ptr %129, ptr %15, align 8, !tbaa !5
  br label %130

130:                                              ; preds = %151, %127
  %131 = load ptr, ptr %15, align 8, !tbaa !5
  %132 = load i8, ptr %14, align 1, !tbaa !9, !range !11, !noundef !12
  %133 = trunc i8 %132 to i1
  br i1 %133, label %135, label %134

134:                                              ; preds = %130
  store i32 12, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  br label %153

135:                                              ; preds = %130
  br label %136

136:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  %137 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %137)
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(1) %18) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef %17)
          to label %138 unwind label %141

138:                                              ; preds = %136
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  %139 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %139, ptr noundef @.str.5)
          to label %140 unwind label %145

140:                                              ; preds = %138
  call void @__cxa_throw(ptr %139, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
  unreachable

141:                                              ; preds = %136
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %19, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  br label %152

145:                                              ; preds = %138
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %19, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %20, align 4
  call void @__cxa_free_exception(ptr %139) #9
  br label %152

149:                                              ; No predecessors!
  br label %150

150:                                              ; preds = %149
  br label %151

151:                                              ; preds = %150
  store i8 0, ptr %14, align 1, !tbaa !9
  br label %130, !llvm.loop !13

152:                                              ; preds = %145, %141
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #9
  br label %1231

153:                                              ; preds = %134
  br label %154

154:                                              ; preds = %153
  store i8 0, ptr %14, align 1, !tbaa !9
  br label %123, !llvm.loop !15

155:                                              ; preds = %126
  br label %1227

156:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #9
  store i8 1, ptr %21, align 1, !tbaa !9
  br label %157

157:                                              ; preds = %188, %156
  %158 = load i8, ptr %21, align 1, !tbaa !9, !range !11, !noundef !12
  %159 = trunc i8 %158 to i1
  br i1 %159, label %161, label %160

160:                                              ; preds = %157
  store i32 17, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  br label %189

161:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %162 = load ptr, ptr %13, align 8, !tbaa !5
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3AST4Path5Class8as_LocalEv(ptr noundef nonnull align 8 dereferenceable(48) %162)
  store ptr %163, ptr %22, align 8, !tbaa !5
  br label %164

164:                                              ; preds = %185, %161
  %165 = load ptr, ptr %22, align 8, !tbaa !5
  %166 = load i8, ptr %21, align 1, !tbaa !9, !range !11, !noundef !12
  %167 = trunc i8 %166 to i1
  br i1 %167, label %169, label %168

168:                                              ; preds = %164
  store i32 20, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %187

169:                                              ; preds = %164
  br label %170

170:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %171 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %171)
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 1 dereferenceable(1) %25) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef %24)
          to label %172 unwind label %175

172:                                              ; preds = %170
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  %173 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %173, ptr noundef @.str.5)
          to label %174 unwind label %179

174:                                              ; preds = %172
  call void @__cxa_throw(ptr %173, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
  unreachable

175:                                              ; preds = %170
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %19, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %186

179:                                              ; preds = %172
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %19, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %20, align 4
  call void @__cxa_free_exception(ptr %173) #9
  br label %186

183:                                              ; No predecessors!
  br label %184

184:                                              ; preds = %183
  br label %185

185:                                              ; preds = %184
  store i8 0, ptr %21, align 1, !tbaa !9
  br label %164, !llvm.loop !16

186:                                              ; preds = %179, %175
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #9
  br label %1231

187:                                              ; preds = %168
  br label %188

188:                                              ; preds = %187
  store i8 0, ptr %21, align 1, !tbaa !9
  br label %157, !llvm.loop !17

189:                                              ; preds = %160
  br label %1227

190:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #9
  store i8 1, ptr %26, align 1, !tbaa !9
  br label %191

191:                                              ; preds = %222, %190
  %192 = load i8, ptr %26, align 1, !tbaa !9, !range !11, !noundef !12
  %193 = trunc i8 %192 to i1
  br i1 %193, label %195, label %194

194:                                              ; preds = %191
  store i32 25, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  br label %223

195:                                              ; preds = %191
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #9
  %196 = load ptr, ptr %13, align 8, !tbaa !5
  %197 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN3AST4Path5Class7as_UFCSEv(ptr noundef nonnull align 8 dereferenceable(48) %196)
  store ptr %197, ptr %27, align 8, !tbaa !5
  br label %198

198:                                              ; preds = %219, %195
  %199 = load ptr, ptr %27, align 8, !tbaa !5
  %200 = load i8, ptr %26, align 1, !tbaa !9, !range !11, !noundef !12
  %201 = trunc i8 %200 to i1
  br i1 %201, label %203, label %202

202:                                              ; preds = %198
  store i32 28, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  br label %221

203:                                              ; preds = %198
  br label %204

204:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %205 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %205)
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef %29)
          to label %206 unwind label %209

206:                                              ; preds = %204
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  %207 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %207, ptr noundef @.str.5)
          to label %208 unwind label %213

208:                                              ; preds = %206
  call void @__cxa_throw(ptr %207, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
  unreachable

209:                                              ; preds = %204
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %19, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %220

213:                                              ; preds = %206
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %19, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %20, align 4
  call void @__cxa_free_exception(ptr %207) #9
  br label %220

217:                                              ; No predecessors!
  br label %218

218:                                              ; preds = %217
  br label %219

219:                                              ; preds = %218
  store i8 0, ptr %26, align 1, !tbaa !9
  br label %198, !llvm.loop !18

220:                                              ; preds = %213, %209
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #9
  br label %1231

221:                                              ; preds = %202
  br label %222

222:                                              ; preds = %221
  store i8 0, ptr %26, align 1, !tbaa !9
  br label %191, !llvm.loop !19

223:                                              ; preds = %194
  br label %1227

224:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #9
  store i8 1, ptr %31, align 1, !tbaa !9
  br label %225

225:                                              ; preds = %877, %224
  %226 = load i8, ptr %31, align 1, !tbaa !9, !range !11, !noundef !12
  %227 = trunc i8 %226 to i1
  br i1 %227, label %229, label %228

228:                                              ; preds = %225
  store i32 33, ptr %12, align 4
  br label %878

229:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %230 = load ptr, ptr %13, align 8, !tbaa !5
  %231 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class11as_RelativeEv(ptr noundef nonnull align 8 dereferenceable(48) %230)
  store ptr %231, ptr %32, align 8, !tbaa !5
  br label %232

232:                                              ; preds = %872, %229
  %233 = load ptr, ptr %32, align 8, !tbaa !5
  %234 = load i8, ptr %31, align 1, !tbaa !9, !range !11, !noundef !12
  %235 = trunc i8 %234 to i1
  br i1 %235, label %237, label %236

236:                                              ; preds = %232
  store i32 36, ptr %12, align 4
  br label %873

237:                                              ; preds = %232
  br label %238

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

240:                                              ; preds = %238
  %241 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %242 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %241, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef @.str.6)
  %244 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %243, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %245 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef @_ZSt3decRSt8ios_base)
  %246 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %247

247:                                              ; preds = %240, %238
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  %250 = load ptr, ptr %8, align 8, !tbaa !5
  %251 = getelementptr inbounds %"class.AST::Crate", ptr %250, i32 0, i32 14
  %252 = load i32, ptr %251, align 8, !tbaa !22
  %253 = icmp sge i32 %252, 1
  br i1 %253, label %254, label %322

254:                                              ; preds = %249
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %255 = load ptr, ptr %32, align 8, !tbaa !5
  %256 = getelementptr inbounds %"struct.AST::Path::Class::Data_Relative", ptr %255, i32 0, i32 1
  %257 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %256, i64 noundef 0)
  %258 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %257)
  store ptr %258, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %259 = load ptr, ptr %33, align 8, !tbaa !5
  %260 = call ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE4findERS4_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE, ptr noundef nonnull align 8 dereferenceable(8) %259)
  %261 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %34, i32 0, i32 0
  store ptr %260, ptr %261, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %262 = call ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE) #9
  %263 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %35, i32 0, i32 0
  store ptr %262, ptr %263, align 8
  %264 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EES6_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br i1 %264, label %265, label %304

265:                                              ; preds = %254
  br label %266

266:                                              ; preds = %265
  %267 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %267, label %268, label %276

268:                                              ; preds = %266
  %269 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %270 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %269, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %270, ptr noundef @.str.7)
  %272 = load ptr, ptr %33, align 8, !tbaa !5
  %273 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull align 8 dereferenceable(8) %272)
  %274 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef @_ZSt3decRSt8ios_base)
  %275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %276

276:                                              ; preds = %268, %266
  br label %277

277:                                              ; preds = %276
  br label %278

278:                                              ; preds = %277
  %279 = load ptr, ptr %32, align 8, !tbaa !5
  %280 = getelementptr inbounds %"struct.AST::Path::Class::Data_Relative", ptr %279, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  %281 = load ptr, ptr %32, align 8, !tbaa !5
  %282 = getelementptr inbounds %"struct.AST::Path::Class::Data_Relative", ptr %281, i32 0, i32 1
  %283 = call ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %282) #9
  %284 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %37, i32 0, i32 0
  store ptr %283, ptr %284, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST8PathNodeESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #9
  %285 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.112", ptr %36, i32 0, i32 0
  %286 = load ptr, ptr %285, align 8
  %287 = call ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %280, ptr %286)
  %288 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %38, i32 0, i32 0
  store ptr %287, ptr %288, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  %289 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  %290 = getelementptr inbounds %"struct.std::pair", ptr %289, i32 0, i32 1
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %290)
  %291 = load ptr, ptr %32, align 8, !tbaa !5
  %292 = getelementptr inbounds %"struct.AST::Path::Class::Data_Relative", ptr %291, i32 0, i32 1
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %40, ptr noundef nonnull align 8 dereferenceable(24) %292)
          to label %293 unwind label %295

293:                                              ; preds = %278
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef %39, ptr noundef %40)
          to label %294 unwind label %299

294:                                              ; preds = %293
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  store i32 1, ptr %12, align 4
  br label %319

295:                                              ; preds = %278
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %19, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %20, align 4
  br label %303

299:                                              ; preds = %293
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %19, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %20, align 4
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %40) #9
  br label %303

303:                                              ; preds = %299, %295
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %875

304:                                              ; preds = %254
  br label %305

305:                                              ; preds = %304
  %306 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %306, label %307, label %315

307:                                              ; preds = %305
  %308 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %308, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %310 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %309, ptr noundef @.str.8)
  %311 = load ptr, ptr %33, align 8, !tbaa !5
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %310, ptr noundef nonnull align 8 dereferenceable(8) %311)
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef @_ZSt3decRSt8ios_base)
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %315

315:                                              ; preds = %307, %305
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316
  br label %318

318:                                              ; preds = %317
  store i32 0, ptr %12, align 4
  br label %319

319:                                              ; preds = %318, %294
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  %320 = load i32, ptr %12, align 4
  switch i32 %320, label %873 [
    i32 0, label %321
  ]

321:                                              ; preds = %319
  br label %322

322:                                              ; preds = %321, %249
  %323 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
  %324 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %323) #9
  %325 = icmp eq i64 %324, 1
  br i1 %325, label %326, label %437

326:                                              ; preds = %322
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #9
  %327 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
  %328 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %327, i64 noundef 0) #9
  %329 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %328)
  %330 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %329)
  %331 = call noundef i32 @_Z19coretype_fromstringPKc(ptr noundef %330)
  store i32 %331, ptr %41, align 4, !tbaa !113
  %332 = load i32, ptr %41, align 4, !tbaa !113
  %333 = icmp ne i32 %332, 0
  br i1 %333, label %334, label %432

334:                                              ; preds = %326
  br label %335

335:                                              ; preds = %334
  %336 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %336, label %337, label %344

337:                                              ; preds = %335
  %338 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %338, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %339, ptr noundef @.str.9)
  %341 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %342 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef @_ZSt3decRSt8ios_base)
  %343 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %344

344:                                              ; preds = %337, %335
  br label %345

345:                                              ; preds = %344
  br label %346

346:                                              ; preds = %345
  store i1 false, ptr %42, align 1
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
  %347 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %348 unwind label %378

348:                                              ; preds = %346
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %44, ptr noundef nonnull align 8 dereferenceable(24) %347)
          to label %349 unwind label %378

349:                                              ; preds = %348
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef %43, ptr noundef %44)
          to label %350 unwind label %382

350:                                              ; preds = %349
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  %351 = getelementptr inbounds %"class.AST::Path", ptr %0, i32 0, i32 2
  %352 = getelementptr inbounds %"struct.AST::Path::Bindings", ptr %351, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
          to label %353 unwind label %387

353:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #9
  store ptr %49, ptr %50, align 8
  %354 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %355 unwind label %391

355:                                              ; preds = %353
  %356 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %354) #9
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %356)
          to label %358 unwind label %391

358:                                              ; preds = %355
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %357)
          to label %359 unwind label %391

359:                                              ; preds = %358
  %360 = getelementptr inbounds %"class.std::initializer_list", ptr %48, i32 0, i32 0
  store ptr %49, ptr %360, align 8, !tbaa !115
  %361 = getelementptr inbounds %"class.std::initializer_list", ptr %48, i32 0, i32 1
  store i64 1, ptr %361, align 8, !tbaa !117
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #9
  call void @_ZNSaI8RcStringEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  %362 = getelementptr inbounds { ptr, i64 }, ptr %48, i32 0, i32 0
  %363 = load ptr, ptr %362, align 8
  %364 = getelementptr inbounds { ptr, i64 }, ptr %48, i32 0, i32 1
  %365 = load i64, ptr %364, align 8
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %47, ptr %363, i64 %365, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %366 unwind label %402

366:                                              ; preds = %359
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef %46, ptr noundef %47)
          to label %367 unwind label %406

367:                                              ; preds = %366
  invoke void @_ZN3AST16PathBinding_TypeC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %368 unwind label %410

368:                                              ; preds = %367
  invoke void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %352, ptr noundef %45, ptr noundef %52)
          to label %369 unwind label %414

369:                                              ; preds = %368
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #9
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  %370 = getelementptr inbounds [1 x %class.RcString], ptr %49, i32 0, i32 0
  %371 = getelementptr inbounds %class.RcString, ptr %370, i64 1
  br label %372

372:                                              ; preds = %372, %369
  %373 = phi ptr [ %371, %369 ], [ %374, %372 ]
  %374 = getelementptr inbounds %class.RcString, ptr %373, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %374) #9
  %375 = icmp eq ptr %374, %370
  br i1 %375, label %376, label %372

376:                                              ; preds = %372
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  store i1 true, ptr %42, align 1
  store i32 1, ptr %12, align 4
  %377 = load i1, ptr %42, align 1
  br i1 %377, label %430, label %429

378:                                              ; preds = %348, %346
  %379 = landingpad { ptr, i32 }
          cleanup
  %380 = extractvalue { ptr, i32 } %379, 0
  store ptr %380, ptr %19, align 8
  %381 = extractvalue { ptr, i32 } %379, 1
  store i32 %381, ptr %20, align 4
  br label %386

382:                                              ; preds = %349
  %383 = landingpad { ptr, i32 }
          cleanup
  %384 = extractvalue { ptr, i32 } %383, 0
  store ptr %384, ptr %19, align 8
  %385 = extractvalue { ptr, i32 } %383, 1
  store i32 %385, ptr %20, align 4
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %44) #9
  br label %386

386:                                              ; preds = %382, %378
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  br label %436

387:                                              ; preds = %350
  %388 = landingpad { ptr, i32 }
          cleanup
  %389 = extractvalue { ptr, i32 } %388, 0
  store ptr %389, ptr %19, align 8
  %390 = extractvalue { ptr, i32 } %388, 1
  store i32 %390, ptr %20, align 4
  br label %431

391:                                              ; preds = %358, %355, %353
  %392 = landingpad { ptr, i32 }
          cleanup
  %393 = extractvalue { ptr, i32 } %392, 0
  store ptr %393, ptr %19, align 8
  %394 = extractvalue { ptr, i32 } %392, 1
  store i32 %394, ptr %20, align 4
  %395 = load ptr, ptr %50, align 8
  %396 = icmp eq ptr %49, %395
  br i1 %396, label %401, label %397

397:                                              ; preds = %397, %391
  %398 = phi ptr [ %395, %391 ], [ %399, %397 ]
  %399 = getelementptr inbounds %class.RcString, ptr %398, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %399) #9
  %400 = icmp eq ptr %399, %49
  br i1 %400, label %401, label %397

401:                                              ; preds = %397, %391
  br label %428

402:                                              ; preds = %359
  %403 = landingpad { ptr, i32 }
          cleanup
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %19, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %20, align 4
  br label %420

406:                                              ; preds = %366
  %407 = landingpad { ptr, i32 }
          cleanup
  %408 = extractvalue { ptr, i32 } %407, 0
  store ptr %408, ptr %19, align 8
  %409 = extractvalue { ptr, i32 } %407, 1
  store i32 %409, ptr %20, align 4
  br label %419

410:                                              ; preds = %367
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %19, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %20, align 4
  br label %418

414:                                              ; preds = %368
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %19, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %20, align 4
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #9
  br label %418

418:                                              ; preds = %414, %410
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #9
  br label %419

419:                                              ; preds = %418, %406
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #9
  br label %420

420:                                              ; preds = %419, %402
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #9
  %421 = getelementptr inbounds [1 x %class.RcString], ptr %49, i32 0, i32 0
  %422 = getelementptr inbounds %class.RcString, ptr %421, i64 1
  br label %423

423:                                              ; preds = %423, %420
  %424 = phi ptr [ %422, %420 ], [ %425, %423 ]
  %425 = getelementptr inbounds %class.RcString, ptr %424, i64 -1
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %425) #9
  %426 = icmp eq ptr %425, %421
  br i1 %426, label %427, label %423

427:                                              ; preds = %423
  br label %428

428:                                              ; preds = %427, %401
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #9
  br label %431

429:                                              ; preds = %376
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %430

430:                                              ; preds = %429, %376
  br label %433

431:                                              ; preds = %428, %387
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %436

432:                                              ; preds = %326
  store i32 0, ptr %12, align 4
  br label %433

433:                                              ; preds = %432, %430
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  %434 = load i32, ptr %12, align 4
  switch i32 %434, label %873 [
    i32 0, label %435
  ]

435:                                              ; preds = %433
  br label %437

436:                                              ; preds = %431, %386
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %875

437:                                              ; preds = %435, %322
  %438 = load ptr, ptr %9, align 8, !tbaa !5
  %439 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %438)
  %440 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %439) #9
  %441 = icmp ugt i64 %440, 0
  br i1 %441, label %442, label %870

442:                                              ; preds = %437
  %443 = load ptr, ptr %9, align 8, !tbaa !5
  %444 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %443)
  %445 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %444) #9
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %445)
  %447 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %446)
  %448 = getelementptr inbounds i8, ptr %447, i64 0
  %449 = load i8, ptr %448, align 1, !tbaa !118
  %450 = sext i8 %449 to i32
  %451 = icmp eq i32 %450, 35
  br i1 %451, label %452, label %870

452:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #9
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %453 = load ptr, ptr %8, align 8, !tbaa !5
  %454 = getelementptr inbounds %"class.AST::Crate", ptr %453, i32 0, i32 2
  store ptr %454, ptr %54, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %455 unwind label %465

455:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  store i32 0, ptr %55, align 4, !tbaa !20
  br label %456

456:                                              ; preds = %672, %455
  %457 = load i32, ptr %55, align 4, !tbaa !20
  %458 = zext i32 %457 to i64
  %459 = load ptr, ptr %9, align 8, !tbaa !5
  %460 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %459)
          to label %461 unwind label %469

461:                                              ; preds = %456
  %462 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %460) #9
  %463 = icmp ult i64 %458, %462
  br i1 %463, label %473, label %464

464:                                              ; preds = %461
  store i32 47, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %678

465:                                              ; preds = %800, %795, %793, %791, %788, %786, %783, %780, %760, %714, %712, %710, %707, %705, %702, %699, %692, %690, %687, %685, %682, %679, %452
  %466 = landingpad { ptr, i32 }
          cleanup
  %467 = extractvalue { ptr, i32 } %466, 0
  store ptr %467, ptr %19, align 8
  %468 = extractvalue { ptr, i32 } %466, 1
  store i32 %468, ptr %20, align 4
  br label %869

469:                                              ; preds = %456
  %470 = landingpad { ptr, i32 }
          cleanup
  %471 = extractvalue { ptr, i32 } %470, 0
  store ptr %471, ptr %19, align 8
  %472 = extractvalue { ptr, i32 } %470, 1
  store i32 %472, ptr %20, align 4
  br label %677

473:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %474 = load ptr, ptr %9, align 8, !tbaa !5
  %475 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %474)
          to label %476 unwind label %509

476:                                              ; preds = %473
  %477 = load i32, ptr %55, align 4, !tbaa !20
  %478 = zext i32 %477 to i64
  %479 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %475, i64 noundef %478) #9
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %479)
          to label %481 unwind label %509

481:                                              ; preds = %476
  store ptr %480, ptr %56, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #9
  store ptr null, ptr %57, align 8, !tbaa !5
  %482 = load ptr, ptr %56, align 8, !tbaa !5
  %483 = invoke noundef i64 @_ZNK8RcString4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %482)
          to label %484 unwind label %513

484:                                              ; preds = %481
  %485 = icmp ugt i64 %483, 0
  br i1 %485, label %486, label %588

486:                                              ; preds = %484
  %487 = load ptr, ptr %56, align 8, !tbaa !5
  %488 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %487)
          to label %489 unwind label %513

489:                                              ; preds = %486
  %490 = getelementptr inbounds i8, ptr %488, i64 0
  %491 = load i8, ptr %490, align 1, !tbaa !118
  %492 = sext i8 %491 to i32
  %493 = icmp eq i32 %492, 35
  br i1 %493, label %494, label %588

494:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  store i32 0, ptr %58, align 4, !tbaa !20
  %495 = load ptr, ptr %56, align 8, !tbaa !5
  %496 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %495)
          to label %497 unwind label %517

497:                                              ; preds = %494
  %498 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %496, ptr noundef @.str.10, ptr noundef %58) #9
  %499 = icmp ne i32 %498, 1
  br i1 %499, label %500, label %536

500:                                              ; preds = %497
  br label %501

501:                                              ; preds = %500
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #9
  %502 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %502)
          to label %503 unwind label %521

503:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %504 = getelementptr inbounds %class.anon.118, ptr %61, i32 0, i32 0
  %505 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %505, ptr %504, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef %60)
          to label %506 unwind label %525

506:                                              ; preds = %503
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  %507 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %507, ptr noundef @.str.5)
          to label %508 unwind label %530

508:                                              ; preds = %506
  invoke void @__cxa_throw(ptr %507, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1244 unwind label %517

509:                                              ; preds = %476, %473
  %510 = landingpad { ptr, i32 }
          cleanup
  %511 = extractvalue { ptr, i32 } %510, 0
  store ptr %511, ptr %19, align 8
  %512 = extractvalue { ptr, i32 } %510, 1
  store i32 %512, ptr %20, align 4
  br label %676

513:                                              ; preds = %670, %660, %643, %486, %481
  %514 = landingpad { ptr, i32 }
          cleanup
  %515 = extractvalue { ptr, i32 } %514, 0
  store ptr %515, ptr %19, align 8
  %516 = extractvalue { ptr, i32 } %514, 1
  store i32 %516, ptr %20, align 4
  br label %675

517:                                              ; preds = %579, %568, %552, %537, %508, %494
  %518 = landingpad { ptr, i32 }
          cleanup
  %519 = extractvalue { ptr, i32 } %518, 0
  store ptr %519, ptr %19, align 8
  %520 = extractvalue { ptr, i32 } %518, 1
  store i32 %520, ptr %20, align 4
  br label %587

521:                                              ; preds = %501
  %522 = landingpad { ptr, i32 }
          cleanup
  %523 = extractvalue { ptr, i32 } %522, 0
  store ptr %523, ptr %19, align 8
  %524 = extractvalue { ptr, i32 } %522, 1
  store i32 %524, ptr %20, align 4
  br label %529

525:                                              ; preds = %503
  %526 = landingpad { ptr, i32 }
          cleanup
  %527 = extractvalue { ptr, i32 } %526, 0
  store ptr %527, ptr %19, align 8
  %528 = extractvalue { ptr, i32 } %526, 1
  store i32 %528, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  br label %529

529:                                              ; preds = %525, %521
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #9
  br label %587

530:                                              ; preds = %506
  %531 = landingpad { ptr, i32 }
          cleanup
  %532 = extractvalue { ptr, i32 } %531, 0
  store ptr %532, ptr %19, align 8
  %533 = extractvalue { ptr, i32 } %531, 1
  store i32 %533, ptr %20, align 4
  call void @__cxa_free_exception(ptr %507) #9
  br label %587

534:                                              ; No predecessors!
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535, %497
  br label %537

537:                                              ; preds = %536
  %538 = load i32, ptr %58, align 4, !tbaa !20
  %539 = zext i32 %538 to i64
  %540 = load ptr, ptr %54, align 8, !tbaa !5
  %541 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %540)
          to label %542 unwind label %517

542:                                              ; preds = %537
  %543 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %541) #9
  %544 = icmp ult i64 %539, %543
  br i1 %544, label %566, label %545

545:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #9
  %546 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %546)
          to label %547 unwind label %553

547:                                              ; preds = %545
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %548 = getelementptr inbounds %class.anon.119, ptr %64, i32 0, i32 0
  %549 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %549, ptr %548, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef %63)
          to label %550 unwind label %557

550:                                              ; preds = %547
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  %551 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %551, ptr noundef @.str.5)
          to label %552 unwind label %562

552:                                              ; preds = %550
  invoke void @__cxa_throw(ptr %551, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1244 unwind label %517

553:                                              ; preds = %545
  %554 = landingpad { ptr, i32 }
          cleanup
  %555 = extractvalue { ptr, i32 } %554, 0
  store ptr %555, ptr %19, align 8
  %556 = extractvalue { ptr, i32 } %554, 1
  store i32 %556, ptr %20, align 4
  br label %561

557:                                              ; preds = %547
  %558 = landingpad { ptr, i32 }
          cleanup
  %559 = extractvalue { ptr, i32 } %558, 0
  store ptr %559, ptr %19, align 8
  %560 = extractvalue { ptr, i32 } %558, 1
  store i32 %560, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #9
  br label %561

561:                                              ; preds = %557, %553
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #9
  br label %587

562:                                              ; preds = %550
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %19, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %20, align 4
  call void @__cxa_free_exception(ptr %551) #9
  br label %587

566:                                              ; preds = %542
  br label %567

567:                                              ; preds = %566
  br label %568

568:                                              ; preds = %567
  %569 = load ptr, ptr %54, align 8, !tbaa !5
  %570 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %569)
          to label %571 unwind label %517

571:                                              ; preds = %568
  %572 = load i32, ptr %58, align 4, !tbaa !20
  %573 = zext i32 %572 to i64
  %574 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %570, i64 noundef %573) #9
  %575 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %574) #9
  br i1 %575, label %576, label %577

576:                                              ; preds = %571
  br label %579

577:                                              ; preds = %571
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.4, i32 noundef 121, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_) #10
  unreachable

578:                                              ; No predecessors!
  br label %579

579:                                              ; preds = %578, %576
  %580 = load ptr, ptr %54, align 8, !tbaa !5
  %581 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %580)
          to label %582 unwind label %517

582:                                              ; preds = %579
  %583 = load i32, ptr %58, align 4, !tbaa !20
  %584 = zext i32 %583 to i64
  %585 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %581, i64 noundef %584) #9
  %586 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %585) #9
  store ptr %586, ptr %57, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %660

587:                                              ; preds = %562, %561, %530, %529, %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %675

588:                                              ; preds = %489, %484
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %589 = load ptr, ptr %54, align 8, !tbaa !5
  %590 = getelementptr inbounds %"class.AST::Module", ptr %589, i32 0, i32 1
  store ptr %590, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %591 = load ptr, ptr %65, align 8, !tbaa !5
  %592 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %591) #9
  %593 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %66, i32 0, i32 0
  store ptr %592, ptr %593, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %594 = load ptr, ptr %65, align 8, !tbaa !5
  %595 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %594) #9
  %596 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.120", ptr %67, i32 0, i32 0
  store ptr %595, ptr %596, align 8
  br label %597

597:                                              ; preds = %628, %588
  %598 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br i1 %598, label %600, label %599

599:                                              ; preds = %597
  store i32 54, ptr %12, align 4
  br label %630

600:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  %601 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  store ptr %601, ptr %68, align 8, !tbaa !5
  %602 = load ptr, ptr %68, align 8, !tbaa !5
  %603 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %602) #9
  %604 = getelementptr inbounds %"struct.AST::Named", ptr %603, i32 0, i32 3
  %605 = load ptr, ptr %56, align 8, !tbaa !5
  %606 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %604, ptr noundef nonnull align 8 dereferenceable(8) %605)
          to label %607 unwind label %620

607:                                              ; preds = %600
  br i1 %606, label %608, label %624

608:                                              ; preds = %607
  %609 = load ptr, ptr %68, align 8, !tbaa !5
  %610 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %609) #9
  %611 = getelementptr inbounds %"struct.AST::Named", ptr %610, i32 0, i32 4
  %612 = invoke noundef zeroext i1 @_ZNK3AST4Item9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %611)
          to label %613 unwind label %620

613:                                              ; preds = %608
  br i1 %612, label %614, label %624

614:                                              ; preds = %613
  %615 = load ptr, ptr %68, align 8, !tbaa !5
  %616 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %615) #9
  %617 = getelementptr inbounds %"struct.AST::Named", ptr %616, i32 0, i32 4
  %618 = invoke noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %617)
          to label %619 unwind label %620

619:                                              ; preds = %614
  store ptr %618, ptr %57, align 8, !tbaa !5
  store i32 54, ptr %12, align 4
  br label %625

620:                                              ; preds = %614, %608, %600
  %621 = landingpad { ptr, i32 }
          cleanup
  %622 = extractvalue { ptr, i32 } %621, 0
  store ptr %622, ptr %19, align 8
  %623 = extractvalue { ptr, i32 } %621, 1
  store i32 %623, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %675

624:                                              ; preds = %613, %607
  store i32 0, ptr %12, align 4
  br label %625

625:                                              ; preds = %624, %619
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  %626 = load i32, ptr %12, align 4
  switch i32 %626, label %630 [
    i32 0, label %627
  ]

627:                                              ; preds = %625
  br label %628

628:                                              ; preds = %627
  %629 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  br label %597

630:                                              ; preds = %625, %599
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  %633 = load ptr, ptr %57, align 8, !tbaa !5
  %634 = icmp ne ptr %633, null
  br i1 %634, label %657, label %635

635:                                              ; preds = %632
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #9
  %636 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %636)
          to label %637 unwind label %644

637:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 16, ptr %71) #9
  %638 = getelementptr inbounds %class.anon.246, ptr %71, i32 0, i32 0
  %639 = load ptr, ptr %56, align 8, !tbaa !5
  store ptr %639, ptr %638, align 8, !tbaa !5
  %640 = getelementptr inbounds %class.anon.246, ptr %71, i32 0, i32 1
  store ptr %54, ptr %640, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %70, ptr noundef nonnull align 8 dereferenceable(16) %71) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef %70)
          to label %641 unwind label %648

641:                                              ; preds = %637
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  %642 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %642, ptr noundef @.str.5)
          to label %643 unwind label %653

643:                                              ; preds = %641
  invoke void @__cxa_throw(ptr %642, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1244 unwind label %513

644:                                              ; preds = %635
  %645 = landingpad { ptr, i32 }
          cleanup
  %646 = extractvalue { ptr, i32 } %645, 0
  store ptr %646, ptr %19, align 8
  %647 = extractvalue { ptr, i32 } %645, 1
  store i32 %647, ptr %20, align 4
  br label %652

648:                                              ; preds = %637
  %649 = landingpad { ptr, i32 }
          cleanup
  %650 = extractvalue { ptr, i32 } %649, 0
  store ptr %650, ptr %19, align 8
  %651 = extractvalue { ptr, i32 } %649, 1
  store i32 %651, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %71) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  br label %652

652:                                              ; preds = %648, %644
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #9
  br label %675

653:                                              ; preds = %641
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %19, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %20, align 4
  call void @__cxa_free_exception(ptr %642) #9
  br label %675

657:                                              ; preds = %632
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  br label %660

660:                                              ; preds = %659, %582
  %661 = load ptr, ptr %57, align 8, !tbaa !5
  store ptr %661, ptr %54, align 8, !tbaa !5
  %662 = load ptr, ptr %56, align 8, !tbaa !5
  %663 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %662)
          to label %664 unwind label %513

664:                                              ; preds = %660
  %665 = getelementptr inbounds i8, ptr %663, i64 0
  %666 = load i8, ptr %665, align 1, !tbaa !118
  %667 = sext i8 %666 to i32
  %668 = icmp ne i32 %667, 35
  br i1 %668, label %669, label %670

669:                                              ; preds = %664
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  br label %670

670:                                              ; preds = %669, %664
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 8 dereferenceable(8) %54)
          to label %671 unwind label %513

671:                                              ; preds = %670
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %672

672:                                              ; preds = %671
  %673 = load i32, ptr %55, align 4, !tbaa !20
  %674 = add i32 %673, 1
  store i32 %674, ptr %55, align 4, !tbaa !20
  br label %456, !llvm.loop !119

675:                                              ; preds = %653, %652, %620, %587, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #9
  br label %676

676:                                              ; preds = %675, %509
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %677

677:                                              ; preds = %676, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %869

678:                                              ; preds = %464
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  br label %679

679:                                              ; preds = %678
  %680 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %681 unwind label %465

681:                                              ; preds = %679
  br i1 %680, label %682, label %695

682:                                              ; preds = %681
  %683 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %684 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %683, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
          to label %685 unwind label %465

685:                                              ; preds = %682
  %686 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %684, ptr noundef @.str.12)
          to label %687 unwind label %465

687:                                              ; preds = %685
  %688 = call noundef i64 @_ZNKSt6vectorIPKN3AST6ModuleESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %686, i64 noundef %688)
          to label %690 unwind label %465

690:                                              ; preds = %687
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %689, ptr noundef @_ZSt3decRSt8ios_base)
          to label %692 unwind label %465

692:                                              ; preds = %690
  %693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %691, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %694 unwind label %465

694:                                              ; preds = %692
  br label %695

695:                                              ; preds = %694, %681
  br label %696

696:                                              ; preds = %695
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %776, %697
  br label %699

699:                                              ; preds = %698
  %700 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %701 unwind label %465

701:                                              ; preds = %699
  br i1 %700, label %702, label %717

702:                                              ; preds = %701
  %703 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %704 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %703, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
          to label %705 unwind label %465

705:                                              ; preds = %702
  %706 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %704, ptr noundef @.str.13)
          to label %707 unwind label %465

707:                                              ; preds = %705
  %708 = load ptr, ptr %54, align 8, !tbaa !5
  %709 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %708)
          to label %710 unwind label %465

710:                                              ; preds = %707
  %711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %706, ptr noundef nonnull align 8 dereferenceable(32) %709)
          to label %712 unwind label %465

712:                                              ; preds = %710
  %713 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %711, ptr noundef @_ZSt3decRSt8ios_base)
          to label %714 unwind label %465

714:                                              ; preds = %712
  %715 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %713, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %716 unwind label %465

716:                                              ; preds = %714
  br label %717

717:                                              ; preds = %716, %701
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718
  call void @llvm.lifetime.start.p0(i64 184, ptr %72) #9
  %720 = load ptr, ptr %7, align 8, !tbaa !5
  %721 = load ptr, ptr %8, align 8, !tbaa !5
  %722 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef 0) #9
  %723 = load ptr, ptr %722, align 8, !tbaa !5
  %724 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %723)
          to label %725 unwind label %741

725:                                              ; preds = %719
  %726 = load ptr, ptr %54, align 8, !tbaa !5
  %727 = load ptr, ptr %32, align 8, !tbaa !5
  %728 = getelementptr inbounds %"struct.AST::Path::Class::Data_Relative", ptr %727, i32 0, i32 1
  %729 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %728) #9
  %730 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %729)
          to label %731 unwind label %741

731:                                              ; preds = %725
  invoke void @_ZNSt4spanIPKN3AST6ModuleEEC2ERSt6vectorIS3_SaIS3_EE(ptr noundef nonnull align 8 dereferenceable(16) %73, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %732 unwind label %741

732:                                              ; preds = %731
  %733 = load ptr, ptr %32, align 8, !tbaa !5
  %734 = getelementptr inbounds %"struct.AST::Path::Class::Data_Relative", ptr %733, i32 0, i32 1
  %735 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %734) #9
  %736 = icmp ugt i64 %735, 1
  invoke void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind writable sret(%"struct.AST::Path::Bindings") align 8 %72, ptr noundef nonnull align 8 dereferenceable(8) %720, ptr noundef nonnull align 8 dereferenceable(1112) %721, ptr noundef nonnull align 8 dereferenceable(32) %724, ptr noundef nonnull align 8 dereferenceable(480) %726, ptr noundef nonnull align 8 dereferenceable(8) %730, ptr noundef %73, i1 noundef zeroext %736)
          to label %737 unwind label %741

737:                                              ; preds = %732
  %738 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %72)
          to label %739 unwind label %745

739:                                              ; preds = %737
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %72) #9
  call void @llvm.lifetime.end.p0(i64 184, ptr %72) #9
  br i1 %738, label %740, label %750

740:                                              ; preds = %739
  br label %779

741:                                              ; preds = %732, %731, %725, %719
  %742 = landingpad { ptr, i32 }
          cleanup
  %743 = extractvalue { ptr, i32 } %742, 0
  store ptr %743, ptr %19, align 8
  %744 = extractvalue { ptr, i32 } %742, 1
  store i32 %744, ptr %20, align 4
  br label %749

745:                                              ; preds = %737
  %746 = landingpad { ptr, i32 }
          cleanup
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %19, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %20, align 4
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %72) #9
  br label %749

749:                                              ; preds = %745, %741
  call void @llvm.lifetime.end.p0(i64 184, ptr %72) #9
  br label %869

750:                                              ; preds = %739
  %751 = call noundef zeroext i1 @_ZNKSt6vectorIPKN3AST6ModuleESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  br i1 %751, label %752, label %776

752:                                              ; preds = %750
  br label %753

753:                                              ; preds = %752
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #9
  %754 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(8) %754)
          to label %755 unwind label %761

755:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #9
  %756 = getelementptr inbounds %class.anon.247, ptr %76, i32 0, i32 0
  %757 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %757, ptr %756, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %75, ptr noundef nonnull align 8 dereferenceable(8) %76) #9
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %74, i32 noundef 0, ptr noundef %75)
          to label %758 unwind label %765

758:                                              ; preds = %755
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  %759 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %759, ptr noundef @.str.14)
          to label %760 unwind label %770

760:                                              ; preds = %758
  invoke void @__cxa_throw(ptr %759, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1244 unwind label %465

761:                                              ; preds = %753
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %19, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %20, align 4
  br label %769

765:                                              ; preds = %755
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %19, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %74) #9
  br label %769

769:                                              ; preds = %765, %761
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #9
  br label %869

770:                                              ; preds = %758
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %19, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %20, align 4
  call void @__cxa_free_exception(ptr %759) #9
  br label %869

774:                                              ; No predecessors!
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775, %750
  %777 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  %778 = load ptr, ptr %777, align 8, !tbaa !5
  store ptr %778, ptr %54, align 8, !tbaa !5
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  br label %698, !llvm.loop !120

779:                                              ; preds = %740
  br label %780

780:                                              ; preds = %779
  %781 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %782 unwind label %465

782:                                              ; preds = %780
  br i1 %781, label %783, label %798

783:                                              ; preds = %782
  %784 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %784, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
          to label %786 unwind label %465

786:                                              ; preds = %783
  %787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %785, ptr noundef @.str.15)
          to label %788 unwind label %465

788:                                              ; preds = %786
  %789 = load ptr, ptr %54, align 8, !tbaa !5
  %790 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %789)
          to label %791 unwind label %465

791:                                              ; preds = %788
  %792 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %787, ptr noundef nonnull align 8 dereferenceable(32) %790)
          to label %793 unwind label %465

793:                                              ; preds = %791
  %794 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %792, ptr noundef @_ZSt3decRSt8ios_base)
          to label %795 unwind label %465

795:                                              ; preds = %793
  %796 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %794, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %797 unwind label %465

797:                                              ; preds = %795
  br label %798

798:                                              ; preds = %797, %782
  br label %799

799:                                              ; preds = %798
  br label %800

800:                                              ; preds = %799
  store i1 false, ptr %77, align 1
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef @.str.2)
          to label %801 unwind label %465

801:                                              ; preds = %800
  call void @llvm.memset.p0.i64(ptr align 8 %79, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #9
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef %78, ptr noundef %79)
          to label %802 unwind label %813

802:                                              ; preds = %801
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  store i32 0, ptr %80, align 4, !tbaa !20
  br label %803

803:                                              ; preds = %835, %802
  %804 = load i32, ptr %80, align 4, !tbaa !20
  %805 = zext i32 %804 to i64
  %806 = load ptr, ptr %54, align 8, !tbaa !5
  %807 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %806)
          to label %808 unwind label %817

808:                                              ; preds = %803
  %809 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %807, i32 0, i32 1
  %810 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %809) #9
  %811 = icmp ult i64 %805, %810
  br i1 %811, label %821, label %812

812:                                              ; preds = %808
  store i32 68, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %858

813:                                              ; preds = %801
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %19, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %20, align 4
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %79) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  br label %869

817:                                              ; preds = %821, %803
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %19, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %20, align 4
  br label %857

821:                                              ; preds = %808
  %822 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %823 unwind label %817

823:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 40, ptr %81) #9
  %824 = load ptr, ptr %54, align 8, !tbaa !5
  %825 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %824)
          to label %826 unwind label %838

826:                                              ; preds = %823
  %827 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %825, i32 0, i32 1
  %828 = load i32, ptr %80, align 4, !tbaa !20
  %829 = zext i32 %828 to i64
  %830 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %827, i64 noundef %829) #9
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %830)
          to label %831 unwind label %838

831:                                              ; preds = %826
  invoke void @_ZN3AST10PathParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %83)
          to label %832 unwind label %842

832:                                              ; preds = %831
  invoke void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40) %81, ptr noundef %82, ptr noundef %83)
          to label %833 unwind label %846

833:                                              ; preds = %832
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %822, ptr noundef nonnull align 8 dereferenceable(40) %81)
          to label %834 unwind label %850

834:                                              ; preds = %833
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %81) #9
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %83) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %81) #9
  br label %835

835:                                              ; preds = %834
  %836 = load i32, ptr %80, align 4, !tbaa !20
  %837 = add i32 %836, 1
  store i32 %837, ptr %80, align 4, !tbaa !20
  br label %803, !llvm.loop !121

838:                                              ; preds = %826, %823
  %839 = landingpad { ptr, i32 }
          cleanup
  %840 = extractvalue { ptr, i32 } %839, 0
  store ptr %840, ptr %19, align 8
  %841 = extractvalue { ptr, i32 } %839, 1
  store i32 %841, ptr %20, align 4
  br label %856

842:                                              ; preds = %831
  %843 = landingpad { ptr, i32 }
          cleanup
  %844 = extractvalue { ptr, i32 } %843, 0
  store ptr %844, ptr %19, align 8
  %845 = extractvalue { ptr, i32 } %843, 1
  store i32 %845, ptr %20, align 4
  br label %855

846:                                              ; preds = %832
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %19, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %20, align 4
  br label %854

850:                                              ; preds = %833
  %851 = landingpad { ptr, i32 }
          cleanup
  %852 = extractvalue { ptr, i32 } %851, 0
  store ptr %852, ptr %19, align 8
  %853 = extractvalue { ptr, i32 } %851, 1
  store i32 %853, ptr %20, align 4
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %81) #9
  br label %854

854:                                              ; preds = %850, %846
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %83) #9
  br label %855

855:                                              ; preds = %854, %842
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %82) #9
  br label %856

856:                                              ; preds = %855, %838
  call void @llvm.lifetime.end.p0(i64 40, ptr %81) #9
  br label %857

857:                                              ; preds = %856, %817
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %868

858:                                              ; preds = %812
  %859 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %860 unwind label %862

860:                                              ; preds = %858
  store i1 true, ptr %77, align 1
  store i32 1, ptr %12, align 4
  %861 = load i1, ptr %77, align 1
  br i1 %861, label %867, label %866

862:                                              ; preds = %858
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %19, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %20, align 4
  br label %868

866:                                              ; preds = %860
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %867

867:                                              ; preds = %866, %860
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #9
  br label %873

868:                                              ; preds = %862, %857
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %869

869:                                              ; preds = %868, %813, %770, %769, %749, %677, %465
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #9
  br label %875

870:                                              ; preds = %442, %437
  %871 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZNK3AST4PathplERKS0_(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %0, ptr noundef nonnull align 8 dereferenceable(240) %871, ptr noundef nonnull align 8 dereferenceable(240) %4)
  store i32 1, ptr %12, align 4
  br label %873

872:                                              ; No predecessors!
  store i8 0, ptr %31, align 1, !tbaa !9
  br label %232, !llvm.loop !122

873:                                              ; preds = %870, %867, %433, %319, %236
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  %874 = load i32, ptr %12, align 4
  switch i32 %874, label %878 [
    i32 36, label %876
  ]

875:                                              ; preds = %869, %436, %303
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  br label %1231

876:                                              ; preds = %873
  br label %877

877:                                              ; preds = %876
  store i8 0, ptr %31, align 1, !tbaa !9
  br label %225, !llvm.loop !123

878:                                              ; preds = %873, %228
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #9
  %879 = load i32, ptr %12, align 4
  switch i32 %879, label %1229 [
    i32 33, label %880
  ]

880:                                              ; preds = %878
  br label %1227

881:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %84) #9
  store i8 1, ptr %84, align 1, !tbaa !9
  br label %882

882:                                              ; preds = %972, %881
  %883 = load i8, ptr %84, align 1, !tbaa !9, !range !11, !noundef !12
  %884 = trunc i8 %883 to i1
  br i1 %884, label %886, label %885

885:                                              ; preds = %882
  store i32 71, ptr %12, align 4
  br label %973

886:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  %887 = load ptr, ptr %13, align 8, !tbaa !5
  %888 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5Class7as_SelfEv(ptr noundef nonnull align 8 dereferenceable(48) %887)
  store ptr %888, ptr %85, align 8, !tbaa !5
  br label %889

889:                                              ; preds = %967, %886
  %890 = load ptr, ptr %85, align 8, !tbaa !5
  %891 = load i8, ptr %84, align 1, !tbaa !9, !range !11, !noundef !12
  %892 = trunc i8 %891 to i1
  br i1 %892, label %894, label %893

893:                                              ; preds = %889
  store i32 74, ptr %12, align 4
  br label %968

894:                                              ; preds = %889
  br label %895

895:                                              ; preds = %894
  %896 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %896, label %897, label %904

897:                                              ; preds = %895
  %898 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %899 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %898, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %900 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %899, ptr noundef @.str.16)
  %901 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %900, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %902 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %901, ptr noundef @_ZSt3decRSt8ios_base)
  %903 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %902, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %904

904:                                              ; preds = %897, %895
  br label %905

905:                                              ; preds = %904
  br label %906

906:                                              ; preds = %905
  %907 = load ptr, ptr %9, align 8, !tbaa !5
  %908 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %907)
  %909 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %908) #9
  %910 = icmp ugt i64 %909, 0
  br i1 %910, label %911, label %965

911:                                              ; preds = %906
  %912 = load ptr, ptr %9, align 8, !tbaa !5
  %913 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %912)
  %914 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %913) #9
  %915 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %914)
  %916 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %915)
  %917 = getelementptr inbounds i8, ptr %916, i64 0
  %918 = load i8, ptr %917, align 1, !tbaa !118
  %919 = sext i8 %918 to i32
  %920 = icmp eq i32 %919, 35
  br i1 %920, label %921, label %965

921:                                              ; preds = %911
  store i1 false, ptr %86, align 1
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef @.str.2)
  call void @llvm.memset.p0.i64(ptr align 8 %88, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #9
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef %87, ptr noundef %88)
          to label %922 unwind label %933

922:                                              ; preds = %921
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  store i32 0, ptr %89, align 4, !tbaa !20
  br label %923

923:                                              ; preds = %951, %922
  %924 = load i32, ptr %89, align 4, !tbaa !20
  %925 = zext i32 %924 to i64
  %926 = load ptr, ptr %9, align 8, !tbaa !5
  %927 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %926)
          to label %928 unwind label %937

928:                                              ; preds = %923
  %929 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %927) #9
  %930 = sub i64 %929, 1
  %931 = icmp ult i64 %925, %930
  br i1 %931, label %941, label %932

932:                                              ; preds = %928
  store i32 79, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %954

933:                                              ; preds = %921
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %19, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %20, align 4
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %88) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  br label %970

937:                                              ; preds = %946, %943, %941, %923
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %19, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %964

941:                                              ; preds = %928
  %942 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %943 unwind label %937

943:                                              ; preds = %941
  %944 = load ptr, ptr %9, align 8, !tbaa !5
  %945 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %944)
          to label %946 unwind label %937

946:                                              ; preds = %943
  %947 = load i32, ptr %89, align 4, !tbaa !20
  %948 = zext i32 %947 to i64
  %949 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %945, i64 noundef %948) #9
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %942, ptr noundef nonnull align 8 dereferenceable(40) %949)
          to label %950 unwind label %937

950:                                              ; preds = %946
  br label %951

951:                                              ; preds = %950
  %952 = load i32, ptr %89, align 4, !tbaa !20
  %953 = add i32 %952, 1
  store i32 %953, ptr %89, align 4, !tbaa !20
  br label %923, !llvm.loop !124

954:                                              ; preds = %932
  %955 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %956 unwind label %958

956:                                              ; preds = %954
  store i1 true, ptr %86, align 1
  store i32 1, ptr %12, align 4
  %957 = load i1, ptr %86, align 1
  br i1 %957, label %963, label %962

958:                                              ; preds = %954
  %959 = landingpad { ptr, i32 }
          cleanup
  %960 = extractvalue { ptr, i32 } %959, 0
  store ptr %960, ptr %19, align 8
  %961 = extractvalue { ptr, i32 } %959, 1
  store i32 %961, ptr %20, align 4
  br label %964

962:                                              ; preds = %956
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %963

963:                                              ; preds = %962, %956
  br label %968

964:                                              ; preds = %958, %937
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %970

965:                                              ; preds = %911, %906
  %966 = load ptr, ptr %9, align 8, !tbaa !5
  call void @_ZNK3AST4PathplERKS0_(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %0, ptr noundef nonnull align 8 dereferenceable(240) %966, ptr noundef nonnull align 8 dereferenceable(240) %4)
  store i32 1, ptr %12, align 4
  br label %968

967:                                              ; No predecessors!
  store i8 0, ptr %84, align 1, !tbaa !9
  br label %889, !llvm.loop !125

968:                                              ; preds = %965, %963, %893
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  %969 = load i32, ptr %12, align 4
  switch i32 %969, label %973 [
    i32 74, label %971
  ]

970:                                              ; preds = %964, %933
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #9
  br label %1231

971:                                              ; preds = %968
  br label %972

972:                                              ; preds = %971
  store i8 0, ptr %84, align 1, !tbaa !9
  br label %882, !llvm.loop !126

973:                                              ; preds = %968, %885
  call void @llvm.lifetime.end.p0(i64 1, ptr %84) #9
  %974 = load i32, ptr %12, align 4
  switch i32 %974, label %1229 [
    i32 71, label %975
  ]

975:                                              ; preds = %973
  br label %1227

976:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %90) #9
  store i8 1, ptr %90, align 1, !tbaa !9
  br label %977

977:                                              ; preds = %1137, %976
  %978 = load i8, ptr %90, align 1, !tbaa !9, !range !11, !noundef !12
  %979 = trunc i8 %978 to i1
  br i1 %979, label %981, label %980

980:                                              ; preds = %977
  store i32 82, ptr %12, align 4
  br label %1138

981:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  %982 = load ptr, ptr %13, align 8, !tbaa !5
  %983 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class8as_SuperEv(ptr noundef nonnull align 8 dereferenceable(48) %982)
  store ptr %983, ptr %91, align 8, !tbaa !5
  br label %984

984:                                              ; preds = %1132, %981
  %985 = load ptr, ptr %91, align 8, !tbaa !5
  %986 = load i8, ptr %90, align 1, !tbaa !9, !range !11, !noundef !12
  %987 = trunc i8 %986 to i1
  br i1 %987, label %989, label %988

988:                                              ; preds = %984
  store i32 85, ptr %12, align 4
  br label %1133

989:                                              ; preds = %984
  br label %990

990:                                              ; preds = %989
  %991 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %991, label %992, label %999

992:                                              ; preds = %990
  %993 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %994 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %993, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %995 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %994, ptr noundef @.str.17)
  %996 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %995, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %997 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %996, ptr noundef @_ZSt3decRSt8ios_base)
  %998 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %997, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %999

999:                                              ; preds = %992, %990
  br label %1000

1000:                                             ; preds = %999
  br label %1001

1001:                                             ; preds = %1000
  %1002 = load ptr, ptr %91, align 8, !tbaa !5
  %1003 = getelementptr inbounds %"struct.AST::Path::Class::Data_Super", ptr %1002, i32 0, i32 0
  %1004 = load i32, ptr %1003, align 8, !tbaa !127
  %1005 = icmp uge i32 %1004, 1
  br i1 %1005, label %1006, label %1007

1006:                                             ; preds = %1001
  br label %1009

1007:                                             ; preds = %1001
  call void @__assert_fail(ptr noundef @.str.18, ptr noundef @.str.4, i32 noundef 183, ptr noundef @__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_) #10
  unreachable

1008:                                             ; No predecessors!
  br label %1009

1009:                                             ; preds = %1008, %1006
  store i1 false, ptr %92, align 1
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef @.str.2)
  call void @llvm.memset.p0.i64(ptr align 8 %94, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #9
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef %93, ptr noundef %94)
          to label %1010 unwind label %1027

1010:                                             ; preds = %1009
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  %1011 = load ptr, ptr %91, align 8, !tbaa !5
  %1012 = getelementptr inbounds %"struct.AST::Path::Class::Data_Super", ptr %1011, i32 0, i32 0
  %1013 = load i32, ptr %1012, align 8, !tbaa !127
  %1014 = zext i32 %1013 to i64
  %1015 = load ptr, ptr %9, align 8, !tbaa !5
  %1016 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %1015)
          to label %1017 unwind label %1031

1017:                                             ; preds = %1010
  %1018 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1016) #9
  %1019 = icmp ugt i64 %1014, %1018
  br i1 %1019, label %1020, label %1050

1020:                                             ; preds = %1017
  br label %1021

1021:                                             ; preds = %1020
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %1022 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %95, ptr noundef nonnull align 8 dereferenceable(8) %1022)
          to label %1023 unwind label %1035

1023:                                             ; preds = %1021
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef nonnull align 1 dereferenceable(1) %97) #9
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %95, i32 noundef 0, ptr noundef %96)
          to label %1024 unwind label %1039

1024:                                             ; preds = %1023
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  %1025 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1025, ptr noundef @.str.14)
          to label %1026 unwind label %1044

1026:                                             ; preds = %1024
  invoke void @__cxa_throw(ptr %1025, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
          to label %1244 unwind label %1031

1027:                                             ; preds = %1009
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %19, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %20, align 4
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %94) #9
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #9
  br label %1135

1031:                                             ; preds = %1026, %1010
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %19, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %20, align 4
  br label %1131

1035:                                             ; preds = %1021
  %1036 = landingpad { ptr, i32 }
          cleanup
  %1037 = extractvalue { ptr, i32 } %1036, 0
  store ptr %1037, ptr %19, align 8
  %1038 = extractvalue { ptr, i32 } %1036, 1
  store i32 %1038, ptr %20, align 4
  br label %1043

1039:                                             ; preds = %1023
  %1040 = landingpad { ptr, i32 }
          cleanup
  %1041 = extractvalue { ptr, i32 } %1040, 0
  store ptr %1041, ptr %19, align 8
  %1042 = extractvalue { ptr, i32 } %1040, 1
  store i32 %1042, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #9
  br label %1043

1043:                                             ; preds = %1039, %1035
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  br label %1131

1044:                                             ; preds = %1024
  %1045 = landingpad { ptr, i32 }
          cleanup
  %1046 = extractvalue { ptr, i32 } %1045, 0
  store ptr %1046, ptr %19, align 8
  %1047 = extractvalue { ptr, i32 } %1045, 1
  store i32 %1047, ptr %20, align 4
  call void @__cxa_free_exception(ptr %1025) #9
  br label %1131

1048:                                             ; No predecessors!
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049, %1017
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  store i32 0, ptr %98, align 4, !tbaa !20
  br label %1051

1051:                                             ; preds = %1082, %1050
  %1052 = load ptr, ptr %9, align 8, !tbaa !5
  %1053 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %1052)
          to label %1054 unwind label %1085

1054:                                             ; preds = %1051
  %1055 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1053) #9
  %1056 = load i32, ptr %98, align 4, !tbaa !20
  %1057 = zext i32 %1056 to i64
  %1058 = icmp ugt i64 %1055, %1057
  br i1 %1058, label %1059, label %1080

1059:                                             ; preds = %1054
  %1060 = load ptr, ptr %9, align 8, !tbaa !5
  %1061 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %1060)
          to label %1062 unwind label %1085

1062:                                             ; preds = %1059
  %1063 = load ptr, ptr %9, align 8, !tbaa !5
  %1064 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %1063)
          to label %1065 unwind label %1085

1065:                                             ; preds = %1062
  %1066 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1064) #9
  %1067 = sub i64 %1066, 1
  %1068 = load i32, ptr %98, align 4, !tbaa !20
  %1069 = zext i32 %1068 to i64
  %1070 = sub i64 %1067, %1069
  %1071 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1061, i64 noundef %1070) #9
  %1072 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %1071)
          to label %1073 unwind label %1085

1073:                                             ; preds = %1065
  %1074 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1072)
          to label %1075 unwind label %1085

1075:                                             ; preds = %1073
  %1076 = getelementptr inbounds i8, ptr %1074, i64 0
  %1077 = load i8, ptr %1076, align 1, !tbaa !118
  %1078 = sext i8 %1077 to i32
  %1079 = icmp eq i32 %1078, 35
  br label %1080

1080:                                             ; preds = %1075, %1054
  %1081 = phi i1 [ false, %1054 ], [ %1079, %1075 ]
  br i1 %1081, label %1082, label %1089

1082:                                             ; preds = %1080
  %1083 = load i32, ptr %98, align 4, !tbaa !20
  %1084 = add i32 %1083, 1
  store i32 %1084, ptr %98, align 4, !tbaa !20
  br label %1051, !llvm.loop !133

1085:                                             ; preds = %1124, %1073, %1065, %1062, %1059, %1051
  %1086 = landingpad { ptr, i32 }
          cleanup
  %1087 = extractvalue { ptr, i32 } %1086, 0
  store ptr %1087, ptr %19, align 8
  %1088 = extractvalue { ptr, i32 } %1086, 1
  store i32 %1088, ptr %20, align 4
  br label %1128

1089:                                             ; preds = %1080
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  store i32 0, ptr %99, align 4, !tbaa !20
  br label %1090

1090:                                             ; preds = %1121, %1089
  %1091 = load i32, ptr %99, align 4, !tbaa !20
  %1092 = zext i32 %1091 to i64
  %1093 = load ptr, ptr %9, align 8, !tbaa !5
  %1094 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %1093)
          to label %1095 unwind label %1107

1095:                                             ; preds = %1090
  %1096 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1094) #9
  %1097 = load ptr, ptr %91, align 8, !tbaa !5
  %1098 = getelementptr inbounds %"struct.AST::Path::Class::Data_Super", ptr %1097, i32 0, i32 0
  %1099 = load i32, ptr %1098, align 8, !tbaa !127
  %1100 = zext i32 %1099 to i64
  %1101 = sub i64 %1096, %1100
  %1102 = load i32, ptr %98, align 4, !tbaa !20
  %1103 = zext i32 %1102 to i64
  %1104 = sub i64 %1101, %1103
  %1105 = icmp ult i64 %1092, %1104
  br i1 %1105, label %1111, label %1106

1106:                                             ; preds = %1095
  store i32 94, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %1124

1107:                                             ; preds = %1116, %1113, %1111, %1090
  %1108 = landingpad { ptr, i32 }
          cleanup
  %1109 = extractvalue { ptr, i32 } %1108, 0
  store ptr %1109, ptr %19, align 8
  %1110 = extractvalue { ptr, i32 } %1108, 1
  store i32 %1110, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %1128

1111:                                             ; preds = %1095
  %1112 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %1113 unwind label %1107

1113:                                             ; preds = %1111
  %1114 = load ptr, ptr %9, align 8, !tbaa !5
  %1115 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %1114)
          to label %1116 unwind label %1107

1116:                                             ; preds = %1113
  %1117 = load i32, ptr %99, align 4, !tbaa !20
  %1118 = zext i32 %1117 to i64
  %1119 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1115, i64 noundef %1118) #9
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %1112, ptr noundef nonnull align 8 dereferenceable(40) %1119)
          to label %1120 unwind label %1107

1120:                                             ; preds = %1116
  br label %1121

1121:                                             ; preds = %1120
  %1122 = load i32, ptr %99, align 4, !tbaa !20
  %1123 = add i32 %1122, 1
  store i32 %1123, ptr %99, align 4, !tbaa !20
  br label %1090, !llvm.loop !134

1124:                                             ; preds = %1106
  %1125 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %1126 unwind label %1085

1126:                                             ; preds = %1124
  store i1 true, ptr %92, align 1
  store i32 1, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  %1127 = load i1, ptr %92, align 1
  br i1 %1127, label %1130, label %1129

1128:                                             ; preds = %1107, %1085
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %1131

1129:                                             ; preds = %1126
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %1130

1130:                                             ; preds = %1129, %1126
  br label %1133

1131:                                             ; preds = %1128, %1044, %1043, %1031
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #9
  br label %1135

1132:                                             ; No predecessors!
  store i8 0, ptr %90, align 1, !tbaa !9
  br label %984, !llvm.loop !135

1133:                                             ; preds = %1130, %988
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  %1134 = load i32, ptr %12, align 4
  switch i32 %1134, label %1138 [
    i32 85, label %1136
  ]

1135:                                             ; preds = %1131, %1027
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #9
  br label %1231

1136:                                             ; preds = %1133
  br label %1137

1137:                                             ; preds = %1136
  store i8 0, ptr %90, align 1, !tbaa !9
  br label %977, !llvm.loop !136

1138:                                             ; preds = %1133, %980
  call void @llvm.lifetime.end.p0(i64 1, ptr %90) #9
  %1139 = load i32, ptr %12, align 4
  switch i32 %1139, label %1229 [
    i32 82, label %1140
  ]

1140:                                             ; preds = %1138
  br label %1227

1141:                                             ; preds = %118
  call void @llvm.lifetime.start.p0(i64 1, ptr %100) #9
  store i8 1, ptr %100, align 1, !tbaa !9
  br label %1142

1142:                                             ; preds = %1223, %1141
  %1143 = load i8, ptr %100, align 1, !tbaa !9, !range !11, !noundef !12
  %1144 = trunc i8 %1143 to i1
  br i1 %1144, label %1146, label %1145

1145:                                             ; preds = %1142
  store i32 97, ptr %12, align 4
  br label %1224

1146:                                             ; preds = %1142
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #9
  %1147 = load ptr, ptr %13, align 8, !tbaa !5
  %1148 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class11as_AbsoluteEv(ptr noundef nonnull align 8 dereferenceable(48) %1147)
  store ptr %1148, ptr %101, align 8, !tbaa !5
  br label %1149

1149:                                             ; preds = %1219, %1146
  %1150 = load ptr, ptr %101, align 8, !tbaa !5
  %1151 = load i8, ptr %100, align 1, !tbaa !9, !range !11, !noundef !12
  %1152 = trunc i8 %1151 to i1
  br i1 %1152, label %1154, label %1153

1153:                                             ; preds = %1149
  store i32 100, ptr %12, align 4
  br label %1220

1154:                                             ; preds = %1149
  br label %1155

1155:                                             ; preds = %1154
  %1156 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %1156, label %1157, label %1164

1157:                                             ; preds = %1155
  %1158 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !20
  %1159 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1158, ptr noundef @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %1160 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1159, ptr noundef @.str.19)
  %1161 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %1160, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %1162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1161, ptr noundef @_ZSt3decRSt8ios_base)
  %1163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1162, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %1164

1164:                                             ; preds = %1157, %1155
  br label %1165

1165:                                             ; preds = %1164
  br label %1166

1166:                                             ; preds = %1165
  %1167 = load ptr, ptr %8, align 8, !tbaa !5
  %1168 = getelementptr inbounds %"class.AST::Crate", ptr %1167, i32 0, i32 14
  %1169 = load i32, ptr %1168, align 8, !tbaa !22
  %1170 = icmp sge i32 %1169, 1
  br i1 %1170, label %1171, label %1218

1171:                                             ; preds = %1166
  %1172 = load ptr, ptr %101, align 8, !tbaa !5
  %1173 = getelementptr inbounds %"struct.AST::Path::Class::Data_Absolute", ptr %1172, i32 0, i32 0
  %1174 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1173)
  %1175 = getelementptr inbounds i8, ptr %1174, i64 0
  %1176 = load i8, ptr %1175, align 1, !tbaa !118
  %1177 = sext i8 %1176 to i32
  %1178 = icmp eq i32 %1177, 61
  br i1 %1178, label %1179, label %1218

1179:                                             ; preds = %1171
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  %1180 = load ptr, ptr %101, align 8, !tbaa !5
  %1181 = getelementptr inbounds %"struct.AST::Path::Class::Data_Absolute", ptr %1180, i32 0, i32 0
  %1182 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %1181)
  %1183 = getelementptr inbounds i8, ptr %1182, i64 1
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef %1183)
  %1184 = invoke ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE4findERS4_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE, ptr noundef nonnull align 8 dereferenceable(8) %103)
          to label %1185 unwind label %1197

1185:                                             ; preds = %1179
  %1186 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %102, i32 0, i32 0
  store ptr %1184, ptr %1186, align 8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #9
  %1187 = call ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE) #9
  %1188 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %104, i32 0, i32 0
  store ptr %1187, ptr %1188, align 8
  %1189 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EES6_(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull align 8 dereferenceable(8) %104) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #9
  br i1 %1189, label %1190, label %1211

1190:                                             ; preds = %1185
  br label %1191

1191:                                             ; preds = %1190
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #9
  %1192 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull align 8 dereferenceable(8) %1192)
  call void @llvm.lifetime.start.p0(i64 8, ptr %107) #9
  %1193 = getelementptr inbounds %class.anon.250, ptr %107, i32 0, i32 0
  store ptr %4, ptr %1193, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %106, ptr noundef nonnull align 8 dereferenceable(8) %107) #9
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %105, i32 noundef 0, ptr noundef %106)
          to label %1194 unwind label %1201

1194:                                             ; preds = %1191
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  %1195 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1195, ptr noundef @.str.14)
          to label %1196 unwind label %1205

1196:                                             ; preds = %1194
  call void @__cxa_throw(ptr %1195, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #11
  unreachable

1197:                                             ; preds = %1179
  %1198 = landingpad { ptr, i32 }
          cleanup
  %1199 = extractvalue { ptr, i32 } %1198, 0
  store ptr %1199, ptr %19, align 8
  %1200 = extractvalue { ptr, i32 } %1198, 1
  store i32 %1200, ptr %20, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %103) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %1217

1201:                                             ; preds = %1191
  %1202 = landingpad { ptr, i32 }
          cleanup
  %1203 = extractvalue { ptr, i32 } %1202, 0
  store ptr %1203, ptr %19, align 8
  %1204 = extractvalue { ptr, i32 } %1202, 1
  store i32 %1204, ptr %20, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %107) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #9
  br label %1217

1205:                                             ; preds = %1194
  %1206 = landingpad { ptr, i32 }
          cleanup
  %1207 = extractvalue { ptr, i32 } %1206, 0
  store ptr %1207, ptr %19, align 8
  %1208 = extractvalue { ptr, i32 } %1206, 1
  store i32 %1208, ptr %20, align 4
  call void @__cxa_free_exception(ptr %1195) #9
  br label %1217

1209:                                             ; No predecessors!
  br label %1210

1210:                                             ; preds = %1209
  br label %1211

1211:                                             ; preds = %1210, %1185
  %1212 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %102) #9
  %1213 = getelementptr inbounds %"struct.std::pair", ptr %1212, i32 0, i32 1
  %1214 = load ptr, ptr %101, align 8, !tbaa !5
  %1215 = getelementptr inbounds %"struct.AST::Path::Class::Data_Absolute", ptr %1214, i32 0, i32 0
  %1216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1215, ptr noundef nonnull align 8 dereferenceable(8) %1213)
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  br label %1218

1217:                                             ; preds = %1205, %1201, %1197
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #9
  br label %1231

1218:                                             ; preds = %1211, %1171, %1166
  call void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
  store i32 1, ptr %12, align 4
  br label %1220

1219:                                             ; No predecessors!
  store i8 0, ptr %100, align 1, !tbaa !9
  br label %1149, !llvm.loop !137

1220:                                             ; preds = %1218, %1153
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #9
  %1221 = load i32, ptr %12, align 4
  switch i32 %1221, label %1224 [
    i32 100, label %1222
  ]

1222:                                             ; preds = %1220
  br label %1223

1223:                                             ; preds = %1222
  store i8 0, ptr %100, align 1, !tbaa !9
  br label %1142, !llvm.loop !138

1224:                                             ; preds = %1220, %1145
  call void @llvm.lifetime.end.p0(i64 1, ptr %100) #9
  %1225 = load i32, ptr %12, align 4
  switch i32 %1225, label %1229 [
    i32 97, label %1226
  ]

1226:                                             ; preds = %1224
  br label %1227

1227:                                             ; preds = %1226, %1140, %975, %880, %223, %189, %155, %118
  br label %1228

1228:                                             ; preds = %1227
  store i8 0, ptr %11, align 1, !tbaa !9
  br label %114, !llvm.loop !139

1229:                                             ; preds = %1224, %1138, %973, %878, %117
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  %1230 = load i32, ptr %12, align 4
  switch i32 %1230, label %1234 [
    i32 5, label %1232
  ]

1231:                                             ; preds = %1217, %1135, %970, %875, %220, %186, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  br label %1239

1232:                                             ; preds = %1229
  br label %1233

1233:                                             ; preds = %1232
  store i8 0, ptr %11, align 1, !tbaa !9
  br label %108, !llvm.loop !140

1234:                                             ; preds = %1229, %111
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #9
  %1235 = load i32, ptr %12, align 4
  switch i32 %1235, label %1244 [
    i32 2, label %1236
    i32 1, label %1238
  ]

1236:                                             ; preds = %1234
  %1237 = call ptr @__cxa_allocate_exception(i64 8) #9
  store ptr @.str.20, ptr %1237, align 16, !tbaa !5
  call void @__cxa_throw(ptr %1237, ptr @_ZTIPKc, ptr null) #11
  unreachable

1238:                                             ; preds = %1234
  ret void

1239:                                             ; preds = %1231
  %1240 = load ptr, ptr %19, align 8
  %1241 = load i32, ptr %20, align 4
  %1242 = insertvalue { ptr, i32 } poison, ptr %1240, 0
  %1243 = insertvalue { ptr, i32 } %1242, i32 %1241, 1
  resume { ptr, i32 } %1243

1244:                                             ; preds = %1234, %1026, %760, %643, %552, %508
  unreachable
}

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #5

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

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

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

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

; 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) #4

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

declare ptr @__cxa_allocate_exception(i64)

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

declare void @__cxa_free_exception(ptr)

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

declare void @__cxa_throw(ptr, ptr, ptr)

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

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

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() #6

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

; 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) #7

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1 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)) #7

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #1 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)) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE4findERS4_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr) #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240)) #1 align 2

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

declare noundef i32 @_Z19coretype_fromstringPKc(ptr noundef) #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_TypeC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240)) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

; Function Attrs: nounwind
declare i32 @__isoc99_sscanf(ptr noundef, ptr noundef, ...) #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_3vEEOT_"(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 @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480)) #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_4vEEOT_"(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(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_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_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i1 noundef zeroext) #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184)) #1 align 2

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

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

declare void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_6vEEOT_"(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(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) #1 align 2

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

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

declare void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #6

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

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

declare noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST4PathplERKS0_(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) #1 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_8vEEOT_"(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(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

attributes #0 = { 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 #1 = { 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 #2 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { noreturn 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 #6 = { "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 = { 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 #8 = { 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 #9 = { nounwind }
attributes #10 = { noreturn nounwind }
attributes #11 = { 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 = !{!"bool", !7, i64 0}
!11 = !{i8 0, i8 2}
!12 = !{}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = distinct !{!15, !14}
!16 = distinct !{!16, !14}
!17 = distinct !{!17, !14}
!18 = distinct !{!18, !14}
!19 = distinct !{!19, !14}
!20 = !{!21, !21, i64 0}
!21 = !{!"int", !7, i64 0}
!22 = !{!23, !97, i64 784}
!23 = !{!"_ZTSN3AST5CrateE", !24, i64 0, !29, i64 24, !38, i64 72, !41, i64 552, !77, i64 576, !82, i64 624, !40, i64 672, !40, i64 680, !40, i64 688, !40, i64 696, !10, i64 704, !85, i64 712, !89, i64 736, !93, i64 760, !97, i64 784, !98, i64 788, !99, i64 792, !58, i64 800, !58, i64 832, !40, i64 864, !100, i64 872}
!24 = !{!"_ZTSN3AST13AttributeListE", !25, i64 0}
!25 = !{!"_ZTSSt6vectorIN3AST9AttributeESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIN3AST9AttributeESaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!29 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !30, i64 0}
!30 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !31, i64 0}
!31 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !32, i64 0, !34, i64 8}
!32 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !33, i64 0}
!33 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!34 = !{!"_ZTSSt15_Rb_tree_header", !35, i64 0, !37, i64 32}
!35 = !{!"_ZTSSt18_Rb_tree_node_base", !36, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!36 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!37 = !{!"long", !7, i64 0}
!38 = !{!"_ZTSN3AST6ModuleE", !39, i64 0, !45, i64 32, !49, i64 56, !53, i64 80, !57, i64 104, !10, i64 176, !7, i64 177, !60, i64 184, !60, i64 240, !60, i64 296, !60, i64 352, !65, i64 408, !69, i64 432, !73, i64 456}
!39 = !{!"_ZTSN3AST12AbsolutePathE", !40, i64 0, !41, i64 8}
!40 = !{!"_ZTS8RcString", !6, i64 0}
!41 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !46, i64 0}
!46 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!49 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!"_ZTSN3AST6Module8FileInfoE", !10, i64 0, !10, i64 1, !58, i64 8, !58, i64 40}
!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !59, i64 0, !37, i64 8, !7, i64 16}
!59 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!60 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !61, i64 0}
!61 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3AST6Module8IndexEntEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !37, i64 8, !62, i64 16, !37, i64 24, !63, i64 32, !6, i64 48}
!62 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!63 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !64, i64 0, !37, i64 8}
!64 = !{!"float", !7, i64 0}
!65 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !66, i64 0}
!66 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!69 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !70, i64 0}
!70 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !72, i64 0}
!72 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!73 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !74, i64 0}
!74 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !76, i64 0}
!76 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!77 = !{!"_ZTSSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !78, i64 0}
!78 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !79, i64 0}
!79 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !80, i64 0, !34, i64 8}
!80 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8RcStringEE", !81, i64 0}
!81 = !{!"_ZTSSt4lessI8RcStringE"}
!82 = !{!"_ZTSSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE", !83, i64 0}
!83 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !84, i64 0}
!84 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !80, i64 0, !34, i64 8}
!85 = !{!"_ZTSSt6vectorIN3AST8TestDescESaIS1_EE", !86, i64 0}
!86 = !{!"_ZTSSt12_Vector_baseIN3AST8TestDescESaIS1_EE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE12_Vector_implE", !88, i64 0}
!88 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!89 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !90, i64 0}
!90 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !91, i64 0}
!91 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !92, i64 0}
!92 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!93 = !{!"_ZTSSt6vectorIN3AST12ProcMacroDefESaIS1_EE", !94, i64 0}
!94 = !{!"_ZTSSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE", !95, i64 0}
!95 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE12_Vector_implE", !96, i64 0}
!96 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!97 = !{!"_ZTSN3AST7EditionE", !7, i64 0}
!98 = !{!"_ZTSN3AST5Crate4TypeE", !7, i64 0}
!99 = !{!"_ZTSN3AST5Crate7LoadStdE", !7, i64 0}
!100 = !{!"_ZTSN3AST4PathE", !101, i64 8, !103, i64 56}
!101 = !{!"_ZTSN3AST4Path5ClassE", !102, i64 0, !7, i64 8}
!102 = !{!"_ZTSN3AST4Path5Class3TagE", !7, i64 0}
!103 = !{!"_ZTSN3AST4Path8BindingsE", !104, i64 0, !107, i64 64, !110, i64 128}
!104 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_ValueEEE", !39, i64 0, !105, i64 32}
!105 = !{!"_ZTSN3AST17PathBinding_ValueE", !106, i64 0, !7, i64 8}
!106 = !{!"_ZTSN3AST17PathBinding_Value3TagE", !7, i64 0}
!107 = !{!"_ZTSN3AST11PathBindingINS_16PathBinding_TypeEEE", !39, i64 0, !108, i64 32}
!108 = !{!"_ZTSN3AST16PathBinding_TypeE", !109, i64 0, !7, i64 8}
!109 = !{!"_ZTSN3AST16PathBinding_Type3TagE", !7, i64 0}
!110 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_MacroEEE", !39, i64 0, !111, i64 32}
!111 = !{!"_ZTSN3AST17PathBinding_MacroE", !112, i64 0, !7, i64 8}
!112 = !{!"_ZTSN3AST17PathBinding_Macro3TagE", !7, i64 0}
!113 = !{!114, !114, i64 0}
!114 = !{!"_ZTS9eCoreType", !7, i64 0}
!115 = !{!116, !6, i64 0}
!116 = !{!"_ZTSSt16initializer_listI8RcStringE", !6, i64 0, !37, i64 8}
!117 = !{!116, !37, i64 8}
!118 = !{!7, !7, i64 0}
!119 = distinct !{!119, !14}
!120 = distinct !{!120, !14}
!121 = distinct !{!121, !14}
!122 = distinct !{!122, !14}
!123 = distinct !{!123, !14}
!124 = distinct !{!124, !14}
!125 = distinct !{!125, !14}
!126 = distinct !{!126, !14}
!127 = !{!128, !21, i64 0}
!128 = !{!"_ZTSN3AST4Path5Class10Data_SuperE", !21, i64 0, !129, i64 8}
!129 = !{!"_ZTSSt6vectorIN3AST8PathNodeESaIS1_EE", !130, i64 0}
!130 = !{!"_ZTSSt12_Vector_baseIN3AST8PathNodeESaIS1_EE", !131, i64 0}
!131 = !{!"_ZTSNSt12_Vector_baseIN3AST8PathNodeESaIS1_EE12_Vector_implE", !132, i64 0}
!132 = !{!"_ZTSNSt12_Vector_baseIN3AST8PathNodeESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!133 = distinct !{!133, !14}
!134 = distinct !{!134, !14}
!135 = distinct !{!135, !14}
!136 = distinct !{!136, !14}
!137 = distinct !{!137, !14}
!138 = distinct !{!138, !14}
!139 = distinct !{!139, !14}
!140 = distinct !{!140, !14}


; 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"

%class.RcString = type { ptr }
%"class.std::map.107" = type { %"class.std::_Rb_tree.108" }
%"class.std::_Rb_tree.108" = type { %"struct.std::_Rb_tree<RcString, std::pair<const RcString, RcString>, std::_Select1st<std::pair<const RcString, RcString>>, std::less<RcString>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<RcString, std::pair<const RcString, RcString>, std::_Select1st<std::pair<const RcString, RcString>>, std::less<RcString>>::_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.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.2", %"class.std::unique_ptr.10", %"class.std::vector" }
%"class.std::unique_ptr.2" = type { %"struct.std::__uniq_ptr_data.3" }
%"struct.std::__uniq_ptr_data.3" = type { %"class.std::__uniq_ptr_impl.4" }
%"class.std::__uniq_ptr_impl.4" = type { %"class.std::tuple.5" }
%"class.std::tuple.5" = type { %"struct.std::_Tuple_impl.6" }
%"struct.std::_Tuple_impl.6" = type { %"struct.std::_Head_base.9" }
%"struct.std::_Head_base.9" = type { ptr }
%"class.std::unique_ptr.10" = type { %"struct.std::__uniq_ptr_data.11" }
%"struct.std::__uniq_ptr_data.11" = type { %"class.std::__uniq_ptr_impl.12" }
%"class.std::__uniq_ptr_impl.12" = type { %"class.std::tuple.13" }
%"class.std::tuple.13" = type { %"struct.std::_Tuple_impl.14" }
%"struct.std::_Tuple_impl.14" = type { %"struct.std::_Head_base.17" }
%"struct.std::_Head_base.17" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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.23", %"struct.AST::PathBinding.24" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector.18" }
%"class.std::vector.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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_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.AST::PathBinding.23" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Type" }
%"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.24" = 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 }
%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 = type { i8 }
%class.anon.98 = type { i8 }
%class.anon.100 = type { i8 }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.112" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::allocator.20" = type { i8 }
%"class.std::vector.113" = type { %"struct.std::_Vector_base.114" }
%"struct.std::_Vector_base.114" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl" = type { %"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<const AST::Module *, std::allocator<const AST::Module *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.118 = type { ptr }
%class.anon.119 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.120" = type { ptr }
%class.anon.246 = type { ptr, ptr }
%"class.std::span" = type { ptr, i64 }
%class.anon.247 = type { ptr }
%"class.AST::PathNode" = type { %class.RcString, %"struct.AST::PathParams" }
%"struct.AST::PathParams" = type <{ %"class.std::vector.102", i8, [7 x i8] }>
%"class.std::vector.102" = type { %"struct.std::_Vector_base.103" }
%"struct.std::_Vector_base.103" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::PathParamEnt, std::allocator<AST::PathParamEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.248 = type { i8 }
%class.anon.250 = type { ptr }

@_ZN12_GLOBAL__N_123rcstring_crate_builtinsE = external hidden global %class.RcString, align 8
@.str.2 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [74 x i8], align 1
@__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_ = external hidden unnamed_addr constant [107 x i8], align 1
@.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__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_ = external hidden unnamed_addr constant [27 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZN3AST17g_implicit_cratesE = external global %"class.std::map.107", align 8
@.str.7 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [47 x i8], align 1
@_ZTIPKc = external constant ptr

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #2

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

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef %4) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
.critedge463:
  %5 = alloca %struct.Span, align 8
  %6 = alloca %"class.std::function", align 8
  %7 = alloca %class.anon, align 1
  %8 = alloca %struct.Span, align 8
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %class.anon.98, align 1
  %11 = alloca %struct.Span, align 8
  %12 = alloca %"class.std::function", align 8
  %13 = alloca %class.anon.100, align 1
  %14 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %15 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.112", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %class.RcString, align 8
  %19 = alloca %"class.std::vector", align 8
  %20 = alloca %class.RcString, align 8
  %21 = alloca %"class.std::vector", align 8
  %22 = alloca %"struct.AST::AbsolutePath", align 8
  %23 = alloca %class.RcString, align 8
  %24 = alloca %"class.std::vector.18", align 8
  %25 = alloca [1 x %class.RcString], align 8
  %26 = alloca %"class.std::allocator.20", align 1
  %27 = alloca %"class.AST::PathBinding_Type", align 8
  %28 = alloca %"class.std::vector.113", align 8
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca %struct.Span, align 8
  %32 = alloca %"class.std::function", align 8
  %33 = alloca %class.anon.118, align 8
  %34 = alloca %struct.Span, align 8
  %35 = alloca %"class.std::function", align 8
  %36 = alloca %class.anon.119, align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.120", align 8
  %39 = alloca %struct.Span, align 8
  %40 = alloca %"class.std::function", align 8
  %41 = alloca %class.anon.246, align 8
  %42 = alloca %"struct.AST::Path::Bindings", align 8
  %43 = alloca %"class.std::span", align 8
  %44 = alloca %struct.Span, align 8
  %45 = alloca %"class.std::function", align 8
  %46 = alloca %class.anon.247, align 8
  %47 = alloca %class.RcString, align 8
  %48 = alloca %"class.std::vector", align 8
  %49 = alloca %"class.AST::PathNode", align 8
  %50 = alloca %class.RcString, align 8
  %51 = alloca %"struct.AST::PathParams", align 8
  %52 = alloca %class.RcString, align 8
  %53 = alloca %"class.std::vector", align 8
  %54 = alloca %class.RcString, align 8
  %55 = alloca %"class.std::vector", align 8
  %56 = alloca %struct.Span, align 8
  %57 = alloca %"class.std::function", align 8
  %58 = alloca %class.anon.248, align 1
  %59 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %60 = alloca %class.RcString, align 8
  %61 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %62 = alloca %struct.Span, align 8
  %63 = alloca %"class.std::function", align 8
  %64 = alloca %class.anon.250, align 8
  %65 = getelementptr inbounds i8, ptr %4, i64 8
  %66 = getelementptr inbounds i8, ptr %2, i64 784
  %67 = getelementptr inbounds i8, ptr %0, i64 120
  %68 = getelementptr inbounds i8, ptr %2, i64 72
  %69 = tail call noundef i32 @_ZNK3AST4Path5Class3tagEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  switch i32 %69, label %.critedge285.backedge [
    i32 0, label %70
    i32 1, label %71
    i32 2, label %80
    i32 7, label %89
    i32 3, label %98
    i32 4, label %437
    i32 5, label %484
    i32 6, label %560
  ], !llvm.loop !5

70:                                               ; preds = %.critedge463
  tail call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.4, i32 noundef 54, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_) #10
  unreachable

71:                                               ; preds = %.critedge463
  %72 = tail call noundef nonnull align 1 dereferenceable(1) ptr @_ZN3AST4Path5Class10as_InvalidEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 1 dereferenceable(1) %7) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull %6)
          to label %73 unwind label %76

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

75:                                               ; preds = %73
  call void @__cxa_throw(ptr nonnull %74, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
  unreachable

76:                                               ; preds = %71
  %77 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #11
  br label %601

78:                                               ; preds = %73
  %79 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %74) #11
  br label %601

80:                                               ; preds = %.critedge463
  %81 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3AST4Path5Class8as_LocalEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(1) %10) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull %9)
          to label %82 unwind label %85

82:                                               ; preds = %80
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  %83 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull @.str.5)
          to label %84 unwind label %87

84:                                               ; preds = %82
  call void @__cxa_throw(ptr nonnull %83, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
  unreachable

85:                                               ; preds = %80
  %86 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  br label %601

87:                                               ; preds = %82
  %88 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %83) #11
  br label %601

89:                                               ; preds = %.critedge463
  %90 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZN3AST4Path5Class7as_UFCSEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #11
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %13) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(1) %13) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull %12)
          to label %91 unwind label %94

91:                                               ; preds = %89
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  %92 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %92, ptr noundef nonnull @.str.5)
          to label %93 unwind label %96

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

94:                                               ; preds = %89
  %95 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %13) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #11
  br label %601

96:                                               ; preds = %91
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %92) #11
  br label %601

98:                                               ; preds = %.critedge463
  %99 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class11as_RelativeEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  %100 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %100, label %101, label %108

101:                                              ; preds = %98
  %102 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %103 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %102, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %104 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %103, ptr noundef nonnull @.str.6)
  %105 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %106 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %107 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %108

108:                                              ; preds = %101, %98
  %109 = load i32, ptr %66, align 8, !tbaa !11
  %110 = icmp sgt i32 %109, 0
  br i1 %110, label %111, label %148

111:                                              ; preds = %108
  %112 = getelementptr inbounds i8, ptr %99, i64 8
  %113 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %112, i64 noundef 0)
  %114 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %113)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %115 = tail call ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE4findERS4_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE, ptr noundef nonnull align 8 dereferenceable(8) %114)
  store ptr %115, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  %116 = tail call ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE) #11
  store ptr %116, ptr %15, align 8
  %117 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EES6_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  %118 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %117, label %119, label %139

119:                                              ; preds = %111
  br i1 %118, label %120, label %127

120:                                              ; preds = %119
  %121 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %121, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %123 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef nonnull @.str.7)
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %123, ptr noundef nonnull align 8 dereferenceable(8) %114)
  %125 = 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 = 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 = %120, %119
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %128 = call ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %112) #11
  store ptr %128, ptr %17, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN3AST8PathNodeESt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #11
  %129 = load ptr, ptr %16, align 8
  %130 = call ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr %129)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %131 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #11
  %132 = getelementptr inbounds i8, ptr %131, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %132)
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %112)
          to label %133 unwind label %134

133:                                              ; preds = %127
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull %18, ptr noundef nonnull %19)
          to label %147 unwind label %136

134:                                              ; preds = %127
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %138

136:                                              ; preds = %133
  %137 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #11
  br label %138

138:                                              ; preds = %136, %134
  %.pn220 = phi { ptr, i32 } [ %137, %136 ], [ %135, %134 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %601

139:                                              ; preds = %111
  br i1 %118, label %140, label %.thread

140:                                              ; preds = %139
  %141 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %142 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %141, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %143 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %142, ptr noundef nonnull @.str.8)
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull align 8 dereferenceable(8) %114)
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %.thread

.thread:                                          ; preds = %140, %139
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %148

147:                                              ; preds = %133
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  br label %.thread280

148:                                              ; preds = %.thread, %108
  %149 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
  %150 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %149) #11
  %151 = icmp eq i64 %150, 1
  br i1 %151, label %152, label %.critedge264

152:                                              ; preds = %148
  %153 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
  %154 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef 0) #11
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %154)
  %156 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %155)
  %157 = call noundef i32 @_Z19coretype_fromstringPKc(ptr noundef %156)
  %.not222 = icmp eq i32 %157, 0
  br i1 %.not222, label %.critedge264, label %158

158:                                              ; preds = %152
  %159 = call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %159, label %160, label %167

160:                                              ; preds = %158
  %161 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %161, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull @.str.9)
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %166 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %167

167:                                              ; preds = %160, %158
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
  %168 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %169 unwind label %179

169:                                              ; preds = %167
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 8 dereferenceable(24) %168)
          to label %170 unwind label %179

170:                                              ; preds = %169
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull %20, ptr noundef nonnull %21)
          to label %171 unwind label %181

171:                                              ; preds = %170
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #11
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) @_ZN12_GLOBAL__N_123rcstring_crate_builtinsE)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  %172 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %173 unwind label %184

173:                                              ; preds = %171
  %174 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %172) #11
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %174)
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %175)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %26) #11
  call void @_ZNSaI8RcStringEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  invoke void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr nonnull %25, i64 1, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %176 unwind label %186

176:                                              ; preds = %173
  invoke void @_ZN3AST12AbsolutePathC2E8RcStringSt6vectorIS1_SaIS1_EE(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull %23, ptr noundef nonnull %24)
          to label %177 unwind label %188

177:                                              ; preds = %176
  invoke void @_ZN3AST16PathBinding_TypeC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %178 unwind label %190

178:                                              ; preds = %177
  call void @_ZN3AST11PathBindingINS_16PathBinding_TypeEE3setENS_12AbsolutePathES1_(ptr noundef nonnull align 8 dereferenceable(64) %67, ptr noundef nonnull %22, ptr noundef nonnull %27)
  call void @_ZN3AST16PathBinding_TypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #11
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  br label %.thread280

179:                                              ; preds = %169, %167
  %180 = landingpad { ptr, i32 }
          cleanup
  br label %183

181:                                              ; preds = %170
  %182 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #11
  br label %183

183:                                              ; preds = %181, %179
  %.pn223 = phi { ptr, i32 } [ %182, %181 ], [ %180, %179 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #11
  br label %601

184:                                              ; preds = %171
  %185 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit

186:                                              ; preds = %173
  %187 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.loopexit

188:                                              ; preds = %176
  %189 = landingpad { ptr, i32 }
          cleanup
  br label %192

190:                                              ; preds = %177
  %191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %192

192:                                              ; preds = %190, %188
  %.pn225 = phi { ptr, i32 } [ %191, %190 ], [ %189, %188 ]
  call void @_ZNSt6vectorI8RcStringSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #11
  br label %.loopexit.loopexit

.loopexit.loopexit:                               ; preds = %192, %186
  %.pn225.pn = phi { ptr, i32 } [ %.pn225, %192 ], [ %187, %186 ]
  call void @_ZNSt15__new_allocatorI8RcStringED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %26) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #11
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %184
  %.pn225.pn.pn = phi { ptr, i32 } [ %185, %184 ], [ %.pn225.pn, %.loopexit.loopexit ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #11
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #11
  br label %601

.critedge264:                                     ; preds = %152, %148
  %193 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
  %194 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %193) #11
  %.not230 = icmp eq i64 %194, 0
  br i1 %.not230, label %436, label %195

195:                                              ; preds = %.critedge264
  %196 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
  %197 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %196) #11
  %198 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %197)
  %199 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %198)
  %200 = load i8, ptr %199, align 1, !tbaa !104
  %201 = icmp eq i8 %200, 35
  br i1 %201, label %202, label %436

202:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #11
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  store ptr %68, ptr %29, align 8, !tbaa !105
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %.preheader unwind label %.loopexit.split-lp.loopexit

.preheader:                                       ; preds = %202, %316
  %.0199 = phi i32 [ %317, %316 ], [ 0, %202 ]
  %203 = zext i32 %.0199 to i64
  %204 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %205 unwind label %210

205:                                              ; preds = %.preheader
  %206 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #11
  %207 = icmp ugt i64 %206, %203
  br i1 %207, label %212, label %208

208:                                              ; preds = %205
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  %209 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %318 unwind label %.loopexit.split-lp.loopexit

.loopexit288:                                     ; preds = %333, %336, %339, %341, %345, %347
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit:                      ; preds = %399, %397, %395, %391, %389, %386, %383, %329, %327, %324, %322, %319, %208, %202
  %lpad.loopexit305 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp.loopexit.split-lp:             ; preds = %372
  %lpad.loopexit.split-lp306 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

210:                                              ; preds = %.preheader
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

212:                                              ; preds = %205
  %213 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %214 unwind label %229

214:                                              ; preds = %212
  %215 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %213, i64 noundef %203) #11
  %216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %215)
  %217 = call noundef i64 @_ZNK8RcString4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %216)
  %.not239 = icmp eq i64 %217, 0
  br i1 %.not239, label %275, label %218

218:                                              ; preds = %214
  %219 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %216)
  %220 = load i8, ptr %219, align 1, !tbaa !104
  %221 = icmp eq i8 %220, 35
  br i1 %221, label %222, label %275

222:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #11
  store i32 0, ptr %30, align 4, !tbaa !7
  %223 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %216)
  %224 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %223, ptr noundef nonnull @.str.10, ptr noundef nonnull %30) #11
  %.not243 = icmp eq i32 %224, 1
  br i1 %.not243, label %240, label %225

225:                                              ; preds = %222
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %226 unwind label %233

226:                                              ; preds = %225
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  store ptr %216, ptr %33, align 8, !tbaa !105
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(8) %33) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull %32)
          to label %227 unwind label %235

227:                                              ; preds = %226
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  %228 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %228, ptr noundef nonnull @.str.5)
          to label %.invoke unwind label %238

229:                                              ; preds = %212
  %230 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit289:                                     ; preds = %315
  %lpad.loopexit291 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

.loopexit.split-lp290:                            ; preds = %303
  %lpad.loopexit.split-lp292 = landingpad { ptr, i32 }
          cleanup
  br label %.loopexit.split-lp

231:                                              ; preds = %.invoke
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %274

233:                                              ; preds = %225
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %237

235:                                              ; preds = %226
  %236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #11
  br label %237

237:                                              ; preds = %235, %233
  %.pn247 = phi { ptr, i32 } [ %236, %235 ], [ %234, %233 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #11
  br label %274

238:                                              ; preds = %227
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %228) #11
  br label %274

240:                                              ; preds = %222
  %241 = load i32, ptr %30, align 4, !tbaa !7
  %242 = zext i32 %241 to i64
  %243 = load ptr, ptr %29, align 8, !tbaa !105
  %244 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %243)
  %245 = call noundef i64 @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %244) #11
  %246 = icmp ugt i64 %245, %242
  br i1 %246, label %259, label %247

247:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %248 unwind label %252

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #11
  store ptr %216, ptr %36, align 8, !tbaa !105
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(8) %36) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull %35)
          to label %249 unwind label %254

249:                                              ; preds = %248
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  %250 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %250, ptr noundef nonnull @.str.5)
          to label %.invoke unwind label %257

.invoke:                                          ; preds = %227, %249
  %251 = phi ptr [ %250, %249 ], [ %228, %227 ]
  invoke void @__cxa_throw(ptr nonnull %251, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %.cont unwind label %231

.cont:                                            ; preds = %.invoke
  unreachable

252:                                              ; preds = %247
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %256

254:                                              ; preds = %248
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  br label %256

256:                                              ; preds = %254, %252
  %.pn244 = phi { ptr, i32 } [ %255, %254 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #11
  br label %274

257:                                              ; preds = %249
  %258 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %250) #11
  br label %274

259:                                              ; preds = %240
  %260 = load ptr, ptr %29, align 8, !tbaa !105
  %261 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %260)
  %262 = load i32, ptr %30, align 4, !tbaa !7
  %263 = zext i32 %262 to i64
  %264 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %261, i64 noundef %263) #11
  %265 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %264) #11
  br i1 %265, label %267, label %266

266:                                              ; preds = %259
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.4, i32 noundef 121, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_) #10
  unreachable

267:                                              ; preds = %259
  %268 = load ptr, ptr %29, align 8, !tbaa !105
  %269 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480) %268)
  %270 = load i32, ptr %30, align 4, !tbaa !7
  %271 = zext i32 %270 to i64
  %272 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %269, i64 noundef %271) #11
  %273 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZNKSt19__shared_ptr_accessIN3AST6ModuleELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %272) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #11
  br label %311

274:                                              ; preds = %257, %256, %238, %237, %231
  %.pn249 = phi { ptr, i32 } [ %232, %231 ], [ %239, %238 ], [ %.pn247, %237 ], [ %258, %257 ], [ %.pn244, %256 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #11
  br label %.loopexit.split-lp

275:                                              ; preds = %218, %214
  %276 = load ptr, ptr %29, align 8, !tbaa !105
  %277 = getelementptr inbounds i8, ptr %276, i64 32
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #11
  %278 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #11
  store ptr %278, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #11
  %279 = call ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #11
  store ptr %279, ptr %38, align 8
  %280 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #11
  br i1 %280, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %275, %292
  %281 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #11
  %282 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %281) #11
  %283 = getelementptr inbounds i8, ptr %282, i64 72
  %284 = invoke noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef nonnull align 8 dereferenceable(8) %216)
          to label %285 unwind label %290

285:                                              ; preds = %.lr.ph
  br i1 %284, label %286, label %292

286:                                              ; preds = %285
  %287 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %281) #11
  %288 = getelementptr inbounds i8, ptr %287, i64 80
  %289 = call noundef zeroext i1 @_ZNK3AST4Item9is_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %288)
  br i1 %289, label %295, label %292

290:                                              ; preds = %.lr.ph
  %291 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %.loopexit.split-lp

292:                                              ; preds = %286, %285
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #11
  %294 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #11
  br i1 %294, label %.lr.ph, label %._crit_edge

295:                                              ; preds = %286
  %296 = call noundef ptr @_ZNKSt10unique_ptrIN3AST5NamedINS0_4ItemEEESt14default_deleteIS3_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %281) #11
  %297 = getelementptr inbounds i8, ptr %296, i64 80
  %298 = call noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488) %297)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  br label %311

._crit_edge:                                      ; preds = %275, %292
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %299 unwind label %304

299:                                              ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %41) #11
  store ptr %216, ptr %41, align 8, !tbaa !105
  %300 = getelementptr inbounds i8, ptr %41, i64 8
  store ptr %29, ptr %300, align 8, !tbaa !105
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(16) %41) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull %40)
          to label %301 unwind label %306

301:                                              ; preds = %299
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  %302 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %302, ptr noundef nonnull @.str.5)
          to label %303 unwind label %309

303:                                              ; preds = %301
  invoke void @__cxa_throw(ptr nonnull %302, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %602 unwind label %.loopexit.split-lp290

304:                                              ; preds = %._crit_edge
  %305 = landingpad { ptr, i32 }
          cleanup
  br label %308

306:                                              ; preds = %299
  %307 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %41) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #11
  br label %308

308:                                              ; preds = %306, %304
  %.pn241 = phi { ptr, i32 } [ %307, %306 ], [ %305, %304 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #11
  br label %.loopexit.split-lp

309:                                              ; preds = %301
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %302) #11
  br label %.loopexit.split-lp

311:                                              ; preds = %295, %267
  %.3197 = phi ptr [ %273, %267 ], [ %298, %295 ]
  store ptr %.3197, ptr %29, align 8, !tbaa !105
  %312 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %216)
  %313 = load i8, ptr %312, align 1, !tbaa !104
  %.not246 = icmp eq i8 %313, 35
  br i1 %.not246, label %315, label %314

314:                                              ; preds = %311
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  br label %315

315:                                              ; preds = %314, %311
  invoke void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 8 dereferenceable(8) %29)
          to label %316 unwind label %.loopexit289

316:                                              ; preds = %315
  %317 = add i32 %.0199, 1
  br label %.preheader, !llvm.loop !106

318:                                              ; preds = %208
  br i1 %209, label %319, label %331

319:                                              ; preds = %318
  %320 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %320, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
          to label %322 unwind label %.loopexit.split-lp.loopexit

322:                                              ; preds = %319
  %323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull @.str.12)
          to label %324 unwind label %.loopexit.split-lp.loopexit

324:                                              ; preds = %322
  %325 = call noundef i64 @_ZNKSt6vectorIPKN3AST6ModuleESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %323, i64 noundef %325)
          to label %327 unwind label %.loopexit.split-lp.loopexit

327:                                              ; preds = %324
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %326, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %329 unwind label %.loopexit.split-lp.loopexit

329:                                              ; preds = %327
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %331 unwind label %.loopexit.split-lp.loopexit

331:                                              ; preds = %329, %318
  %332 = getelementptr inbounds i8, ptr %99, i64 8
  br label %333

333:                                              ; preds = %380, %331
  %334 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %335 unwind label %.loopexit288

335:                                              ; preds = %333
  br i1 %334, label %336, label %349

336:                                              ; preds = %335
  %337 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %337, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
          to label %339 unwind label %.loopexit288

339:                                              ; preds = %336
  %340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %338, ptr noundef nonnull @.str.13)
          to label %341 unwind label %.loopexit288

341:                                              ; preds = %339
  %342 = load ptr, ptr %29, align 8, !tbaa !105
  %343 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %342)
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef nonnull align 8 dereferenceable(32) %343)
          to label %345 unwind label %.loopexit288

345:                                              ; preds = %341
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %344, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %347 unwind label %.loopexit288

347:                                              ; preds = %345
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %349 unwind label %.loopexit288

349:                                              ; preds = %347, %335
  call void @llvm.lifetime.start.p0(i64 184, ptr nonnull %42) #11
  %350 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 0) #11
  %351 = load ptr, ptr %350, align 8, !tbaa !105
  %352 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %351)
  %353 = load ptr, ptr %29, align 8, !tbaa !105
  %354 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5frontEv(ptr noundef nonnull align 8 dereferenceable(24) %332) #11
  %355 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %354)
  call void @_ZNSt4spanIPKN3AST6ModuleEEC2ERSt6vectorIS3_SaIS3_EE(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef nonnull align 8 dereferenceable(24) %28)
  %356 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %332) #11
  %357 = icmp ugt i64 %356, 1
  invoke void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind nonnull writable sret(%"struct.AST::Path::Bindings") align 8 %42, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(1112) %2, ptr noundef nonnull align 8 dereferenceable(32) %352, ptr noundef nonnull align 8 dereferenceable(480) %353, ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef nonnull %43, i1 noundef zeroext %357)
          to label %358 unwind label %361

358:                                              ; preds = %349
  %359 = invoke noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184) %42)
          to label %360 unwind label %363

360:                                              ; preds = %358
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %42) #11
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %42) #11
  br i1 %359, label %383, label %366

361:                                              ; preds = %349
  %362 = landingpad { ptr, i32 }
          cleanup
  br label %365

363:                                              ; preds = %358
  %364 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4Path8BindingsD2Ev(ptr noundef nonnull align 8 dereferenceable(184) %42) #11
  br label %365

365:                                              ; preds = %363, %361
  %.pn231 = phi { ptr, i32 } [ %364, %363 ], [ %362, %361 ]
  call void @llvm.lifetime.end.p0(i64 184, ptr nonnull %42) #11
  br label %.loopexit.split-lp

366:                                              ; preds = %360
  %367 = call noundef zeroext i1 @_ZNKSt6vectorIPKN3AST6ModuleESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  br i1 %367, label %368, label %380

368:                                              ; preds = %366
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %369 unwind label %373

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #11
  store ptr %99, ptr %46, align 8, !tbaa !105
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef nonnull align 8 dereferenceable(8) %46) #11
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %44, i32 noundef 0, ptr noundef nonnull %45)
          to label %370 unwind label %375

370:                                              ; preds = %369
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  %371 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %371, ptr noundef nonnull @.str.14)
          to label %372 unwind label %378

372:                                              ; preds = %370
  invoke void @__cxa_throw(ptr nonnull %371, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %602 unwind label %.loopexit.split-lp.loopexit.split-lp

373:                                              ; preds = %368
  %374 = landingpad { ptr, i32 }
          cleanup
  br label %377

375:                                              ; preds = %369
  %376 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #11
  br label %377

377:                                              ; preds = %375, %373
  %.pn233 = phi { ptr, i32 } [ %376, %375 ], [ %374, %373 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #11
  br label %.loopexit.split-lp

378:                                              ; preds = %370
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %371) #11
  br label %.loopexit.split-lp

380:                                              ; preds = %366
  %381 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  %382 = load ptr, ptr %381, align 8, !tbaa !105
  store ptr %382, ptr %29, align 8, !tbaa !105
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  br label %333, !llvm.loop !107

383:                                              ; preds = %360
  %384 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %385 unwind label %.loopexit.split-lp.loopexit

385:                                              ; preds = %383
  br i1 %384, label %386, label %399

386:                                              ; preds = %385
  %387 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %387, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
          to label %389 unwind label %.loopexit.split-lp.loopexit

389:                                              ; preds = %386
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %388, ptr noundef nonnull @.str.15)
          to label %391 unwind label %.loopexit.split-lp.loopexit

391:                                              ; preds = %389
  %392 = load ptr, ptr %29, align 8, !tbaa !105
  %393 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %392)
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull align 8 dereferenceable(32) %393)
          to label %395 unwind label %.loopexit.split-lp.loopexit

395:                                              ; preds = %391
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %397 unwind label %.loopexit.split-lp.loopexit

397:                                              ; preds = %395
  %398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %396, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %399 unwind label %.loopexit.split-lp.loopexit

399:                                              ; preds = %397, %385
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull @.str.2)
          to label %400 unwind label %.loopexit.split-lp.loopexit

400:                                              ; preds = %399
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %48, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #11
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull %47, ptr noundef nonnull %48)
          to label %401 unwind label %407

401:                                              ; preds = %400
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #11
  %402 = load ptr, ptr %29, align 8, !tbaa !105
  %403 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %402)
  %404 = getelementptr inbounds i8, ptr %403, i64 8
  %405 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %404) #11
  %.not402 = icmp eq i64 %405, 0
  br i1 %.not402, label %._crit_edge400, label %.lr.ph399

._crit_edge400:                                   ; preds = %419, %401
  %406 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %434 unwind label %432

407:                                              ; preds = %400
  %408 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %48) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #11
  br label %.loopexit.split-lp

409:                                              ; preds = %.lr.ph399
  %410 = landingpad { ptr, i32 }
          cleanup
  br label %435

.lr.ph399:                                        ; preds = %401, %419
  %411 = phi i64 [ %421, %419 ], [ 0, %401 ]
  %.0149397 = phi i32 [ %420, %419 ], [ 0, %401 ]
  %412 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %413 unwind label %409

413:                                              ; preds = %.lr.ph399
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %49) #11
  %414 = load ptr, ptr %29, align 8, !tbaa !105
  %415 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %414)
  %416 = getelementptr inbounds i8, ptr %415, i64 8
  %417 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %416, i64 noundef %411) #11
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %417)
  call void @_ZN3AST10PathParamsC2Ev(ptr noundef nonnull align 8 dereferenceable(25) %51)
  invoke void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40) %49, ptr noundef nonnull %50, ptr noundef nonnull %51)
          to label %418 unwind label %427

418:                                              ; preds = %413
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %412, ptr noundef nonnull align 8 dereferenceable(40) %49)
          to label %419 unwind label %429

419:                                              ; preds = %418
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %49) #11
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %51) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #11
  %420 = add i32 %.0149397, 1
  %421 = zext i32 %420 to i64
  %422 = load ptr, ptr %29, align 8, !tbaa !105
  %423 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK3AST6Module4pathEv(ptr noundef nonnull align 8 dereferenceable(480) %422)
  %424 = getelementptr inbounds i8, ptr %423, i64 8
  %425 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %424) #11
  %426 = icmp ugt i64 %425, %421
  br i1 %426, label %.lr.ph399, label %._crit_edge400, !llvm.loop !108

427:                                              ; preds = %413
  %428 = landingpad { ptr, i32 }
          cleanup
  br label %431

429:                                              ; preds = %418
  %430 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST8PathNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %49) #11
  br label %431

431:                                              ; preds = %429, %427
  %.pn235 = phi { ptr, i32 } [ %430, %429 ], [ %428, %427 ]
  call void @_ZN3AST10PathParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(25) %51) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %49) #11
  br label %435

432:                                              ; preds = %._crit_edge400
  %433 = landingpad { ptr, i32 }
          cleanup
  br label %435

434:                                              ; preds = %._crit_edge400
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #11
  br label %.thread280

435:                                              ; preds = %409, %431, %432
  %.pn235.pn.pn = phi { ptr, i32 } [ %433, %432 ], [ %.pn235, %431 ], [ %410, %409 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #11
  br label %.loopexit.split-lp

.loopexit.split-lp:                               ; preds = %.loopexit289, %.loopexit.split-lp290, %.loopexit288, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %210, %274, %290, %308, %309, %229, %435, %407, %378, %377, %365
  %.pn249.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn235.pn.pn, %435 ], [ %408, %407 ], [ %379, %378 ], [ %.pn233, %377 ], [ %.pn231, %365 ], [ %211, %210 ], [ %230, %229 ], [ %.pn249, %274 ], [ %310, %309 ], [ %.pn241, %308 ], [ %291, %290 ], [ %lpad.loopexit, %.loopexit288 ], [ %lpad.loopexit305, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp306, %.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit291, %.loopexit289 ], [ %lpad.loopexit.split-lp292, %.loopexit.split-lp290 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #11
  br label %601

436:                                              ; preds = %195, %.critedge264
  call void @_ZNK3AST4PathplERKS0_(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %0, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %4)
  br label %.thread280

437:                                              ; preds = %.critedge463
  %438 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5Class7as_SelfEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  %439 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %439, label %440, label %447

440:                                              ; preds = %437
  %441 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %442 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %441, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %443 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %442, ptr noundef nonnull @.str.16)
  %444 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %443, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %445 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %444, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %446 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %445, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %447

447:                                              ; preds = %440, %437
  %448 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
  %449 = tail call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %448) #11
  %.not216 = icmp eq i64 %449, 0
  br i1 %.not216, label %483, label %450

450:                                              ; preds = %447
  %451 = tail call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
  %452 = tail call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %451) #11
  %453 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %452)
  %454 = tail call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %453)
  %455 = load i8, ptr %454, align 1, !tbaa !104
  %456 = icmp eq i8 %455, 35
  br i1 %456, label %457, label %483

457:                                              ; preds = %450
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull @.str.2)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %53, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #11
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull %52, ptr noundef nonnull %53)
          to label %458 unwind label %468

458:                                              ; preds = %457
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  br label %459

459:                                              ; preds = %478, %458
  %.0146 = phi i32 [ 0, %458 ], [ %479, %478 ]
  %460 = zext i32 %.0146 to i64
  %461 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %462 unwind label %470

462:                                              ; preds = %459
  %463 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %461) #11
  %464 = add i64 %463, -1
  %465 = icmp ugt i64 %464, %460
  br i1 %465, label %472, label %466

466:                                              ; preds = %462
  %467 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %.thread280 unwind label %480

468:                                              ; preds = %457
  %469 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %52) #11
  br label %601

470:                                              ; preds = %476, %474, %472, %459
  %471 = landingpad { ptr, i32 }
          cleanup
  br label %482

472:                                              ; preds = %462
  %473 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %474 unwind label %470

474:                                              ; preds = %472
  %475 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %476 unwind label %470

476:                                              ; preds = %474
  %477 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %475, i64 noundef %460) #11
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %473, ptr noundef nonnull align 8 dereferenceable(40) %477)
          to label %478 unwind label %470

478:                                              ; preds = %476
  %479 = add i32 %.0146, 1
  br label %459, !llvm.loop !109

480:                                              ; preds = %466
  %481 = landingpad { ptr, i32 }
          cleanup
  br label %482

482:                                              ; preds = %480, %470
  %.pn217 = phi { ptr, i32 } [ %471, %470 ], [ %481, %480 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #11
  br label %601

483:                                              ; preds = %450, %447
  tail call void @_ZNK3AST4PathplERKS0_(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %0, ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %4)
  br label %.thread280

484:                                              ; preds = %.critedge463
  %485 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class8as_SuperEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  %486 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %486, label %487, label %494

487:                                              ; preds = %484
  %488 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %489 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %488, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %490 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %489, ptr noundef nonnull @.str.17)
  %491 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %490, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %492 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %491, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %493 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %494

494:                                              ; preds = %487, %484
  %495 = load i32, ptr %485, align 8, !tbaa !110
  %.not = icmp eq i32 %495, 0
  br i1 %.not, label %496, label %497

496:                                              ; preds = %494
  tail call void @__assert_fail(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.4, i32 noundef 183, ptr noundef nonnull @__PRETTY_FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_) #10
  unreachable

497:                                              ; preds = %494
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull @.str.2)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %55, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull %54, ptr noundef nonnull %55)
          to label %498 unwind label %510

498:                                              ; preds = %497
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  %499 = load i32, ptr %485, align 8, !tbaa !110
  %500 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %501 unwind label %.loopexit300

501:                                              ; preds = %498
  %502 = zext i32 %499 to i64
  %503 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %500) #11
  %504 = icmp ult i64 %503, %502
  br i1 %504, label %505, label %.preheader294

505:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #11
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %506 unwind label %512

506:                                              ; preds = %505
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #11
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 1 dereferenceable(1) %58) #11
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %56, i32 noundef 0, ptr noundef nonnull %57)
          to label %507 unwind label %514

507:                                              ; preds = %506
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #11
  %508 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %508, ptr noundef nonnull @.str.14)
          to label %509 unwind label %517

509:                                              ; preds = %507
  invoke void @__cxa_throw(ptr nonnull %508, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
          to label %602 unwind label %.loopexit.split-lp301

510:                                              ; preds = %497
  %511 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %54) #11
  br label %601

.loopexit300:                                     ; preds = %498
  %lpad.loopexit302 = landingpad { ptr, i32 }
          cleanup
  br label %559

.loopexit.split-lp301:                            ; preds = %509
  %lpad.loopexit.split-lp303 = landingpad { ptr, i32 }
          cleanup
  br label %559

512:                                              ; preds = %505
  %513 = landingpad { ptr, i32 }
          cleanup
  br label %516

514:                                              ; preds = %506
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #11
  br label %516

516:                                              ; preds = %514, %512
  %.pn211 = phi { ptr, i32 } [ %515, %514 ], [ %513, %512 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #11
  br label %559

517:                                              ; preds = %507
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %508) #11
  br label %559

.preheader294:                                    ; preds = %501, %528
  %.0142 = phi i32 [ %537, %528 ], [ 0, %501 ]
  %519 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %520 unwind label %.loopexit295

520:                                              ; preds = %.preheader294
  %521 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %519) #11
  %522 = zext i32 %.0142 to i64
  %523 = icmp ugt i64 %521, %522
  br i1 %523, label %524, label %.critedge.preheader

524:                                              ; preds = %520
  %525 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %526 unwind label %.loopexit295

526:                                              ; preds = %524
  %527 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %528 unwind label %.loopexit295

528:                                              ; preds = %526
  %529 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %527) #11
  %530 = xor i64 %522, -1
  %531 = add i64 %529, %530
  %532 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %525, i64 noundef %531) #11
  %533 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK3AST8PathNode4nameEv(ptr noundef nonnull align 8 dereferenceable(40) %532)
  %534 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %533)
  %535 = load i8, ptr %534, align 1, !tbaa !104
  %536 = icmp eq i8 %535, 35
  %537 = add i32 %.0142, 1
  br i1 %536, label %.preheader294, label %.critedge.preheader, !llvm.loop !116

.critedge.preheader:                              ; preds = %520, %528
  br label %.critedge

.loopexit295:                                     ; preds = %.preheader294, %524, %526
  %lpad.loopexit297 = landingpad { ptr, i32 }
          cleanup
  br label %559

.loopexit.split-lp296:                            ; preds = %547
  %lpad.loopexit.split-lp298 = landingpad { ptr, i32 }
          cleanup
  br label %559

.critedge:                                        ; preds = %.critedge.preheader, %557
  %.0141 = phi i32 [ %558, %557 ], [ 0, %.critedge.preheader ]
  %538 = zext i32 %.0141 to i64
  %539 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %540 unwind label %549

540:                                              ; preds = %.critedge
  %541 = call noundef i64 @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %539) #11
  %542 = load i32, ptr %485, align 8, !tbaa !110
  %543 = zext i32 %542 to i64
  %544 = add nuw nsw i64 %522, %543
  %545 = sub i64 %541, %544
  %546 = icmp ugt i64 %545, %538
  br i1 %546, label %551, label %547

547:                                              ; preds = %540
  %548 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
          to label %.thread280 unwind label %.loopexit.split-lp296

549:                                              ; preds = %555, %553, %551, %.critedge
  %550 = landingpad { ptr, i32 }
          cleanup
  br label %559

551:                                              ; preds = %540
  %552 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %553 unwind label %549

553:                                              ; preds = %551
  %554 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %555 unwind label %549

555:                                              ; preds = %553
  %556 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZNKSt6vectorIN3AST8PathNodeESaIS1_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %554, i64 noundef %538) #11
  invoke void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %552, ptr noundef nonnull align 8 dereferenceable(40) %556)
          to label %557 unwind label %549

557:                                              ; preds = %555
  %558 = add i32 %.0141, 1
  br label %.critedge, !llvm.loop !117

559:                                              ; preds = %.loopexit295, %.loopexit.split-lp296, %.loopexit300, %.loopexit.split-lp301, %549, %517, %516
  %.pn213 = phi { ptr, i32 } [ %518, %517 ], [ %.pn211, %516 ], [ %550, %549 ], [ %lpad.loopexit302, %.loopexit300 ], [ %lpad.loopexit.split-lp303, %.loopexit.split-lp301 ], [ %lpad.loopexit297, %.loopexit295 ], [ %lpad.loopexit.split-lp298, %.loopexit.split-lp296 ]
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %0) #11
  br label %601

560:                                              ; preds = %.critedge463
  %561 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class11as_AbsoluteEv(ptr noundef nonnull align 8 dereferenceable(48) %65)
  %562 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  br i1 %562, label %563, label %570

563:                                              ; preds = %560
  %564 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !7
  %565 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %564, ptr noundef nonnull @__FUNCTION__._Z26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS2_4PathES6_)
  %566 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %565, ptr noundef nonnull @.str.19)
  %567 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_4PathE(ptr noundef nonnull align 8 dereferenceable(8) %566, ptr noundef nonnull align 8 dereferenceable(240) %4)
  %568 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %567, ptr noundef nonnull @_ZSt3decRSt8ios_base)
  %569 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %568, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
  br label %570

570:                                              ; preds = %563, %560
  %571 = load i32, ptr %66, align 8, !tbaa !11
  %572 = icmp sgt i32 %571, 0
  br i1 %572, label %573, label %599

573:                                              ; preds = %570
  %574 = tail call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %561)
  %575 = load i8, ptr %574, align 1, !tbaa !104
  %576 = icmp eq i8 %575, 61
  br i1 %576, label %577, label %599

577:                                              ; preds = %573
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %59) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #11
  %578 = tail call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %561)
  %579 = getelementptr inbounds i8, ptr %578, i64 1
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull %579)
  %580 = invoke ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE4findERS4_(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %581 unwind label %588

581:                                              ; preds = %577
  store ptr %580, ptr %59, align 8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #11
  %582 = call ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) @_ZN3AST17g_implicit_cratesE) #11
  store ptr %582, ptr %61, align 8
  %583 = call noundef zeroext i1 @_ZSteqRKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EES6_(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #11
  br i1 %583, label %584, label %594

584:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #11
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #11
  store ptr %4, ptr %64, align 8, !tbaa !105
  call void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %62, i32 noundef 0, ptr noundef nonnull %63)
          to label %585 unwind label %590

585:                                              ; preds = %584
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #11
  %586 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %586, ptr noundef nonnull @.str.14)
          to label %587 unwind label %592

587:                                              ; preds = %585
  call void @__cxa_throw(ptr nonnull %586, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #12
  unreachable

588:                                              ; preds = %577
  %589 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #11
  br label %598

590:                                              ; preds = %584
  %591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #11
  br label %598

592:                                              ; preds = %585
  %593 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %586) #11
  br label %598

594:                                              ; preds = %581
  %595 = call noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %59) #11
  %596 = getelementptr inbounds i8, ptr %595, i64 8
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %561, ptr noundef nonnull align 8 dereferenceable(8) %596)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  br label %599

598:                                              ; preds = %592, %590, %588
  %.pn = phi { ptr, i32 } [ %593, %592 ], [ %591, %590 ], [ %589, %588 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %59) #11
  br label %601

599:                                              ; preds = %594, %573, %570
  call void @_ZN3AST4PathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(240) %0, ptr noundef nonnull align 8 dereferenceable(240) %4)
  br label %.thread280

.critedge285.backedge:                            ; preds = %.critedge463
  %600 = tail call ptr @__cxa_allocate_exception(i64 8) #11
  store ptr @.str.20, ptr %600, align 16, !tbaa !105
  tail call void @__cxa_throw(ptr nonnull %600, ptr nonnull @_ZTIPKc, ptr null) #12
  unreachable

601:                                              ; preds = %510, %559, %468, %482, %138, %.loopexit.split-lp, %.loopexit, %183, %94, %96, %85, %87, %76, %78, %598
  %.pn.pn = phi { ptr, i32 } [ %.pn, %598 ], [ %79, %78 ], [ %77, %76 ], [ %88, %87 ], [ %86, %85 ], [ %97, %96 ], [ %95, %94 ], [ %.pn249.pn.pn.pn.pn, %.loopexit.split-lp ], [ %.pn220, %138 ], [ %.pn225.pn.pn, %.loopexit ], [ %.pn223, %183 ], [ %.pn217, %482 ], [ %469, %468 ], [ %.pn213, %559 ], [ %511, %510 ]
  resume { ptr, i32 } %.pn.pn

.thread280:                                       ; preds = %178, %547, %466, %434, %147, %483, %436, %599
  ret void

602:                                              ; preds = %509, %372, %303
  unreachable
}

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #5

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

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

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

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

; 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) #4

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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 #0

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

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

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

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #6

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 #6

; 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 #7

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

; 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 #1 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)) #7

; 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 #1 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)) #7

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt3mapI8RcStringS0_St4lessIS0_ESaISt4pairIKS0_S0_EEE4findERS4_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS1_S3_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIK8RcStringS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #1 align 2

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

declare noundef i32 @_Z19coretype_fromstringPKc(ptr noundef) local_unnamed_addr #6

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8RcStringSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr, i64, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST16PathBinding_TypeC2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #1 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: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #8 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST4Path5nodesEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @__isoc99_sscanf(ptr nocapture noundef readonly, ptr nocapture noundef readonly, ...) local_unnamed_addr #9

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_3vEEOT_"(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 @_ZNK3AST6Module9anon_modsEv(ptr noundef nonnull align 8 dereferenceable(480)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_4vEEOT_"(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(16) ptr @_ZNKSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNKSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_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_cxxneIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEEbRKNS_17__normal_iteratorIT_T0_EESJ_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #8

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK8RcStringeqERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(480) ptr @_ZN3AST4Item9as_ModuleEv(ptr noundef nonnull align 8 dereferenceable(488)) 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_iteratorIPKSt10unique_ptrIN3AST5NamedINS2_4ItemEEESt14default_deleteIS5_EESt6vectorIS8_SaIS8_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z26Resolve_Use_GetBinding_ModRK4SpanRKN3AST5CrateERKNS2_12AbsolutePathERKNS2_6ModuleERK8RcStringSt4spanIPSA_Eb(ptr dead_on_unwind noalias writable sret(%"struct.AST::Path::Bindings") align 8, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, i1 noundef zeroext) local_unnamed_addr #1

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST4Path8Bindings11has_bindingEv(ptr noundef nonnull align 8 dereferenceable(184)) local_unnamed_addr #1 align 2

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

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

declare void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_6vEEOT_"(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(8) ptr @_ZNSt6vectorIPKN3AST6ModuleESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

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

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

declare void @_ZN3AST8PathNodeC1E8RcStringNS_10PathParamsE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #6

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

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

declare noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathpLERKS0_(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK3AST4PathplERKS0_(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8, ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZ26Resolve_Use_AbsolutisePathRK4SpanRKN3AST5CrateERKNS7_4PathESB_E3$_8vEEOT_"(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(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

attributes #0 = { 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 #1 = { 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 #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #5 = { noreturn 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 #6 = { "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 = { 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 #8 = { 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 #9 = { nofree 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 #10 = { noreturn nounwind }
attributes #11 = { nounwind }
attributes #12 = { 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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = !{!8, !8, i64 0}
!8 = !{!"int", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!12, !88, i64 784}
!12 = !{!"_ZTSN3AST5CrateE", !13, i64 0, !19, i64 24, !28, i64 72, !31, i64 552, !68, i64 576, !73, i64 624, !30, i64 672, !30, i64 680, !30, i64 688, !30, i64 696, !48, i64 704, !76, i64 712, !80, i64 736, !84, i64 760, !88, i64 784, !89, i64 788, !90, i64 792, !49, i64 800, !49, i64 832, !30, i64 864, !91, i64 872}
!13 = !{!"_ZTSN3AST13AttributeListE", !14, i64 0}
!14 = !{!"_ZTSSt6vectorIN3AST9AttributeESaIS1_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIN3AST9AttributeESaIS1_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN3AST9AttributeESaIS1_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!18 = !{!"any pointer", !9, i64 0}
!19 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST12AbsolutePathESt4lessIS5_ESaISt4pairIKS5_S7_EEE", !20, i64 0}
!20 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE", !21, i64 0}
!21 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3AST12AbsolutePathEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE13_Rb_tree_implISE_Lb1EEE", !22, i64 0, !24, i64 8}
!22 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !23, i64 0}
!23 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!24 = !{!"_ZTSSt15_Rb_tree_header", !25, i64 0, !27, i64 32}
!25 = !{!"_ZTSSt18_Rb_tree_node_base", !26, i64 0, !18, i64 8, !18, i64 16, !18, i64 24}
!26 = !{!"_ZTSSt14_Rb_tree_color", !9, i64 0}
!27 = !{!"long", !9, i64 0}
!28 = !{!"_ZTSN3AST6ModuleE", !29, i64 0, !35, i64 32, !39, i64 56, !43, i64 80, !47, i64 104, !48, i64 176, !9, i64 177, !51, i64 184, !51, i64 240, !51, i64 296, !51, i64 352, !56, i64 408, !60, i64 432, !64, i64 456}
!29 = !{!"_ZTSN3AST12AbsolutePathE", !30, i64 0, !31, i64 8}
!30 = !{!"_ZTS8RcString", !18, i64 0}
!31 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!35 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!39 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!43 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!47 = !{!"_ZTSN3AST6Module8FileInfoE", !48, i64 0, !48, i64 1, !49, i64 8, !49, i64 40}
!48 = !{!"bool", !9, i64 0}
!49 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !50, i64 0, !27, i64 8, !9, i64 16}
!50 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !18, i64 0}
!51 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !52, i64 0}
!52 = !{!"_ZTSSt10_HashtableI8RcStringSt4pairIKS0_N3AST6Module8IndexEntEESaIS6_ENSt8__detail10_Select1stESt8equal_toIS0_ESt4hashIS0_ENS8_18_Mod_range_hashingENS8_20_Default_ranged_hashENS8_20_Prime_rehash_policyENS8_17_Hashtable_traitsILb0ELb0ELb1EEEE", !18, i64 0, !27, i64 8, !53, i64 16, !27, i64 24, !54, i64 32, !18, i64 48}
!53 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !18, i64 0}
!54 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !55, i64 0, !27, i64 8}
!55 = !{!"float", !9, i64 0}
!56 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!60 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !61, i64 0}
!61 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!64 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !65, i64 0}
!65 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!68 = !{!"_ZTSSt3mapI8RcStringN3AST11ExternCrateESt4lessIS0_ESaISt4pairIKS0_S2_EEE", !69, i64 0}
!69 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE", !70, i64 0}
!70 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_N3AST11ExternCrateEESt10_Select1stIS5_ESt4lessIS0_ESaIS5_EE13_Rb_tree_implIS9_Lb1EEE", !71, i64 0, !24, i64 8}
!71 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessI8RcStringEE", !72, i64 0}
!72 = !{!"_ZTSSt4lessI8RcStringE"}
!73 = !{!"_ZTSSt3mapI8RcStringPK10MacroRulesSt4lessIS0_ESaISt4pairIKS0_S3_EEE", !74, i64 0}
!74 = !{!"_ZTSSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE", !75, i64 0}
!75 = !{!"_ZTSNSt8_Rb_treeI8RcStringSt4pairIKS0_PK10MacroRulesESt10_Select1stIS6_ESt4lessIS0_ESaIS6_EE13_Rb_tree_implISA_Lb1EEE", !71, i64 0, !24, i64 8}
!76 = !{!"_ZTSSt6vectorIN3AST8TestDescESaIS1_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN3AST8TestDescESaIS1_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN3AST8TestDescESaIS1_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!80 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!84 = !{!"_ZTSSt6vectorIN3AST12ProcMacroDefESaIS1_EE", !85, i64 0}
!85 = !{!"_ZTSSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE", !86, i64 0}
!86 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE12_Vector_implE", !87, i64 0}
!87 = !{!"_ZTSNSt12_Vector_baseIN3AST12ProcMacroDefESaIS1_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!88 = !{!"_ZTSN3AST7EditionE", !9, i64 0}
!89 = !{!"_ZTSN3AST5Crate4TypeE", !9, i64 0}
!90 = !{!"_ZTSN3AST5Crate7LoadStdE", !9, i64 0}
!91 = !{!"_ZTSN3AST4PathE", !92, i64 8, !94, i64 56}
!92 = !{!"_ZTSN3AST4Path5ClassE", !93, i64 0, !9, i64 8}
!93 = !{!"_ZTSN3AST4Path5Class3TagE", !9, i64 0}
!94 = !{!"_ZTSN3AST4Path8BindingsE", !95, i64 0, !98, i64 64, !101, i64 128}
!95 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_ValueEEE", !29, i64 0, !96, i64 32}
!96 = !{!"_ZTSN3AST17PathBinding_ValueE", !97, i64 0, !9, i64 8}
!97 = !{!"_ZTSN3AST17PathBinding_Value3TagE", !9, i64 0}
!98 = !{!"_ZTSN3AST11PathBindingINS_16PathBinding_TypeEEE", !29, i64 0, !99, i64 32}
!99 = !{!"_ZTSN3AST16PathBinding_TypeE", !100, i64 0, !9, i64 8}
!100 = !{!"_ZTSN3AST16PathBinding_Type3TagE", !9, i64 0}
!101 = !{!"_ZTSN3AST11PathBindingINS_17PathBinding_MacroEEE", !29, i64 0, !102, i64 32}
!102 = !{!"_ZTSN3AST17PathBinding_MacroE", !103, i64 0, !9, i64 8}
!103 = !{!"_ZTSN3AST17PathBinding_Macro3TagE", !9, i64 0}
!104 = !{!9, !9, i64 0}
!105 = !{!18, !18, i64 0}
!106 = distinct !{!106, !6}
!107 = distinct !{!107, !6}
!108 = distinct !{!108, !6}
!109 = distinct !{!109, !6}
!110 = !{!111, !8, i64 0}
!111 = !{!"_ZTSN3AST4Path5Class10Data_SuperE", !8, i64 0, !112, i64 8}
!112 = !{!"_ZTSSt6vectorIN3AST8PathNodeESaIS1_EE", !113, i64 0}
!113 = !{!"_ZTSSt12_Vector_baseIN3AST8PathNodeESaIS1_EE", !114, i64 0}
!114 = !{!"_ZTSNSt12_Vector_baseIN3AST8PathNodeESaIS1_EE12_Vector_implE", !115, i64 0}
!115 = !{!"_ZTSNSt12_Vector_baseIN3AST8PathNodeESaIS1_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!116 = distinct !{!116, !6}
!117 = distinct !{!117, !6}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass