; LLVM IR from thepowersgang/mrustc :: src/parse (root)

; 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.helpers::path" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.AST::Visibility" = type <{ %"class.std::shared_ptr", %"class.std::shared_ptr.0", i32, [4 x i8] }>
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%class.Token = type { ptr, i32, %"class.Token::Data", %class.Position, %"class.Ident::Hygiene" }
%"class.Token::Data" = type { i32, %"union.Token::Data::DataUnion" }
%"union.Token::Data::DataUnion" = type { %"class.std::__cxx11::basic_string" }
%class.Position = type { %struct.Span, %class.RcString, i32, i32 }
%struct.Span = type { ptr }
%class.RcString = type { ptr }
%"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.4" }
%"struct.std::_Head_base.4" = type { ptr }
%"class.AST::HigherRankedBounds" = type { %"class.std::vector.76" }
%"class.std::vector.76" = type { %"struct.std::_Vector_base.77" }
%"struct.std::_Vector_base.77" = type { %"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ProtoSpan = type { %struct.Span, %class.RcString, i32, i32 }
%class.TypeRef = type { %struct.Span, %class.TypeData }
%class.TypeData = type { i32, %"union.TypeData::DataUnion" }
%"union.TypeData::DataUnion" = type { %"struct.TypeData::Data_ErasedType", [32 x i8] }
%"struct.TypeData::Data_ErasedType" = type { %"class.std::vector.102", %"class.std::vector.102", %"class.std::vector.107" }
%"class.std::vector.102" = type { %"struct.std::_Vector_base.103" }
%"struct.std::_Vector_base.103" = type { %"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.107" = type { %"struct.std::_Vector_base.108" }
%"struct.std::_Vector_base.108" = type { %"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::GenericParams" = type { %"class.std::vector.112", %"class.std::vector.117" }
%"class.std::vector.112" = type { %"struct.std::_Vector_base.113" }
%"struct.std::_Vector_base.113" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.117" = type { %"struct.std::_Vector_base.118" }
%"struct.std::_Vector_base.118" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Function" = type { %struct.Span, %"class.AST::GenericParams", %"class.AST::Expr", %class.TypeRef, %"class.std::vector.150", i8, %"class.std::__cxx11::basic_string", %"struct.AST::Function::Flags", [5 x i8], %"struct.AST::Function::Markings" }
%"class.AST::Expr" = type { %"class.std::shared_ptr.99" }
%"class.std::shared_ptr.99" = type { %"class.std::__shared_ptr.100" }
%"class.std::__shared_ptr.100" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.150" = type { %"struct.std::_Vector_base.151" }
%"struct.std::_Vector_base.151" = type { %"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Function::Flags" = type { i8, i8, i8 }
%"struct.AST::Function::Markings" = type <{ i32, i8, [3 x i8], %"class.std::vector.155", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%"class.std::vector.155" = type { %"struct.std::_Vector_base.156" }
%"struct.std::_Vector_base.156" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::TypeAlias" = type { %"class.AST::GenericParams", %"class.AST::GenericParams", %class.TypeRef }
%"class.AST::Struct" = type { %"class.AST::GenericParams", %"class.AST::StructData", %"struct.AST::Struct::Markings" }
%"class.AST::StructData" = type { i32, %"union.AST::StructData::DataUnion" }
%"union.AST::StructData::DataUnion" = type { %"struct.AST::StructData::Data_Tuple" }
%"struct.AST::StructData::Data_Tuple" = type { %"class.std::vector.162" }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Struct::Markings" = type { i32, i64, i64, i8, %class.U128, i8, %class.U128 }
%class.U128 = type { i64, i64 }
%"class.AST::Trait" = type { %"class.AST::GenericParams", %"class.std::vector.212", %"class.std::vector.217", i8, i8, %"class.std::vector.182" }
%"class.std::vector.212" = type { %"struct.std::_Vector_base.213" }
%"struct.std::_Vector_base.213" = type { %"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl" }
%"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.217" = type { %"struct.std::_Vector_base.218" }
%"struct.std::_Vector_base.218" = type { %"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.182" = type { %"struct.std::_Vector_base.183" }
%"struct.std::_Vector_base.183" = type { %"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.Spanned.226 = type { %struct.Span, %struct.Type_TraitPath }
%struct.Type_TraitPath = type { %"class.AST::HigherRankedBounds", %"class.std::unique_ptr.61" }
%"class.std::unique_ptr.61" = type { %"struct.std::__uniq_ptr_data.62" }
%"struct.std::__uniq_ptr_data.62" = type { %"class.std::__uniq_ptr_impl.63" }
%"class.std::__uniq_ptr_impl.63" = type { %"class.std::tuple.64" }
%"class.std::tuple.64" = type { %"struct.std::_Tuple_impl.65" }
%"struct.std::_Tuple_impl.65" = type { %"struct.std::_Head_base.68" }
%"struct.std::_Head_base.68" = type { ptr }
%"class.AST::Enum" = type { %"class.AST::GenericParams", %"class.std::vector.207", %"struct.AST::Enum::Markings" }
%"class.std::vector.207" = type { %"struct.std::_Vector_base.208" }
%"struct.std::_Vector_base.208" = type { %"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Enum::Markings" = type <{ i32, i8, [3 x i8] }>
%"class.AST::Union" = type <{ %"class.AST::GenericParams", %"class.std::vector.167", %"struct.AST::Union::Markings", [4 x i8] }>
%"class.std::vector.167" = type { %"struct.std::_Vector_base.168" }
%"struct.std::_Vector_base.168" = type { %"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Union::Markings" = type { i32 }
%"class.AST::Attribute" = type <{ %struct.Span, %"struct.AST::AttributeName", %class.TokenTree, i8, [7 x i8] }>
%"struct.AST::AttributeName" = type { %"class.std::vector.8" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.TokenTree = type { ptr, i32, %"class.Ident::Hygiene", %class.Token, %"class.std::vector.172" }
%"class.std::vector.172" = type { %"struct.std::_Vector_base.173" }
%"struct.std::_Vector_base.173" = type { %"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.13", %"class.std::vector.18", %"class.std::vector.23", %"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.33", %"class.std::vector.38", %"class.std::vector.43" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector.8" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = 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.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = 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.AST::ExternBlock" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.182", %"class.std::vector.187" }
%"class.std::vector.187" = type { %"struct.std::_Vector_base.188" }
%"struct.std::_Vector_base.188" = type { %"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::UseItem" = type { %struct.Span, %"class.std::vector.177" }
%"class.std::vector.177" = type { %"struct.std::_Vector_base.178" }
%"struct.std::_Vector_base.178" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"class.AST::AttributeList" = type { %"class.std::vector.81" }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"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.245 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.AST::MacroInvocation" = type <{ %struct.Span, %"class.AST::Path", %class.RcString, %class.TokenTree, i8, [7 x i8] }>
%"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.53", %"class.std::unique_ptr.61", %"class.std::vector.48" }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = 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.69", %"struct.AST::PathBinding.70" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"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.69" = 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.70" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%"class.std::vector.122" = type { %"struct.std::_Vector_base.123" }
%"struct.std::_Vector_base.123" = type { %"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl" }
%"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl" = type { %"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::initializer_list" = type { ptr, i64 }
%"class.std::allocator.124" = type { i8 }
%"class.std::allocator" = type { i8 }
%"struct.AST::Item::Data_Crate" = type { %class.RcString }
%"class.AST::Static" = type { i32, %class.TypeRef, %"class.AST::Expr", %"struct.AST::Static::Markings" }
%"struct.AST::Static::Markings" = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%class.anon.246 = type { i8 }
%"class.AST::TraitAlias" = type { %"class.AST::GenericParams", %"class.std::vector.212" }
%"class.std::function.227" = type { %"class.std::_Function_base", ptr }
%class.anon.248 = type { ptr, ptr }
%class.MacroRulesPtr = type { ptr }
%"struct.Ident::ModPath" = type { %class.RcString, %"class.std::vector.8" }
%class.anon.283 = type { i8 }
%class.anon.285 = type { i8 }
%class.anon.287 = type { i8 }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.289 }
%union.anon.289 = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%class.anon.290 = type { i8 }
%class.anon.292 = type { ptr, ptr }
%class.Lexer = type { %class.TokenStream, %class.RcString, i32, i32, %"class.std::unique_ptr.293", ptr, i8, %struct.Codepoint, %"class.std::vector.301", i32, %"class.Ident::Hygiene" }
%class.TokenStream = type { ptr, i8, %class.Token, %"class.Ident::Hygiene", i32, %"class.std::vector", %struct.ParseState }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseState = type { i8, i8, i8, ptr, ptr, ptr }
%"class.std::unique_ptr.293" = type { %"struct.std::__uniq_ptr_data.294" }
%"struct.std::__uniq_ptr_data.294" = type { %"class.std::__uniq_ptr_impl.295" }
%"class.std::__uniq_ptr_impl.295" = type { %"class.std::tuple.296" }
%"class.std::tuple.296" = type { %"struct.std::_Tuple_impl.297" }
%"struct.std::_Tuple_impl.297" = type { %"struct.std::_Head_base.300" }
%"struct.std::_Head_base.300" = type { ptr }
%struct.Codepoint = type { i32 }
%"class.std::vector.301" = type { %"struct.std::_Vector_base.302" }
%"struct.std::_Vector_base.302" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.306 = type { i8 }
%class.anon.308 = type { ptr, ptr }
%struct.Ident = type { %"class.Ident::Hygiene", %class.RcString }
%class.MacroRules = type { ptr, i8, i8, %class.RcString, i32, %"class.Ident::Hygiene", %"class.std::vector.249" }
%"class.std::vector.249" = type { %"struct.std::_Vector_base.250" }
%"struct.std::_Vector_base.250" = type { %"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl" }
%"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl" = type { %"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MacroRulesArm, std::allocator<MacroRulesArm>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@g_debug_indent_level = external global i32, align 4
@.str.1 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTIN10ParseError10UnexpectedE = external constant ptr
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@_ZTIN12CompileError7GenericE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@gTargetVersion = external global i32, align 4
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE = external hidden unnamed_addr constant [17 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15Parse_PublicityR11TokenStreamb(ptr dead_on_unwind noalias writable sret(%"class.AST::Visibility") align 8, ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) #0

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

declare void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3

declare noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #3

declare i32 @__gxx_personality_v0(...)

declare void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88)) #0 align 2

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

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

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

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

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

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

declare void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind writable sret(%"class.AST::Visibility") align 8) #3

declare noundef zeroext i1 @_Z13debug_enabledv() #3

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #3

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

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

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) unnamed_addr #3

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #3

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

declare void @__cxa_throw(ptr, ptr, ptr)

declare void @__cxa_free_exception(ptr)

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

declare void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88)) #0 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 #1 align 2

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3

declare void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13Parse_HRB_OptR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::HigherRankedBounds") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

declare void @_ZNK11TokenStream10start_spanEv(ptr dead_on_unwind writable sret(%struct.ProtoSpan) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #3

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

declare void @_ZNK11TokenStream8end_spanE9ProtoSpan(ptr dead_on_unwind writable sret(%struct.Span) align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9ProtoSpanC2ERKS_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

declare void @_Z10Parse_TypeR11TokenStreamb(ptr dead_on_unwind writable sret(%class.TypeRef) align 8, ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) #3

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

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

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

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

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::GenericParams") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef) #0 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind noalias writable sret(%"class.AST::Function") align 8, ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext, ptr noundef, i24) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15Parse_TypeAliasR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::TypeAlias") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12Parse_StructR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::Struct") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24)) #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST10VisibilityC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(36)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST15MacroInvocationC2Ev(ptr noundef nonnull align 8 dereferenceable(393)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z25Parse_MacroInvocation_OptR11TokenStreamRN3AST15MacroInvocationE(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(393)) #0

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4ItemC2Ev(ptr noundef nonnull align 8 dereferenceable(488)) unnamed_addr #0 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)) #1 align 2

declare void @_Z10Parse_ExprR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST6StaticC2ENS0_5ClassE7TypeRefNS_4ExprE(ptr noundef nonnull align 8 dereferenceable(216), i32 noundef, ptr noundef, ptr noundef) unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 8 dereferenceable(488)) #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88)) #0 align 2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind noalias writable sret(%"class.AST::Trait") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11get_spannedI14Type_TraitPathE7SpannedIT_ER11TokenStreamSt8functionIFS2_vEE(ptr dead_on_unwind noalias writable sret(%struct.Spanned.226) align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) #0

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13Parse_EnumDefR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::Enum") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11Parse_UnionR11TokenStreamRN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::Union") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24)) #0

declare void @_ZN3AST13AttributeList9push_backENS_9AttributeE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14Parse_MetaItemR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::Attribute") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11TokenStream11get_editionEv(ptr noundef nonnull align 8 dereferenceable(176)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10Parse_ImplR11TokenStreamN3AST13AttributeListEb(ptr dead_on_unwind noalias writable sret(%"class.AST::Item") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef, i1 noundef zeroext) #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17Parse_ExternBlockR11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::ExternBlock") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #0

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9Parse_UseR11TokenStream(ptr dead_on_unwind noalias writable sret(%"struct.AST::UseItem") align 8, ptr noundef nonnull align 8 dereferenceable(176)) #0

; Function Attrs: mustprogress uwtable
define dso_local void @_Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE(ptr dead_on_unwind noalias writable sret(%"struct.AST::Named") align 8 %0, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(72) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef %4) #0 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 %class.TraceLog, align 8
  %12 = alloca %"class.std::function", align 8
  %13 = alloca %class.anon.245, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %class.Token, align 8
  %17 = alloca %class.Token, align 8
  %18 = alloca %class.Token, align 8
  %19 = alloca i1, align 1
  %20 = alloca %class.Token, align 8
  %21 = alloca %class.Token, align 8
  %22 = alloca i1, align 1
  %23 = alloca %"class.AST::Attribute", align 8
  %24 = alloca %class.Token, align 8
  %25 = alloca %class.Token, align 8
  %26 = alloca i1, align 1
  %27 = alloca %class.Token, align 8
  %28 = alloca i1, align 1
  %29 = alloca ptr, align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca ptr, align 8
  %33 = alloca i32, align 4
  %34 = alloca %struct.ProtoSpan, align 8
  %35 = alloca %"class.AST::MacroInvocation", align 8
  %36 = alloca %struct.Span, align 8
  %37 = alloca %struct.ProtoSpan, align 8
  %38 = alloca %"class.AST::AttributeList", align 8
  %39 = alloca %"class.AST::Visibility", align 8
  %40 = alloca %class.RcString, align 8
  %41 = alloca %"class.AST::Item", align 8
  %42 = alloca %"class.AST::MacroInvocation", align 8
  %43 = alloca %class.RcString, align 8
  %44 = alloca %"class.AST::Item", align 8
  %45 = alloca %"class.AST::Visibility", align 8
  %46 = alloca %class.Token, align 8
  %47 = alloca %"class.AST::Item", align 8
  %48 = alloca %"struct.AST::UseItem", align 8
  %49 = alloca %class.Token, align 8
  %50 = alloca %class.Token, align 8
  %51 = alloca i1, align 1
  %52 = alloca %class.Token, align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %class.Token, align 8
  %55 = alloca %class.Token, align 8
  %56 = alloca %class.Token, align 8
  %57 = alloca i1, align 1
  %58 = alloca %"class.AST::Item", align 8
  %59 = alloca %"class.AST::Function", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"struct.AST::Function::Flags", align 1
  %62 = alloca i24, align 4
  %63 = alloca %class.RcString, align 8
  %64 = alloca %"class.AST::Item", align 8
  %65 = alloca %"class.AST::ExternBlock", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::vector.122", align 8
  %68 = alloca %"class.std::initializer_list", align 8
  %69 = alloca [2 x i32], align 4
  %70 = alloca %"class.std::allocator.124", align 1
  %71 = alloca i1, align 1
  %72 = alloca %class.Token, align 8
  %73 = alloca %class.Token, align 8
  %74 = alloca i1, align 1
  %75 = alloca %"class.AST::Item", align 8
  %76 = alloca %"class.AST::Function", align 8
  %77 = alloca %"class.std::__cxx11::basic_string", align 8
  %78 = alloca %"class.std::allocator", align 1
  %79 = alloca %"struct.AST::Function::Flags", align 1
  %80 = alloca i24, align 4
  %81 = alloca %class.RcString, align 8
  %82 = alloca %"class.AST::Item", align 8
  %83 = alloca %"class.AST::ExternBlock", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca %class.Token, align 8
  %87 = alloca %"class.AST::Item", align 8
  %88 = alloca %"struct.AST::Item::Data_Crate", align 8
  %89 = alloca %class.Token, align 8
  %90 = alloca %class.Token, align 8
  %91 = alloca i1, align 1
  %92 = alloca %class.Token, align 8
  %93 = alloca %class.Token, align 8
  %94 = alloca i1, align 1
  %95 = alloca %"class.AST::Item", align 8
  %96 = alloca %"struct.AST::Item::Data_Crate", align 8
  %97 = alloca %class.Token, align 8
  %98 = alloca %class.Token, align 8
  %99 = alloca i1, align 1
  %100 = alloca %class.Token, align 8
  %101 = alloca %class.Token, align 8
  %102 = alloca i1, align 1
  %103 = alloca %class.Token, align 8
  %104 = alloca %"class.AST::Item", align 8
  %105 = alloca %"struct.AST::Item::Data_Crate", align 8
  %106 = alloca %class.RcString, align 8
  %107 = alloca %class.Token, align 8
  %108 = alloca %"class.AST::Item", align 8
  %109 = alloca %"struct.AST::Item::Data_Crate", align 8
  %110 = alloca %"class.std::vector.122", align 8
  %111 = alloca %"class.std::initializer_list", align 8
  %112 = alloca [2 x i32], align 4
  %113 = alloca %"class.std::allocator.124", align 1
  %114 = alloca i1, align 1
  %115 = alloca %class.Token, align 8
  %116 = alloca %class.Token, align 8
  %117 = alloca i1, align 1
  %118 = alloca %"class.std::vector.122", align 8
  %119 = alloca %"class.std::initializer_list", align 8
  %120 = alloca [4 x i32], align 4
  %121 = alloca %"class.std::allocator.124", align 1
  %122 = alloca i1, align 1
  %123 = alloca %class.Token, align 8
  %124 = alloca %class.Token, align 8
  %125 = alloca %class.RcString, align 8
  %126 = alloca %class.Token, align 8
  %127 = alloca %class.Token, align 8
  %128 = alloca i1, align 1
  %129 = alloca %class.TypeRef, align 8
  %130 = alloca %class.Token, align 8
  %131 = alloca %class.Token, align 8
  %132 = alloca i1, align 1
  %133 = alloca %"class.AST::Expr", align 8
  %134 = alloca %class.Token, align 8
  %135 = alloca %class.Token, align 8
  %136 = alloca i1, align 1
  %137 = alloca %"class.AST::Item", align 8
  %138 = alloca %"class.AST::Static", align 8
  %139 = alloca %class.TypeRef, align 8
  %140 = alloca %"class.AST::Expr", align 8
  %141 = alloca %"class.std::__cxx11::basic_string", align 8
  %142 = alloca %class.Token, align 8
  %143 = alloca %class.Token, align 8
  %144 = alloca i1, align 1
  %145 = alloca %class.Token, align 8
  %146 = alloca %class.Token, align 8
  %147 = alloca i1, align 1
  %148 = alloca %"class.AST::Item", align 8
  %149 = alloca %"class.AST::Function", align 8
  %150 = alloca %"class.std::__cxx11::basic_string", align 8
  %151 = alloca %"struct.AST::Function::Flags", align 1
  %152 = alloca %"struct.AST::Function::Flags", align 1
  %153 = alloca %"struct.AST::Function::Flags", align 1
  %154 = alloca i24, align 4
  %155 = alloca %"class.std::__cxx11::basic_string", align 8
  %156 = alloca %class.Token, align 8
  %157 = alloca i1, align 1
  %158 = alloca i1, align 1
  %159 = alloca %"class.std::allocator", align 1
  %160 = alloca i1, align 1
  %161 = alloca i1, align 1
  %162 = alloca %class.Token, align 8
  %163 = alloca %class.Token, align 8
  %164 = alloca i1, align 1
  %165 = alloca %class.Token, align 8
  %166 = alloca %class.Token, align 8
  %167 = alloca i1, align 1
  %168 = alloca %"class.AST::Item", align 8
  %169 = alloca %"class.AST::Function", align 8
  %170 = alloca %"class.std::__cxx11::basic_string", align 8
  %171 = alloca %"struct.AST::Function::Flags", align 1
  %172 = alloca %"struct.AST::Function::Flags", align 1
  %173 = alloca i24, align 4
  %174 = alloca %class.Token, align 8
  %175 = alloca %class.Token, align 8
  %176 = alloca i1, align 1
  %177 = alloca %"class.AST::Item", align 8
  %178 = alloca %"class.AST::Function", align 8
  %179 = alloca %"class.std::__cxx11::basic_string", align 8
  %180 = alloca %"class.std::allocator", align 1
  %181 = alloca %"struct.AST::Function::Flags", align 1
  %182 = alloca %"struct.AST::Function::Flags", align 1
  %183 = alloca i24, align 4
  %184 = alloca %"class.std::vector.122", align 8
  %185 = alloca %"class.std::initializer_list", align 8
  %186 = alloca [4 x i32], align 4
  %187 = alloca %"class.std::allocator.124", align 1
  %188 = alloca i1, align 1
  %189 = alloca i8, align 1
  %190 = alloca %class.Token, align 8
  %191 = alloca %class.Token, align 8
  %192 = alloca %class.Token, align 8
  %193 = alloca %class.RcString, align 8
  %194 = alloca %class.Token, align 8
  %195 = alloca %class.Token, align 8
  %196 = alloca i1, align 1
  %197 = alloca %class.TypeRef, align 8
  %198 = alloca %class.Token, align 8
  %199 = alloca %class.Token, align 8
  %200 = alloca i1, align 1
  %201 = alloca %"class.AST::Expr", align 8
  %202 = alloca %class.Token, align 8
  %203 = alloca %class.Token, align 8
  %204 = alloca i1, align 1
  %205 = alloca %"class.AST::Item", align 8
  %206 = alloca %"class.AST::Static", align 8
  %207 = alloca %class.TypeRef, align 8
  %208 = alloca %"class.AST::Expr", align 8
  %209 = alloca %class.Token, align 8
  %210 = alloca %"class.std::__cxx11::basic_string", align 8
  %211 = alloca %"class.std::allocator", align 1
  %212 = alloca %class.Token, align 8
  %213 = alloca %class.Token, align 8
  %214 = alloca %class.Token, align 8
  %215 = alloca %class.Token, align 8
  %216 = alloca i1, align 1
  %217 = alloca %class.Token, align 8
  %218 = alloca %class.Token, align 8
  %219 = alloca i1, align 1
  %220 = alloca %"class.AST::Item", align 8
  %221 = alloca %"class.AST::Function", align 8
  %222 = alloca %"class.std::__cxx11::basic_string", align 8
  %223 = alloca %"struct.AST::Function::Flags", align 1
  %224 = alloca %"struct.AST::Function::Flags", align 1
  %225 = alloca i24, align 4
  %226 = alloca %class.Token, align 8
  %227 = alloca %class.Token, align 8
  %228 = alloca i1, align 1
  %229 = alloca %"class.AST::Item", align 8
  %230 = alloca %"class.AST::Function", align 8
  %231 = alloca %"class.std::__cxx11::basic_string", align 8
  %232 = alloca %"class.std::allocator", align 1
  %233 = alloca %"struct.AST::Function::Flags", align 1
  %234 = alloca %"struct.AST::Function::Flags", align 1
  %235 = alloca i24, align 4
  %236 = alloca %class.Token, align 8
  %237 = alloca %class.Token, align 8
  %238 = alloca i1, align 1
  %239 = alloca %"class.AST::Trait", align 8
  %240 = alloca %"class.AST::GenericParams", align 8
  %241 = alloca %"class.AST::Item", align 8
  %242 = alloca %"class.AST::Trait", align 8
  %243 = alloca %"class.AST::Item", align 8
  %244 = alloca %"class.AST::AttributeList", align 8
  %245 = alloca %struct.Span, align 8
  %246 = alloca %"class.std::function", align 8
  %247 = alloca %class.anon.246, align 1
  %248 = alloca %struct.Span, align 8
  %249 = alloca %"class.AST::AttributeList", align 8
  %250 = alloca %"class.AST::Visibility", align 8
  %251 = alloca %class.RcString, align 8
  %252 = alloca %"class.AST::Item", align 8
  %253 = alloca %class.Token, align 8
  %254 = alloca %class.Token, align 8
  %255 = alloca i1, align 1
  %256 = alloca %class.Token, align 8
  %257 = alloca %class.Token, align 8
  %258 = alloca i1, align 1
  %259 = alloca %"class.AST::Trait", align 8
  %260 = alloca %"class.AST::GenericParams", align 8
  %261 = alloca %"class.AST::Item", align 8
  %262 = alloca %"class.AST::Trait", align 8
  %263 = alloca %"class.std::vector.122", align 8
  %264 = alloca %"class.std::initializer_list", align 8
  %265 = alloca [3 x i32], align 4
  %266 = alloca %"class.std::allocator.124", align 1
  %267 = alloca i1, align 1
  %268 = alloca %class.Token, align 8
  %269 = alloca %class.Token, align 8
  %270 = alloca i1, align 1
  %271 = alloca %class.Token, align 8
  %272 = alloca %class.Token, align 8
  %273 = alloca i1, align 1
  %274 = alloca %"class.AST::Item", align 8
  %275 = alloca %"class.AST::Function", align 8
  %276 = alloca %"class.std::__cxx11::basic_string", align 8
  %277 = alloca %"class.std::allocator", align 1
  %278 = alloca %"struct.AST::Function::Flags", align 1
  %279 = alloca %"struct.AST::Function::Flags", align 1
  %280 = alloca i24, align 4
  %281 = alloca %class.Token, align 8
  %282 = alloca %class.Token, align 8
  %283 = alloca i1, align 1
  %284 = alloca %"class.AST::Item", align 8
  %285 = alloca %"class.AST::Function", align 8
  %286 = alloca %"class.std::__cxx11::basic_string", align 8
  %287 = alloca %"class.std::allocator", align 1
  %288 = alloca %"struct.AST::Function::Flags", align 1
  %289 = alloca i24, align 4
  %290 = alloca %class.Token, align 8
  %291 = alloca %class.Token, align 8
  %292 = alloca i1, align 1
  %293 = alloca %"class.AST::Item", align 8
  %294 = alloca %"class.AST::TypeAlias", align 8
  %295 = alloca %class.Token, align 8
  %296 = alloca %class.Token, align 8
  %297 = alloca i1, align 1
  %298 = alloca %"class.AST::Item", align 8
  %299 = alloca %"class.AST::Struct", align 8
  %300 = alloca %class.Token, align 8
  %301 = alloca %class.Token, align 8
  %302 = alloca i1, align 1
  %303 = alloca %"class.AST::Item", align 8
  %304 = alloca %"class.AST::Enum", align 8
  %305 = alloca %class.Token, align 8
  %306 = alloca %class.Token, align 8
  %307 = alloca i1, align 1
  %308 = alloca %"class.AST::Item", align 8
  %309 = alloca %"class.AST::Union", align 8
  %310 = alloca %class.Token, align 8
  %311 = alloca %class.Token, align 8
  %312 = alloca i1, align 1
  %313 = alloca %class.Token, align 8
  %314 = alloca %class.Token, align 8
  %315 = alloca i1, align 1
  %316 = alloca %"class.AST::Trait", align 8
  %317 = alloca %"class.AST::GenericParams", align 8
  %318 = alloca %"class.AST::Item", align 8
  %319 = alloca %"class.AST::Trait", align 8
  %320 = alloca %struct.Span, align 8
  %321 = alloca %"class.AST::AttributeList", align 8
  %322 = alloca %"class.AST::Visibility", align 8
  %323 = alloca %class.RcString, align 8
  %324 = alloca %"class.AST::Item", align 8
  %325 = alloca %"class.AST::AttributeList", align 8
  %326 = alloca %class.Token, align 8
  %327 = alloca %class.Token, align 8
  %328 = alloca i1, align 1
  %329 = alloca %"class.AST::GenericParams", align 8
  %330 = alloca %"class.AST::TraitAlias", align 8
  %331 = alloca %class.Token, align 8
  %332 = alloca %struct.ProtoSpan, align 8
  %333 = alloca %"class.AST::HigherRankedBounds", align 8
  %334 = alloca %struct.Spanned.226, align 8
  %335 = alloca %"class.std::function.227", align 8
  %336 = alloca %class.anon.248, align 8
  %337 = alloca %class.Token, align 8
  %338 = alloca %class.Token, align 8
  %339 = alloca i1, align 1
  %340 = alloca %"class.AST::Item", align 8
  %341 = alloca %"class.AST::TraitAlias", align 8
  %342 = alloca %"class.AST::Item", align 8
  %343 = alloca %"class.AST::Trait", align 8
  %344 = alloca %"class.AST::GenericParams", align 8
  %345 = alloca %class.Token, align 8
  %346 = alloca %class.Token, align 8
  %347 = alloca i1, align 1
  %348 = alloca %class.RcString, align 8
  %349 = alloca %class.MacroRulesPtr, align 8
  %350 = alloca %class.Token, align 8
  %351 = alloca %class.MacroRulesPtr, align 8
  %352 = alloca %class.MacroRulesPtr, align 8
  %353 = alloca %class.Token, align 8
  %354 = alloca %"struct.Ident::ModPath", align 8
  %355 = alloca %class.RcString, align 8
  %356 = alloca %"struct.Ident::ModPath", align 8
  %357 = alloca %"class.AST::Item", align 8
  %358 = alloca %class.MacroRulesPtr, align 8
  %359 = alloca %class.Token, align 8
  %360 = alloca %class.Token, align 8
  %361 = alloca i1, align 1
  %362 = alloca %class.RcString, align 8
  %363 = alloca %"class.AST::Module", align 8
  %364 = alloca %"struct.AST::AbsolutePath", align 8
  %365 = alloca %class.RcString, align 8
  %366 = alloca %"class.std::__cxx11::basic_string", align 8
  %367 = alloca ptr, align 8
  %368 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %369 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %370 = alloca ptr, align 8
  %371 = alloca %"class.std::__cxx11::basic_string", align 8
  %372 = alloca ptr, align 8
  %373 = alloca %"class.std::vector.81", align 8
  %374 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %375 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %376 = alloca ptr, align 8
  %377 = alloca %"class.std::__cxx11::basic_string", align 8
  %378 = alloca %"class.helpers::path", align 8
  %379 = alloca i8, align 1
  %380 = alloca %struct.Span, align 8
  %381 = alloca %"class.std::function", align 8
  %382 = alloca %class.anon.283, align 1
  %383 = alloca %"class.helpers::path", align 8
  %384 = alloca %"class.helpers::path", align 8
  %385 = alloca %"class.helpers::path", align 8
  %386 = alloca %"class.std::__cxx11::basic_string", align 8
  %387 = alloca %"class.helpers::path", align 8
  %388 = alloca %"class.helpers::path", align 8
  %389 = alloca %"class.std::__cxx11::basic_string", align 8
  %390 = alloca %"class.helpers::path", align 8
  %391 = alloca %"class.helpers::path", align 8
  %392 = alloca %"class.helpers::path", align 8
  %393 = alloca %"class.std::__cxx11::basic_string", align 8
  %394 = alloca %"class.std::__cxx11::basic_string", align 8
  %395 = alloca %class.Token, align 8
  %396 = alloca %"class.std::__cxx11::basic_string", align 8
  %397 = alloca %class.Token, align 8
  %398 = alloca %class.Token, align 8
  %399 = alloca i1, align 1
  %400 = alloca %struct.Span, align 8
  %401 = alloca %"class.std::function", align 8
  %402 = alloca %class.anon.285, align 1
  %403 = alloca %"class.AST::Item", align 8
  %404 = alloca %struct.Span, align 8
  %405 = alloca %"class.std::function", align 8
  %406 = alloca %class.anon.287, align 1
  %407 = alloca %"class.std::__cxx11::basic_string", align 8
  %408 = alloca %"class.helpers::path", align 8
  %409 = alloca %"class.helpers::path", align 8
  %410 = alloca %"class.helpers::path", align 8
  %411 = alloca %"class.helpers::path", align 8
  %412 = alloca %"class.std::__cxx11::basic_string", align 8
  %413 = alloca %"class.std::__cxx11::basic_string", align 8
  %414 = alloca %"class.helpers::path", align 8
  %415 = alloca %"class.helpers::path", align 8
  %416 = alloca %"class.helpers::path", align 8
  %417 = alloca %"class.helpers::path", align 8
  %418 = alloca %"class.std::__cxx11::basic_string", align 8
  %419 = alloca %"class.std::basic_ifstream", align 8
  %420 = alloca %"class.std::basic_ifstream", align 8
  %421 = alloca %struct.Span, align 8
  %422 = alloca %"class.std::function", align 8
  %423 = alloca %class.anon.290, align 1
  %424 = alloca %struct.Span, align 8
  %425 = alloca %"class.std::function", align 8
  %426 = alloca %class.anon.292, align 8
  %427 = alloca %class.Lexer, align 8
  %428 = alloca %struct.ParseState, align 8
  %429 = alloca %class.Token, align 8
  %430 = alloca %class.Token, align 8
  %431 = alloca i1, align 1
  %432 = alloca %"class.std::__cxx11::basic_string", align 8
  %433 = alloca %"class.std::__cxx11::basic_string", align 8
  %434 = alloca %"class.helpers::path", align 8
  %435 = alloca %"class.std::basic_ifstream", align 8
  %436 = alloca %"class.std::__cxx11::basic_string", align 8
  %437 = alloca %"class.std::basic_ifstream", align 8
  %438 = alloca %struct.Span, align 8
  %439 = alloca %"class.std::function", align 8
  %440 = alloca %class.anon.306, align 1
  %441 = alloca %"class.std::__cxx11::basic_string", align 8
  %442 = alloca %struct.Span, align 8
  %443 = alloca %"class.std::function", align 8
  %444 = alloca %class.anon.308, align 8
  %445 = alloca %class.Lexer, align 8
  %446 = alloca %struct.ParseState, align 8
  %447 = alloca %class.Token, align 8
  %448 = alloca %class.Token, align 8
  %449 = alloca i1, align 1
  %450 = alloca %"class.std::__cxx11::basic_string", align 8
  %451 = alloca %"class.std::allocator", align 1
  %452 = alloca i1, align 1
  %453 = alloca %"class.AST::Item", align 8
  %454 = alloca %"class.AST::Module", align 8
  %455 = alloca %struct.Span, align 8
  %456 = alloca %struct.ProtoSpan, align 8
  %457 = alloca %"class.AST::AttributeList", align 8
  %458 = alloca %"class.AST::Visibility", align 8
  %459 = alloca %class.RcString, align 8
  %460 = alloca %"class.AST::Item", 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 40, ptr %11) #8
  %461 = call noundef zeroext i1 @_Z13debug_enabledv()
  %462 = zext i1 %461 to i64
  %463 = select i1 %461, ptr @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr %13) #8
  %464 = getelementptr inbounds %class.anon.245, ptr %13, i32 0, i32 0
  %465 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %465, ptr %464, align 8, !tbaa !5
  %466 = getelementptr inbounds %class.anon.245, ptr %13, i32 0, i32 1
  store ptr %4, ptr %466, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %11, ptr noundef %463, ptr noundef %12)
          to label %467 unwind label %510

467:                                              ; preds = %5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr %16) #8
  invoke void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %468 unwind label %514

468:                                              ; preds = %467
  br label %469

469:                                              ; preds = %677, %468
  %470 = load ptr, ptr %7, align 8, !tbaa !5
  %471 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %470, i32 noundef 0)
          to label %472 unwind label %518

472:                                              ; preds = %469
  %473 = icmp eq i32 %471, 21
  br i1 %473, label %474, label %479

474:                                              ; preds = %472
  %475 = load ptr, ptr %7, align 8, !tbaa !5
  %476 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %475, i32 noundef 1)
          to label %477 unwind label %518

477:                                              ; preds = %474
  %478 = icmp eq i32 %476, 29
  br label %479

479:                                              ; preds = %477, %472
  %480 = phi i1 [ false, %472 ], [ %478, %477 ]
  br i1 %480, label %481, label %678

481:                                              ; preds = %479
  br label %482

482:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 88, ptr %17) #8
  %483 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %17, ptr noundef nonnull align 8 dereferenceable(176) %483)
          to label %484 unwind label %522

484:                                              ; preds = %482
  %485 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %17)
          to label %486 unwind label %526

486:                                              ; preds = %484
  %487 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %485)
          to label %488 unwind label %526

488:                                              ; preds = %486
  %489 = icmp ne i32 %487, 21
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %17) #8
  br i1 %489, label %490, label %550

490:                                              ; preds = %488
  br label %491

491:                                              ; preds = %490
  %492 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %493 unwind label %518

493:                                              ; preds = %491
  br i1 %492, label %494, label %531

494:                                              ; preds = %493
  %495 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %496 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %495, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %497 unwind label %518

497:                                              ; preds = %494
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %496, ptr noundef @.str.1)
          to label %499 unwind label %518

499:                                              ; preds = %497
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef @.str.2)
          to label %501 unwind label %518

501:                                              ; preds = %499
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %500, ptr noundef @.str.3)
          to label %503 unwind label %518

503:                                              ; preds = %501
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %502, i32 noundef 1814)
          to label %505 unwind label %518

505:                                              ; preds = %503
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef @_ZSt3decRSt8ios_base)
          to label %507 unwind label %518

507:                                              ; preds = %505
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %506, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %509 unwind label %518

509:                                              ; preds = %507
  br label %531

510:                                              ; preds = %5
  %511 = landingpad { ptr, i32 }
          cleanup
  %512 = extractvalue { ptr, i32 } %511, 0
  store ptr %512, ptr %14, align 8
  %513 = extractvalue { ptr, i32 } %511, 1
  store i32 %513, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %13) #8
  br label %5955

514:                                              ; preds = %467
  %515 = landingpad { ptr, i32 }
          cleanup
  %516 = extractvalue { ptr, i32 } %515, 0
  store ptr %516, ptr %14, align 8
  %517 = extractvalue { ptr, i32 } %515, 1
  store i32 %517, ptr %15, align 4
  br label %5954

518:                                              ; preds = %689, %678, %640, %638, %636, %634, %632, %630, %627, %624, %611, %578, %576, %574, %572, %570, %568, %565, %562, %507, %505, %503, %501, %499, %497, %494, %491, %474, %469
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %14, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %15, align 4
  br label %5953

522:                                              ; preds = %482
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %14, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %15, align 4
  br label %530

526:                                              ; preds = %486, %484
  %527 = landingpad { ptr, i32 }
          cleanup
  %528 = extractvalue { ptr, i32 } %527, 0
  store ptr %528, ptr %14, align 8
  %529 = extractvalue { ptr, i32 } %527, 1
  store i32 %529, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #8
  br label %530

530:                                              ; preds = %526, %522
  call void @llvm.lifetime.end.p0(i64 88, ptr %17) #8
  br label %5953

531:                                              ; preds = %509, %493
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  store i1 true, ptr %19, align 1
  %534 = call ptr @__cxa_allocate_exception(i64 96) #8
  %535 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %18, i32 noundef 21)
          to label %536 unwind label %538

536:                                              ; preds = %533
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %534, ptr noundef nonnull align 8 dereferenceable(176) %535, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %18)
          to label %537 unwind label %542

537:                                              ; preds = %536
  store i1 false, ptr %19, align 1
  invoke void @__cxa_throw(ptr %534, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %542

538:                                              ; preds = %533
  %539 = landingpad { ptr, i32 }
          cleanup
  %540 = extractvalue { ptr, i32 } %539, 0
  store ptr %540, ptr %14, align 8
  %541 = extractvalue { ptr, i32 } %539, 1
  store i32 %541, ptr %15, align 4
  br label %546

542:                                              ; preds = %537, %536
  %543 = landingpad { ptr, i32 }
          cleanup
  %544 = extractvalue { ptr, i32 } %543, 0
  store ptr %544, ptr %14, align 8
  %545 = extractvalue { ptr, i32 } %543, 1
  store i32 %545, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %546

546:                                              ; preds = %542, %538
  %547 = load i1, ptr %19, align 1
  br i1 %547, label %548, label %549

548:                                              ; preds = %546
  call void @__cxa_free_exception(ptr %534) #8
  br label %549

549:                                              ; preds = %548, %546
  br label %5953

550:                                              ; preds = %488
  br label %551

551:                                              ; preds = %550
  br label %552

552:                                              ; preds = %551
  br label %553

553:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 88, ptr %20) #8
  %554 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %20, ptr noundef nonnull align 8 dereferenceable(176) %554)
          to label %555 unwind label %581

555:                                              ; preds = %553
  %556 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %20)
          to label %557 unwind label %585

557:                                              ; preds = %555
  %558 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %556)
          to label %559 unwind label %585

559:                                              ; preds = %557
  %560 = icmp ne i32 %558, 29
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %20) #8
  br i1 %560, label %561, label %609

561:                                              ; preds = %559
  br label %562

562:                                              ; preds = %561
  %563 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %564 unwind label %518

564:                                              ; preds = %562
  br i1 %563, label %565, label %590

565:                                              ; preds = %564
  %566 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %566, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %568 unwind label %518

568:                                              ; preds = %565
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %567, ptr noundef @.str.1)
          to label %570 unwind label %518

570:                                              ; preds = %568
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %569, ptr noundef @.str.2)
          to label %572 unwind label %518

572:                                              ; preds = %570
  %573 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %571, ptr noundef @.str.3)
          to label %574 unwind label %518

574:                                              ; preds = %572
  %575 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %573, i32 noundef 1815)
          to label %576 unwind label %518

576:                                              ; preds = %574
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %575, ptr noundef @_ZSt3decRSt8ios_base)
          to label %578 unwind label %518

578:                                              ; preds = %576
  %579 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %577, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %580 unwind label %518

580:                                              ; preds = %578
  br label %590

581:                                              ; preds = %553
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %14, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %15, align 4
  br label %589

585:                                              ; preds = %557, %555
  %586 = landingpad { ptr, i32 }
          cleanup
  %587 = extractvalue { ptr, i32 } %586, 0
  store ptr %587, ptr %14, align 8
  %588 = extractvalue { ptr, i32 } %586, 1
  store i32 %588, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #8
  br label %589

589:                                              ; preds = %585, %581
  call void @llvm.lifetime.end.p0(i64 88, ptr %20) #8
  br label %5953

590:                                              ; preds = %580, %564
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  store i1 true, ptr %22, align 1
  %593 = call ptr @__cxa_allocate_exception(i64 96) #8
  %594 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %21, i32 noundef 29)
          to label %595 unwind label %597

595:                                              ; preds = %592
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %593, ptr noundef nonnull align 8 dereferenceable(176) %594, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %21)
          to label %596 unwind label %601

596:                                              ; preds = %595
  store i1 false, ptr %22, align 1
  invoke void @__cxa_throw(ptr %593, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %601

597:                                              ; preds = %592
  %598 = landingpad { ptr, i32 }
          cleanup
  %599 = extractvalue { ptr, i32 } %598, 0
  store ptr %599, ptr %14, align 8
  %600 = extractvalue { ptr, i32 } %598, 1
  store i32 %600, ptr %15, align 4
  br label %605

601:                                              ; preds = %596, %595
  %602 = landingpad { ptr, i32 }
          cleanup
  %603 = extractvalue { ptr, i32 } %602, 0
  store ptr %603, ptr %14, align 8
  %604 = extractvalue { ptr, i32 } %602, 1
  store i32 %604, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  br label %605

605:                                              ; preds = %601, %597
  %606 = load i1, ptr %22, align 1
  br i1 %606, label %607, label %608

607:                                              ; preds = %605
  call void @__cxa_free_exception(ptr %593) #8
  br label %608

608:                                              ; preds = %607, %605
  br label %5953

609:                                              ; preds = %559
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610
  %612 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z14Parse_MetaItemR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::Attribute") align 8 %23, ptr noundef nonnull align 8 dereferenceable(176) %612)
          to label %613 unwind label %518

613:                                              ; preds = %611
  invoke void @_ZN3AST13AttributeList9push_backENS_9AttributeE(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef %23)
          to label %614 unwind label %643

614:                                              ; preds = %613
  call void @_ZN3AST9AttributeD2Ev(ptr noundef nonnull align 8 dereferenceable(169) %23) #8
  br label %615

615:                                              ; preds = %614
  call void @llvm.lifetime.start.p0(i64 88, ptr %24) #8
  %616 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %24, ptr noundef nonnull align 8 dereferenceable(176) %616)
          to label %617 unwind label %647

617:                                              ; preds = %615
  %618 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %24)
          to label %619 unwind label %651

619:                                              ; preds = %617
  %620 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %618)
          to label %621 unwind label %651

621:                                              ; preds = %619
  %622 = icmp ne i32 %620, 30
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %24) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %24) #8
  br i1 %622, label %623, label %675

623:                                              ; preds = %621
  br label %624

624:                                              ; preds = %623
  %625 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %626 unwind label %518

626:                                              ; preds = %624
  br i1 %625, label %627, label %656

627:                                              ; preds = %626
  %628 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %629 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %628, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %630 unwind label %518

630:                                              ; preds = %627
  %631 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %629, ptr noundef @.str.1)
          to label %632 unwind label %518

632:                                              ; preds = %630
  %633 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %631, ptr noundef @.str.2)
          to label %634 unwind label %518

634:                                              ; preds = %632
  %635 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %633, ptr noundef @.str.3)
          to label %636 unwind label %518

636:                                              ; preds = %634
  %637 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %635, i32 noundef 1817)
          to label %638 unwind label %518

638:                                              ; preds = %636
  %639 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %637, ptr noundef @_ZSt3decRSt8ios_base)
          to label %640 unwind label %518

640:                                              ; preds = %638
  %641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %639, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %642 unwind label %518

642:                                              ; preds = %640
  br label %656

643:                                              ; preds = %613
  %644 = landingpad { ptr, i32 }
          cleanup
  %645 = extractvalue { ptr, i32 } %644, 0
  store ptr %645, ptr %14, align 8
  %646 = extractvalue { ptr, i32 } %644, 1
  store i32 %646, ptr %15, align 4
  call void @_ZN3AST9AttributeD2Ev(ptr noundef nonnull align 8 dereferenceable(169) %23) #8
  br label %5953

647:                                              ; preds = %615
  %648 = landingpad { ptr, i32 }
          cleanup
  %649 = extractvalue { ptr, i32 } %648, 0
  store ptr %649, ptr %14, align 8
  %650 = extractvalue { ptr, i32 } %648, 1
  store i32 %650, ptr %15, align 4
  br label %655

651:                                              ; preds = %619, %617
  %652 = landingpad { ptr, i32 }
          cleanup
  %653 = extractvalue { ptr, i32 } %652, 0
  store ptr %653, ptr %14, align 8
  %654 = extractvalue { ptr, i32 } %652, 1
  store i32 %654, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %24) #8
  br label %655

655:                                              ; preds = %651, %647
  call void @llvm.lifetime.end.p0(i64 88, ptr %24) #8
  br label %5953

656:                                              ; preds = %642, %626
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  store i1 true, ptr %26, align 1
  %659 = call ptr @__cxa_allocate_exception(i64 96) #8
  %660 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %25, i32 noundef 30)
          to label %661 unwind label %663

661:                                              ; preds = %658
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %659, ptr noundef nonnull align 8 dereferenceable(176) %660, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %25)
          to label %662 unwind label %667

662:                                              ; preds = %661
  store i1 false, ptr %26, align 1
  invoke void @__cxa_throw(ptr %659, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %667

663:                                              ; preds = %658
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %14, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %15, align 4
  br label %671

667:                                              ; preds = %662, %661
  %668 = landingpad { ptr, i32 }
          cleanup
  %669 = extractvalue { ptr, i32 } %668, 0
  store ptr %669, ptr %14, align 8
  %670 = extractvalue { ptr, i32 } %668, 1
  store i32 %670, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #8
  br label %671

671:                                              ; preds = %667, %663
  %672 = load i1, ptr %26, align 1
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void @__cxa_free_exception(ptr %659) #8
  br label %674

674:                                              ; preds = %673, %671
  br label %5953

675:                                              ; preds = %621
  br label %676

676:                                              ; preds = %675
  br label %677

677:                                              ; preds = %676
  br label %469, !llvm.loop !11

678:                                              ; preds = %479
  %679 = load ptr, ptr %7, align 8, !tbaa !5
  %680 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %679, i32 noundef 0)
          to label %681 unwind label %518

681:                                              ; preds = %678
  %682 = icmp eq i32 %680, 12
  br i1 %682, label %683, label %726

683:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 88, ptr %27) #8
  %684 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %27, ptr noundef nonnull align 8 dereferenceable(176) %684)
          to label %685 unwind label %701

685:                                              ; preds = %683
  %686 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %27)
          to label %687 unwind label %705

687:                                              ; preds = %685
  %688 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %686)
          to label %689 unwind label %705

689:                                              ; preds = %687
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %27) #8
  store i1 false, ptr %28, align 1
  invoke void @_ZN5Token14take_frag_itemEv(ptr dead_on_unwind writable sret(%"struct.AST::Named") align 8 %0, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %690 unwind label %518

690:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #8
  %691 = getelementptr inbounds %"class.AST::AttributeList", ptr %4, i32 0, i32 0
  store ptr %691, ptr %29, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %692 = load ptr, ptr %29, align 8, !tbaa !5
  %693 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %692) #8
  %694 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %30, i32 0, i32 0
  store ptr %693, ptr %694, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %695 = load ptr, ptr %29, align 8, !tbaa !5
  %696 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %695) #8
  %697 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  store ptr %696, ptr %697, align 8
  br label %698

698:                                              ; preds = %716, %690
  %699 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %31) #8
  br i1 %699, label %710, label %700

700:                                              ; preds = %698
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  br label %722

701:                                              ; preds = %683
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %14, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %15, align 4
  br label %709

705:                                              ; preds = %687, %685
  %706 = landingpad { ptr, i32 }
          cleanup
  %707 = extractvalue { ptr, i32 } %706, 0
  store ptr %707, ptr %14, align 8
  %708 = extractvalue { ptr, i32 } %706, 1
  store i32 %708, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  br label %709

709:                                              ; preds = %705, %701
  call void @llvm.lifetime.end.p0(i64 88, ptr %27) #8
  br label %5953

710:                                              ; preds = %698
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %711 = call noundef nonnull align 8 dereferenceable(169) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  store ptr %711, ptr %32, align 8, !tbaa !5
  %712 = getelementptr inbounds %"struct.AST::Named", ptr %0, i32 0, i32 1
  %713 = getelementptr inbounds %"class.AST::AttributeList", ptr %712, i32 0, i32 0
  %714 = load ptr, ptr %32, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIN3AST9AttributeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %713, ptr noundef nonnull align 8 dereferenceable(169) %714)
          to label %715 unwind label %718

715:                                              ; preds = %710
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %716

716:                                              ; preds = %715
  %717 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %30) #8
  br label %698

718:                                              ; preds = %710
  %719 = landingpad { ptr, i32 }
          cleanup
  %720 = extractvalue { ptr, i32 } %719, 0
  store ptr %720, ptr %14, align 8
  %721 = extractvalue { ptr, i32 } %719, 1
  store i32 %721, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #8
  call void @_ZN3AST5NamedINS_4ItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(568) %0) #8
  br label %5953

722:                                              ; preds = %700
  store i1 true, ptr %28, align 1
  store i32 1, ptr %33, align 4
  %723 = load i1, ptr %28, align 1
  br i1 %723, label %725, label %724

724:                                              ; preds = %722
  call void @_ZN3AST5NamedINS_4ItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(568) %0) #8
  br label %725

725:                                              ; preds = %724, %722
  br label %5952

726:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #8
  %727 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10start_spanEv(ptr dead_on_unwind writable sret(%struct.ProtoSpan) align 8 %34, ptr noundef nonnull align 8 dereferenceable(176) %727)
          to label %728 unwind label %742

728:                                              ; preds = %726
  call void @llvm.lifetime.start.p0(i64 400, ptr %35) #8
  invoke void @_ZN3AST15MacroInvocationC2Ev(ptr noundef nonnull align 8 dereferenceable(393) %35)
          to label %729 unwind label %746

729:                                              ; preds = %728
  %730 = load ptr, ptr %7, align 8, !tbaa !5
  %731 = invoke noundef zeroext i1 @_Z25Parse_MacroInvocation_OptR11TokenStreamRN3AST15MacroInvocationE(ptr noundef nonnull align 8 dereferenceable(176) %730, ptr noundef nonnull align 8 dereferenceable(393) %35)
          to label %732 unwind label %750

732:                                              ; preds = %729
  br i1 %731, label %733, label %783

733:                                              ; preds = %732
  %734 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN9ProtoSpanC2ERKS_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %735 unwind label %750

735:                                              ; preds = %733
  invoke void @_ZNK11TokenStream8end_spanE9ProtoSpan(ptr dead_on_unwind writable sret(%struct.Span) align 8 %36, ptr noundef nonnull align 8 dereferenceable(176) %734, ptr noundef %37)
          to label %736 unwind label %754

736:                                              ; preds = %735
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %38, ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  invoke void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind writable sret(%"class.AST::Visibility") align 8 %39)
          to label %737 unwind label %758

737:                                              ; preds = %736
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef @.str)
          to label %738 unwind label %762

738:                                              ; preds = %737
  invoke void @_ZN3AST15MacroInvocationC2EOS0_(ptr noundef nonnull align 8 dereferenceable(393) %42, ptr noundef nonnull align 8 dereferenceable(393) %35)
          to label %739 unwind label %766

739:                                              ; preds = %738
  invoke void @_ZN3AST4ItemC2ENS_15MacroInvocationE(ptr noundef nonnull align 8 dereferenceable(488) %41, ptr noundef %42)
          to label %740 unwind label %770

740:                                              ; preds = %739
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef %36, ptr noundef %38, ptr noundef %39, ptr noundef %40, ptr noundef %41)
          to label %741 unwind label %774

741:                                              ; preds = %740
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %41) #8
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %42) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %39) #8
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #8
  store i32 1, ptr %33, align 4
  br label %784

742:                                              ; preds = %726
  %743 = landingpad { ptr, i32 }
          cleanup
  %744 = extractvalue { ptr, i32 } %743, 0
  store ptr %744, ptr %14, align 8
  %745 = extractvalue { ptr, i32 } %743, 1
  store i32 %745, ptr %15, align 4
  br label %5951

746:                                              ; preds = %728
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %14, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %15, align 4
  br label %798

750:                                              ; preds = %733, %729
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %14, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %15, align 4
  br label %797

754:                                              ; preds = %735
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %14, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %15, align 4
  br label %782

758:                                              ; preds = %736
  %759 = landingpad { ptr, i32 }
          cleanup
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %14, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %15, align 4
  br label %781

762:                                              ; preds = %737
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %14, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %15, align 4
  br label %780

766:                                              ; preds = %738
  %767 = landingpad { ptr, i32 }
          cleanup
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %14, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %15, align 4
  br label %779

770:                                              ; preds = %739
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %14, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %15, align 4
  br label %778

774:                                              ; preds = %740
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %14, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %41) #8
  br label %778

778:                                              ; preds = %774, %770
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %42) #8
  br label %779

779:                                              ; preds = %778, %766
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %780

780:                                              ; preds = %779, %762
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %39) #8
  br label %781

781:                                              ; preds = %780, %758
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  br label %782

782:                                              ; preds = %781, %754
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #8
  br label %797

783:                                              ; preds = %732
  store i32 0, ptr %33, align 4
  br label %784

784:                                              ; preds = %783, %741
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %35) #8
  call void @llvm.lifetime.end.p0(i64 400, ptr %35) #8
  %785 = load i32, ptr %33, align 4
  switch i32 %785, label %5949 [
    i32 0, label %786
  ]

786:                                              ; preds = %784
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #8
  invoke void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %787 unwind label %799

787:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 488, ptr %44) #8
  invoke void @_ZN3AST4ItemC2Ev(ptr noundef nonnull align 8 dereferenceable(488) %44)
          to label %788 unwind label %803

788:                                              ; preds = %787
  call void @llvm.lifetime.start.p0(i64 40, ptr %45) #8
  %789 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z15Parse_PublicityR11TokenStreamb(ptr dead_on_unwind writable sret(%"class.AST::Visibility") align 8 %45, ptr noundef nonnull align 8 dereferenceable(176) %789, i1 noundef zeroext true)
          to label %790 unwind label %807

790:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 88, ptr %46) #8
  %791 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %46, ptr noundef nonnull align 8 dereferenceable(176) %791)
          to label %792 unwind label %811

792:                                              ; preds = %790
  %793 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %46)
          to label %794 unwind label %815

794:                                              ; preds = %792
  %795 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %793)
          to label %796 unwind label %815

796:                                              ; preds = %794
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %46) #8
  switch i32 %795, label %5916 [
    i32 89, label %820
    i32 82, label %903
    i32 79, label %1725
    i32 80, label %2489
    i32 81, label %2777
    i32 122, label %3444
    i32 88, label %3597
    i32 91, label %3689
    i32 85, label %3773
    i32 86, label %3857
    i32 14, label %3941
    i32 90, label %4205
    i32 87, label %4237
    i32 114, label %4463
    i32 84, label %4716
  ]

797:                                              ; preds = %782, %750
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %35) #8
  br label %798

798:                                              ; preds = %797, %746
  call void @llvm.lifetime.end.p0(i64 400, ptr %35) #8
  br label %5950

799:                                              ; preds = %786
  %800 = landingpad { ptr, i32 }
          cleanup
  %801 = extractvalue { ptr, i32 } %800, 0
  store ptr %801, ptr %14, align 8
  %802 = extractvalue { ptr, i32 } %800, 1
  store i32 %802, ptr %15, align 4
  br label %5948

803:                                              ; preds = %787
  %804 = landingpad { ptr, i32 }
          cleanup
  %805 = extractvalue { ptr, i32 } %804, 0
  store ptr %805, ptr %14, align 8
  %806 = extractvalue { ptr, i32 } %804, 1
  store i32 %806, ptr %15, align 4
  br label %5947

807:                                              ; preds = %788
  %808 = landingpad { ptr, i32 }
          cleanup
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %14, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %15, align 4
  br label %5946

811:                                              ; preds = %790
  %812 = landingpad { ptr, i32 }
          cleanup
  %813 = extractvalue { ptr, i32 } %812, 0
  store ptr %813, ptr %14, align 8
  %814 = extractvalue { ptr, i32 } %812, 1
  store i32 %814, ptr %15, align 4
  br label %819

815:                                              ; preds = %794, %792
  %816 = landingpad { ptr, i32 }
          cleanup
  %817 = extractvalue { ptr, i32 } %816, 0
  store ptr %817, ptr %14, align 8
  %818 = extractvalue { ptr, i32 } %816, 1
  store i32 %818, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #8
  br label %819

819:                                              ; preds = %815, %811
  call void @llvm.lifetime.end.p0(i64 88, ptr %46) #8
  br label %5945

820:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 488, ptr %47) #8
  %821 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z9Parse_UseR11TokenStream(ptr dead_on_unwind writable sret(%"struct.AST::UseItem") align 8 %48, ptr noundef nonnull align 8 dereferenceable(176) %821)
          to label %822 unwind label %854

822:                                              ; preds = %820
  invoke void @_ZN3AST4ItemC2ENS_7UseItemE(ptr noundef nonnull align 8 dereferenceable(488) %47, ptr noundef %48)
          to label %823 unwind label %858

823:                                              ; preds = %822
  %824 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %47)
          to label %825 unwind label %862

825:                                              ; preds = %823
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %47) #8
  call void @_ZN3AST7UseItemD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %47) #8
  br label %826

826:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 88, ptr %49) #8
  %827 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %49, ptr noundef nonnull align 8 dereferenceable(176) %827)
          to label %828 unwind label %868

828:                                              ; preds = %826
  %829 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %49)
          to label %830 unwind label %872

830:                                              ; preds = %828
  %831 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %829)
          to label %832 unwind label %872

832:                                              ; preds = %830
  %833 = icmp ne i32 %831, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %49) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %49) #8
  br i1 %833, label %834, label %900

834:                                              ; preds = %832
  br label %835

835:                                              ; preds = %834
  %836 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %837 unwind label %877

837:                                              ; preds = %835
  br i1 %836, label %838, label %881

838:                                              ; preds = %837
  %839 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %840 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %839, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %841 unwind label %877

841:                                              ; preds = %838
  %842 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %840, ptr noundef @.str.1)
          to label %843 unwind label %877

843:                                              ; preds = %841
  %844 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %842, ptr noundef @.str.2)
          to label %845 unwind label %877

845:                                              ; preds = %843
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %844, ptr noundef @.str.3)
          to label %847 unwind label %877

847:                                              ; preds = %845
  %848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %846, i32 noundef 1848)
          to label %849 unwind label %877

849:                                              ; preds = %847
  %850 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %848, ptr noundef @_ZSt3decRSt8ios_base)
          to label %851 unwind label %877

851:                                              ; preds = %849
  %852 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %850, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %853 unwind label %877

853:                                              ; preds = %851
  br label %881

854:                                              ; preds = %820
  %855 = landingpad { ptr, i32 }
          cleanup
  %856 = extractvalue { ptr, i32 } %855, 0
  store ptr %856, ptr %14, align 8
  %857 = extractvalue { ptr, i32 } %855, 1
  store i32 %857, ptr %15, align 4
  br label %867

858:                                              ; preds = %822
  %859 = landingpad { ptr, i32 }
          cleanup
  %860 = extractvalue { ptr, i32 } %859, 0
  store ptr %860, ptr %14, align 8
  %861 = extractvalue { ptr, i32 } %859, 1
  store i32 %861, ptr %15, align 4
  br label %866

862:                                              ; preds = %823
  %863 = landingpad { ptr, i32 }
          cleanup
  %864 = extractvalue { ptr, i32 } %863, 0
  store ptr %864, ptr %14, align 8
  %865 = extractvalue { ptr, i32 } %863, 1
  store i32 %865, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %47) #8
  br label %866

866:                                              ; preds = %862, %858
  call void @_ZN3AST7UseItemD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  br label %867

867:                                              ; preds = %866, %854
  call void @llvm.lifetime.end.p0(i64 488, ptr %47) #8
  br label %5945

868:                                              ; preds = %826
  %869 = landingpad { ptr, i32 }
          cleanup
  %870 = extractvalue { ptr, i32 } %869, 0
  store ptr %870, ptr %14, align 8
  %871 = extractvalue { ptr, i32 } %869, 1
  store i32 %871, ptr %15, align 4
  br label %876

872:                                              ; preds = %830, %828
  %873 = landingpad { ptr, i32 }
          cleanup
  %874 = extractvalue { ptr, i32 } %873, 0
  store ptr %874, ptr %14, align 8
  %875 = extractvalue { ptr, i32 } %873, 1
  store i32 %875, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %49) #8
  br label %876

876:                                              ; preds = %872, %868
  call void @llvm.lifetime.end.p0(i64 88, ptr %49) #8
  br label %5945

877:                                              ; preds = %5924, %5919, %4742, %4740, %4738, %4736, %4734, %4732, %4729, %4726, %4710, %4492, %4490, %4488, %4486, %4484, %4482, %4479, %4476, %4298, %4296, %4263, %4261, %4259, %4257, %4255, %4253, %4250, %4247, %4205, %4198, %4160, %4158, %4125, %4123, %4121, %4119, %4117, %4115, %4112, %4109, %4066, %4064, %4062, %4060, %4058, %4056, %4053, %4050, %4036, %4034, %4008, %4006, %3973, %3971, %3969, %3967, %3965, %3963, %3960, %3957, %3943, %3941, %3918, %3916, %3883, %3881, %3879, %3877, %3875, %3873, %3870, %3867, %3834, %3832, %3799, %3797, %3795, %3793, %3791, %3789, %3786, %3783, %3750, %3748, %3715, %3713, %3711, %3709, %3707, %3705, %3702, %3699, %3658, %3656, %3623, %3621, %3619, %3617, %3615, %3613, %3610, %3607, %3564, %3562, %3529, %3527, %3525, %3523, %3521, %3519, %3516, %3513, %3470, %3468, %3466, %3464, %3462, %3460, %3457, %3454, %3381, %3379, %3346, %3344, %3342, %3340, %3338, %3336, %3333, %3330, %3287, %3285, %3283, %3281, %3279, %3277, %3274, %3271, %3257, %3255, %3141, %3139, %3106, %3104, %3102, %3100, %3098, %3096, %3093, %3090, %3047, %3045, %3012, %3010, %3008, %3006, %3004, %3002, %2999, %2996, %2429, %2427, %2394, %2392, %2390, %2388, %2386, %2384, %2381, %2378, %1774, %1772, %1770, %1768, %1766, %1764, %1761, %1758, %1741, %1664, %1662, %1660, %1658, %1656, %1654, %1651, %1648, %1586, %1533, %1531, %1527, %1525, %1492, %1490, %1488, %1486, %1484, %1482, %1479, %1476, %1419, %1417, %1415, %1413, %1411, %1409, %1406, %1403, %1382, %1380, %1347, %1345, %1343, %1341, %1339, %1337, %1334, %1331, %1274, %1272, %1270, %1268, %1266, %1264, %1261, %1258, %1158, %1156, %1123, %1121, %1119, %1117, %1115, %1113, %1110, %1107, %851, %849, %847, %845, %843, %841, %838, %835
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %14, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %15, align 4
  br label %5945

881:                                              ; preds = %853, %837
  br label %882

882:                                              ; preds = %881
  br label %883

883:                                              ; preds = %882
  store i1 true, ptr %51, align 1
  %884 = call ptr @__cxa_allocate_exception(i64 96) #8
  %885 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %50, i32 noundef 32)
          to label %886 unwind label %888

886:                                              ; preds = %883
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %884, ptr noundef nonnull align 8 dereferenceable(176) %885, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %50)
          to label %887 unwind label %892

887:                                              ; preds = %886
  store i1 false, ptr %51, align 1
  invoke void @__cxa_throw(ptr %884, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %892

888:                                              ; preds = %883
  %889 = landingpad { ptr, i32 }
          cleanup
  %890 = extractvalue { ptr, i32 } %889, 0
  store ptr %890, ptr %14, align 8
  %891 = extractvalue { ptr, i32 } %889, 1
  store i32 %891, ptr %15, align 4
  br label %896

892:                                              ; preds = %887, %886
  %893 = landingpad { ptr, i32 }
          cleanup
  %894 = extractvalue { ptr, i32 } %893, 0
  store ptr %894, ptr %14, align 8
  %895 = extractvalue { ptr, i32 } %893, 1
  store i32 %895, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #8
  br label %896

896:                                              ; preds = %892, %888
  %897 = load i1, ptr %51, align 1
  br i1 %897, label %898, label %899

898:                                              ; preds = %896
  call void @__cxa_free_exception(ptr %884) #8
  br label %899

899:                                              ; preds = %898, %896
  br label %5945

900:                                              ; preds = %832
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901
  br label %5924

903:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 88, ptr %52) #8
  %904 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %52, ptr noundef nonnull align 8 dereferenceable(176) %904)
          to label %905 unwind label %910

905:                                              ; preds = %903
  %906 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %52)
          to label %907 unwind label %914

907:                                              ; preds = %905
  %908 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %906)
          to label %909 unwind label %914

909:                                              ; preds = %907
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %52) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %52) #8
  switch i32 %908, label %1698 [
    i32 19, label %919
    i32 88, label %1097
    i32 25, label %1189
    i32 83, label %1227
  ]

910:                                              ; preds = %903
  %911 = landingpad { ptr, i32 }
          cleanup
  %912 = extractvalue { ptr, i32 } %911, 0
  store ptr %912, ptr %14, align 8
  %913 = extractvalue { ptr, i32 } %911, 1
  store i32 %913, ptr %15, align 4
  br label %918

914:                                              ; preds = %907, %905
  %915 = landingpad { ptr, i32 }
          cleanup
  %916 = extractvalue { ptr, i32 } %915, 0
  store ptr %916, ptr %14, align 8
  %917 = extractvalue { ptr, i32 } %915, 1
  store i32 %917, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %52) #8
  br label %918

918:                                              ; preds = %914, %910
  call void @llvm.lifetime.end.p0(i64 88, ptr %52) #8
  br label %5945

919:                                              ; preds = %909
  call void @llvm.lifetime.start.p0(i64 32, ptr %53) #8
  %920 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %921 unwind label %929

921:                                              ; preds = %919
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %920)
          to label %922 unwind label %929

922:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 88, ptr %54) #8
  %923 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %54, ptr noundef nonnull align 8 dereferenceable(176) %923)
          to label %924 unwind label %933

924:                                              ; preds = %922
  %925 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %54)
          to label %926 unwind label %937

926:                                              ; preds = %924
  %927 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %925)
          to label %928 unwind label %937

928:                                              ; preds = %926
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %54) #8
  switch i32 %927, label %1070 [
    i32 88, label %942
    i32 25, label %1038
  ]

929:                                              ; preds = %921, %919
  %930 = landingpad { ptr, i32 }
          cleanup
  %931 = extractvalue { ptr, i32 } %930, 0
  store ptr %931, ptr %14, align 8
  %932 = extractvalue { ptr, i32 } %930, 1
  store i32 %932, ptr %15, align 4
  br label %1096

933:                                              ; preds = %922
  %934 = landingpad { ptr, i32 }
          cleanup
  %935 = extractvalue { ptr, i32 } %934, 0
  store ptr %935, ptr %14, align 8
  %936 = extractvalue { ptr, i32 } %934, 1
  store i32 %936, ptr %15, align 4
  br label %941

937:                                              ; preds = %926, %924
  %938 = landingpad { ptr, i32 }
          cleanup
  %939 = extractvalue { ptr, i32 } %938, 0
  store ptr %939, ptr %14, align 8
  %940 = extractvalue { ptr, i32 } %938, 1
  store i32 %940, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #8
  br label %941

941:                                              ; preds = %937, %933
  call void @llvm.lifetime.end.p0(i64 88, ptr %54) #8
  br label %1095

942:                                              ; preds = %928
  br label %943

943:                                              ; preds = %942
  call void @llvm.lifetime.start.p0(i64 88, ptr %55) #8
  %944 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %55, ptr noundef nonnull align 8 dereferenceable(176) %944)
          to label %945 unwind label %971

945:                                              ; preds = %943
  %946 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %55)
          to label %947 unwind label %975

947:                                              ; preds = %945
  %948 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %946)
          to label %949 unwind label %975

949:                                              ; preds = %947
  %950 = icmp ne i32 %948, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %55) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %55) #8
  br i1 %950, label %951, label %1003

951:                                              ; preds = %949
  br label %952

952:                                              ; preds = %951
  %953 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %954 unwind label %980

954:                                              ; preds = %952
  br i1 %953, label %955, label %984

955:                                              ; preds = %954
  %956 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %957 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %956, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %958 unwind label %980

958:                                              ; preds = %955
  %959 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %957, ptr noundef @.str.1)
          to label %960 unwind label %980

960:                                              ; preds = %958
  %961 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %959, ptr noundef @.str.2)
          to label %962 unwind label %980

962:                                              ; preds = %960
  %963 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %961, ptr noundef @.str.3)
          to label %964 unwind label %980

964:                                              ; preds = %962
  %965 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %963, i32 noundef 1862)
          to label %966 unwind label %980

966:                                              ; preds = %964
  %967 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %965, ptr noundef @_ZSt3decRSt8ios_base)
          to label %968 unwind label %980

968:                                              ; preds = %966
  %969 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %967, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %970 unwind label %980

970:                                              ; preds = %968
  br label %984

971:                                              ; preds = %943
  %972 = landingpad { ptr, i32 }
          cleanup
  %973 = extractvalue { ptr, i32 } %972, 0
  store ptr %973, ptr %14, align 8
  %974 = extractvalue { ptr, i32 } %972, 1
  store i32 %974, ptr %15, align 4
  br label %979

975:                                              ; preds = %947, %945
  %976 = landingpad { ptr, i32 }
          cleanup
  %977 = extractvalue { ptr, i32 } %976, 0
  store ptr %977, ptr %14, align 8
  %978 = extractvalue { ptr, i32 } %976, 1
  store i32 %978, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %55) #8
  br label %979

979:                                              ; preds = %975, %971
  call void @llvm.lifetime.end.p0(i64 88, ptr %55) #8
  br label %1095

980:                                              ; preds = %1007, %1005, %968, %966, %964, %962, %960, %958, %955, %952
  %981 = landingpad { ptr, i32 }
          cleanup
  %982 = extractvalue { ptr, i32 } %981, 0
  store ptr %982, ptr %14, align 8
  %983 = extractvalue { ptr, i32 } %981, 1
  store i32 %983, ptr %15, align 4
  br label %1095

984:                                              ; preds = %970, %954
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  store i1 true, ptr %57, align 1
  %987 = call ptr @__cxa_allocate_exception(i64 96) #8
  %988 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %56, i32 noundef 14)
          to label %989 unwind label %991

989:                                              ; preds = %986
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %987, ptr noundef nonnull align 8 dereferenceable(176) %988, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %56)
          to label %990 unwind label %995

990:                                              ; preds = %989
  store i1 false, ptr %57, align 1
  invoke void @__cxa_throw(ptr %987, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %995

991:                                              ; preds = %986
  %992 = landingpad { ptr, i32 }
          cleanup
  %993 = extractvalue { ptr, i32 } %992, 0
  store ptr %993, ptr %14, align 8
  %994 = extractvalue { ptr, i32 } %992, 1
  store i32 %994, ptr %15, align 4
  br label %999

995:                                              ; preds = %990, %989
  %996 = landingpad { ptr, i32 }
          cleanup
  %997 = extractvalue { ptr, i32 } %996, 0
  store ptr %997, ptr %14, align 8
  %998 = extractvalue { ptr, i32 } %996, 1
  store i32 %998, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %56) #8
  br label %999

999:                                              ; preds = %995, %991
  %1000 = load i1, ptr %57, align 1
  br i1 %1000, label %1001, label %1002

1001:                                             ; preds = %999
  call void @__cxa_free_exception(ptr %987) #8
  br label %1002

1002:                                             ; preds = %1001, %999
  br label %1095

1003:                                             ; preds = %949
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

1005:                                             ; preds = %1004
  %1006 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1007 unwind label %980

1007:                                             ; preds = %1005
  %1008 = getelementptr inbounds %struct.Ident, ptr %1006, i32 0, i32 1
  %1009 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %1008)
          to label %1010 unwind label %980

1010:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 488, ptr %58) #8
  %1011 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %1012 unwind label %1019

1012:                                             ; preds = %1010
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %61)
          to label %1013 unwind label %1023

1013:                                             ; preds = %1012
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %62, ptr align 1 %61, i64 3, i1 false)
  %1014 = load i24, ptr %62, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %59, ptr noundef nonnull align 8 dereferenceable(176) %1011, i1 noundef zeroext false, ptr noundef %60, i24 %1014)
          to label %1015 unwind label %1023

1015:                                             ; preds = %1013
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %58, ptr noundef %59)
          to label %1016 unwind label %1027

1016:                                             ; preds = %1015
  %1017 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %58)
          to label %1018 unwind label %1031

1018:                                             ; preds = %1016
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %58) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %59) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %58) #8
  br label %1094

1019:                                             ; preds = %1010
  %1020 = landingpad { ptr, i32 }
          cleanup
  %1021 = extractvalue { ptr, i32 } %1020, 0
  store ptr %1021, ptr %14, align 8
  %1022 = extractvalue { ptr, i32 } %1020, 1
  store i32 %1022, ptr %15, align 4
  br label %1037

1023:                                             ; preds = %1013, %1012
  %1024 = landingpad { ptr, i32 }
          cleanup
  %1025 = extractvalue { ptr, i32 } %1024, 0
  store ptr %1025, ptr %14, align 8
  %1026 = extractvalue { ptr, i32 } %1024, 1
  store i32 %1026, ptr %15, align 4
  br label %1036

1027:                                             ; preds = %1015
  %1028 = landingpad { ptr, i32 }
          cleanup
  %1029 = extractvalue { ptr, i32 } %1028, 0
  store ptr %1029, ptr %14, align 8
  %1030 = extractvalue { ptr, i32 } %1028, 1
  store i32 %1030, ptr %15, align 4
  br label %1035

1031:                                             ; preds = %1016
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %14, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %58) #8
  br label %1035

1035:                                             ; preds = %1031, %1027
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %59) #8
  br label %1036

1036:                                             ; preds = %1035, %1023
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %1037

1037:                                             ; preds = %1036, %1019
  call void @llvm.lifetime.end.p0(i64 488, ptr %58) #8
  br label %1095

1038:                                             ; preds = %928
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef @.str)
          to label %1039 unwind label %1047

1039:                                             ; preds = %1038
  %1040 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %1041 unwind label %1051

1041:                                             ; preds = %1039
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  call void @llvm.lifetime.start.p0(i64 488, ptr %64) #8
  %1042 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %66, ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  invoke void @_Z17Parse_ExternBlockR11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3AST13AttributeListE(ptr dead_on_unwind writable sret(%"class.AST::ExternBlock") align 8 %65, ptr noundef nonnull align 8 dereferenceable(176) %1042, ptr noundef %66, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %1043 unwind label %1056

1043:                                             ; preds = %1041
  invoke void @_ZN3AST4ItemC2ENS_11ExternBlockE(ptr noundef nonnull align 8 dereferenceable(488) %64, ptr noundef %65)
          to label %1044 unwind label %1060

1044:                                             ; preds = %1043
  %1045 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %64)
          to label %1046 unwind label %1064

1046:                                             ; preds = %1044
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %64) #8
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %65) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %64) #8
  br label %1094

1047:                                             ; preds = %1038
  %1048 = landingpad { ptr, i32 }
          cleanup
  %1049 = extractvalue { ptr, i32 } %1048, 0
  store ptr %1049, ptr %14, align 8
  %1050 = extractvalue { ptr, i32 } %1048, 1
  store i32 %1050, ptr %15, align 4
  br label %1055

1051:                                             ; preds = %1039
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %14, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %15, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %1055

1055:                                             ; preds = %1051, %1047
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  br label %1095

1056:                                             ; preds = %1041
  %1057 = landingpad { ptr, i32 }
          cleanup
  %1058 = extractvalue { ptr, i32 } %1057, 0
  store ptr %1058, ptr %14, align 8
  %1059 = extractvalue { ptr, i32 } %1057, 1
  store i32 %1059, ptr %15, align 4
  br label %1069

1060:                                             ; preds = %1043
  %1061 = landingpad { ptr, i32 }
          cleanup
  %1062 = extractvalue { ptr, i32 } %1061, 0
  store ptr %1062, ptr %14, align 8
  %1063 = extractvalue { ptr, i32 } %1061, 1
  store i32 %1063, ptr %15, align 4
  br label %1068

1064:                                             ; preds = %1044
  %1065 = landingpad { ptr, i32 }
          cleanup
  %1066 = extractvalue { ptr, i32 } %1065, 0
  store ptr %1066, ptr %14, align 8
  %1067 = extractvalue { ptr, i32 } %1065, 1
  store i32 %1067, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %64) #8
  br label %1068

1068:                                             ; preds = %1064, %1060
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %65) #8
  br label %1069

1069:                                             ; preds = %1068, %1056
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %64) #8
  br label %1095

1070:                                             ; preds = %928
  store i1 true, ptr %71, align 1
  %1071 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1072 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #8
  store i32 88, ptr %69, align 4, !tbaa !13
  %1073 = getelementptr inbounds i32, ptr %69, i64 1
  store i32 25, ptr %1073, align 4, !tbaa !13
  %1074 = getelementptr inbounds %"class.std::initializer_list", ptr %68, i32 0, i32 0
  store ptr %69, ptr %1074, align 8, !tbaa !15
  %1075 = getelementptr inbounds %"class.std::initializer_list", ptr %68, i32 0, i32 1
  store i64 2, ptr %1075, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #8
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  %1076 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 0
  %1077 = load ptr, ptr %1076, align 8
  %1078 = getelementptr inbounds { ptr, i64 }, ptr %68, i32 0, i32 1
  %1079 = load i64, ptr %1078, align 8
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %67, ptr %1077, i64 %1079, ptr noundef nonnull align 1 dereferenceable(1) %70)
          to label %1080 unwind label %1082

1080:                                             ; preds = %1070
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %1071, ptr noundef nonnull align 8 dereferenceable(176) %1072, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %67)
          to label %1081 unwind label %1086

1081:                                             ; preds = %1080
  store i1 false, ptr %71, align 1
  invoke void @__cxa_throw(ptr %1071, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1086

1082:                                             ; preds = %1070
  %1083 = landingpad { ptr, i32 }
          cleanup
  %1084 = extractvalue { ptr, i32 } %1083, 0
  store ptr %1084, ptr %14, align 8
  %1085 = extractvalue { ptr, i32 } %1083, 1
  store i32 %1085, ptr %15, align 4
  br label %1090

1086:                                             ; preds = %1081, %1080
  %1087 = landingpad { ptr, i32 }
          cleanup
  %1088 = extractvalue { ptr, i32 } %1087, 0
  store ptr %1088, ptr %14, align 8
  %1089 = extractvalue { ptr, i32 } %1087, 1
  store i32 %1089, ptr %15, align 4
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %67) #8
  br label %1090

1090:                                             ; preds = %1086, %1082
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %70) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #8
  %1091 = load i1, ptr %71, align 1
  br i1 %1091, label %1092, label %1093

1092:                                             ; preds = %1090
  call void @__cxa_free_exception(ptr %1071) #8
  br label %1093

1093:                                             ; preds = %1092, %1090
  br label %1095

1094:                                             ; preds = %1046, %1018
  store i32 23, ptr %33, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %1724

1095:                                             ; preds = %1093, %1069, %1055, %1037, %1002, %980, %979, %941
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %1096

1096:                                             ; preds = %1095, %929
  call void @llvm.lifetime.end.p0(i64 32, ptr %53) #8
  br label %5945

1097:                                             ; preds = %909
  br label %1098

1098:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 88, ptr %72) #8
  %1099 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %72, ptr noundef nonnull align 8 dereferenceable(176) %1099)
          to label %1100 unwind label %1126

1100:                                             ; preds = %1098
  %1101 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %1102 unwind label %1130

1102:                                             ; preds = %1100
  %1103 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1101)
          to label %1104 unwind label %1130

1104:                                             ; preds = %1102
  %1105 = icmp ne i32 %1103, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %72) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %72) #8
  br i1 %1105, label %1106, label %1154

1106:                                             ; preds = %1104
  br label %1107

1107:                                             ; preds = %1106
  %1108 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1109 unwind label %877

1109:                                             ; preds = %1107
  br i1 %1108, label %1110, label %1135

1110:                                             ; preds = %1109
  %1111 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1111, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1113 unwind label %877

1113:                                             ; preds = %1110
  %1114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1112, ptr noundef @.str.1)
          to label %1115 unwind label %877

1115:                                             ; preds = %1113
  %1116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1114, ptr noundef @.str.2)
          to label %1117 unwind label %877

1117:                                             ; preds = %1115
  %1118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1116, ptr noundef @.str.3)
          to label %1119 unwind label %877

1119:                                             ; preds = %1117
  %1120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1118, i32 noundef 1877)
          to label %1121 unwind label %877

1121:                                             ; preds = %1119
  %1122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1120, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1123 unwind label %877

1123:                                             ; preds = %1121
  %1124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1122, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1125 unwind label %877

1125:                                             ; preds = %1123
  br label %1135

1126:                                             ; preds = %1098
  %1127 = landingpad { ptr, i32 }
          cleanup
  %1128 = extractvalue { ptr, i32 } %1127, 0
  store ptr %1128, ptr %14, align 8
  %1129 = extractvalue { ptr, i32 } %1127, 1
  store i32 %1129, ptr %15, align 4
  br label %1134

1130:                                             ; preds = %1102, %1100
  %1131 = landingpad { ptr, i32 }
          cleanup
  %1132 = extractvalue { ptr, i32 } %1131, 0
  store ptr %1132, ptr %14, align 8
  %1133 = extractvalue { ptr, i32 } %1131, 1
  store i32 %1133, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %72) #8
  br label %1134

1134:                                             ; preds = %1130, %1126
  call void @llvm.lifetime.end.p0(i64 88, ptr %72) #8
  br label %5945

1135:                                             ; preds = %1125, %1109
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  store i1 true, ptr %74, align 1
  %1138 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1139 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %73, i32 noundef 14)
          to label %1140 unwind label %1142

1140:                                             ; preds = %1137
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1138, ptr noundef nonnull align 8 dereferenceable(176) %1139, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %73)
          to label %1141 unwind label %1146

1141:                                             ; preds = %1140
  store i1 false, ptr %74, align 1
  invoke void @__cxa_throw(ptr %1138, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1146

1142:                                             ; preds = %1137
  %1143 = landingpad { ptr, i32 }
          cleanup
  %1144 = extractvalue { ptr, i32 } %1143, 0
  store ptr %1144, ptr %14, align 8
  %1145 = extractvalue { ptr, i32 } %1143, 1
  store i32 %1145, ptr %15, align 4
  br label %1150

1146:                                             ; preds = %1141, %1140
  %1147 = landingpad { ptr, i32 }
          cleanup
  %1148 = extractvalue { ptr, i32 } %1147, 0
  store ptr %1148, ptr %14, align 8
  %1149 = extractvalue { ptr, i32 } %1147, 1
  store i32 %1149, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %73) #8
  br label %1150

1150:                                             ; preds = %1146, %1142
  %1151 = load i1, ptr %74, align 1
  br i1 %1151, label %1152, label %1153

1152:                                             ; preds = %1150
  call void @__cxa_free_exception(ptr %1138) #8
  br label %1153

1153:                                             ; preds = %1152, %1150
  br label %5945

1154:                                             ; preds = %1104
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  %1157 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1158 unwind label %877

1158:                                             ; preds = %1156
  %1159 = getelementptr inbounds %struct.Ident, ptr %1157, i32 0, i32 1
  %1160 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %1159)
          to label %1161 unwind label %877

1161:                                             ; preds = %1158
  call void @llvm.lifetime.start.p0(i64 488, ptr %75) #8
  %1162 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %78) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %77, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %78)
          to label %1163 unwind label %1170

1163:                                             ; preds = %1161
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %79)
          to label %1164 unwind label %1174

1164:                                             ; preds = %1163
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %80, ptr align 1 %79, i64 3, i1 false)
  %1165 = load i24, ptr %80, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %76, ptr noundef nonnull align 8 dereferenceable(176) %1162, i1 noundef zeroext false, ptr noundef %77, i24 %1165)
          to label %1166 unwind label %1174

1166:                                             ; preds = %1164
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %75, ptr noundef %76)
          to label %1167 unwind label %1178

1167:                                             ; preds = %1166
  %1168 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %75)
          to label %1169 unwind label %1182

1169:                                             ; preds = %1167
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %75) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %75) #8
  br label %1724

1170:                                             ; preds = %1161
  %1171 = landingpad { ptr, i32 }
          cleanup
  %1172 = extractvalue { ptr, i32 } %1171, 0
  store ptr %1172, ptr %14, align 8
  %1173 = extractvalue { ptr, i32 } %1171, 1
  store i32 %1173, ptr %15, align 4
  br label %1188

1174:                                             ; preds = %1164, %1163
  %1175 = landingpad { ptr, i32 }
          cleanup
  %1176 = extractvalue { ptr, i32 } %1175, 0
  store ptr %1176, ptr %14, align 8
  %1177 = extractvalue { ptr, i32 } %1175, 1
  store i32 %1177, ptr %15, align 4
  br label %1187

1178:                                             ; preds = %1166
  %1179 = landingpad { ptr, i32 }
          cleanup
  %1180 = extractvalue { ptr, i32 } %1179, 0
  store ptr %1180, ptr %14, align 8
  %1181 = extractvalue { ptr, i32 } %1179, 1
  store i32 %1181, ptr %15, align 4
  br label %1186

1182:                                             ; preds = %1167
  %1183 = landingpad { ptr, i32 }
          cleanup
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %14, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %75) #8
  br label %1186

1186:                                             ; preds = %1182, %1178
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %76) #8
  br label %1187

1187:                                             ; preds = %1186, %1174
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %77) #8
  br label %1188

1188:                                             ; preds = %1187, %1170
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %78) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %78) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %75) #8
  br label %5945

1189:                                             ; preds = %909
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef @.str)
          to label %1190 unwind label %1199

1190:                                             ; preds = %1189
  %1191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %81)
          to label %1192 unwind label %1203

1192:                                             ; preds = %1190
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  call void @llvm.lifetime.start.p0(i64 488, ptr %82) #8
  %1193 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %85) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %1194 unwind label %1208

1194:                                             ; preds = %1192
  invoke void @_Z17Parse_ExternBlockR11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3AST13AttributeListE(ptr dead_on_unwind writable sret(%"class.AST::ExternBlock") align 8 %83, ptr noundef nonnull align 8 dereferenceable(176) %1193, ptr noundef %84, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %1195 unwind label %1212

1195:                                             ; preds = %1194
  invoke void @_ZN3AST4ItemC2ENS_11ExternBlockE(ptr noundef nonnull align 8 dereferenceable(488) %82, ptr noundef %83)
          to label %1196 unwind label %1216

1196:                                             ; preds = %1195
  %1197 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %82)
          to label %1198 unwind label %1220

1198:                                             ; preds = %1196
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %82) #8
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %83) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %82) #8
  br label %1724

1199:                                             ; preds = %1189
  %1200 = landingpad { ptr, i32 }
          cleanup
  %1201 = extractvalue { ptr, i32 } %1200, 0
  store ptr %1201, ptr %14, align 8
  %1202 = extractvalue { ptr, i32 } %1200, 1
  store i32 %1202, ptr %15, align 4
  br label %1207

1203:                                             ; preds = %1190
  %1204 = landingpad { ptr, i32 }
          cleanup
  %1205 = extractvalue { ptr, i32 } %1204, 0
  store ptr %1205, ptr %14, align 8
  %1206 = extractvalue { ptr, i32 } %1204, 1
  store i32 %1206, ptr %15, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #8
  br label %1207

1207:                                             ; preds = %1203, %1199
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #8
  br label %5945

1208:                                             ; preds = %1192
  %1209 = landingpad { ptr, i32 }
          cleanup
  %1210 = extractvalue { ptr, i32 } %1209, 0
  store ptr %1210, ptr %14, align 8
  %1211 = extractvalue { ptr, i32 } %1209, 1
  store i32 %1211, ptr %15, align 4
  br label %1226

1212:                                             ; preds = %1194
  %1213 = landingpad { ptr, i32 }
          cleanup
  %1214 = extractvalue { ptr, i32 } %1213, 0
  store ptr %1214, ptr %14, align 8
  %1215 = extractvalue { ptr, i32 } %1213, 1
  store i32 %1215, ptr %15, align 4
  br label %1225

1216:                                             ; preds = %1195
  %1217 = landingpad { ptr, i32 }
          cleanup
  %1218 = extractvalue { ptr, i32 } %1217, 0
  store ptr %1218, ptr %14, align 8
  %1219 = extractvalue { ptr, i32 } %1217, 1
  store i32 %1219, ptr %15, align 4
  br label %1224

1220:                                             ; preds = %1196
  %1221 = landingpad { ptr, i32 }
          cleanup
  %1222 = extractvalue { ptr, i32 } %1221, 0
  store ptr %1222, ptr %14, align 8
  %1223 = extractvalue { ptr, i32 } %1221, 1
  store i32 %1223, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %82) #8
  br label %1224

1224:                                             ; preds = %1220, %1216
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %83) #8
  br label %1225

1225:                                             ; preds = %1224, %1212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %1226

1226:                                             ; preds = %1225, %1208
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %85) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %82) #8
  br label %5945

1227:                                             ; preds = %909
  call void @llvm.lifetime.start.p0(i64 88, ptr %86) #8
  %1228 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %86, ptr noundef nonnull align 8 dereferenceable(176) %1228)
          to label %1229 unwind label %1234

1229:                                             ; preds = %1227
  %1230 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %86)
          to label %1231 unwind label %1238

1231:                                             ; preds = %1229
  %1232 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1230)
          to label %1233 unwind label %1238

1233:                                             ; preds = %1231
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %86) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %86) #8
  switch i32 %1232, label %1614 [
    i32 111, label %1243
    i32 19, label %1386
    i32 14, label %1531
  ]

1234:                                             ; preds = %1227
  %1235 = landingpad { ptr, i32 }
          cleanup
  %1236 = extractvalue { ptr, i32 } %1235, 0
  store ptr %1236, ptr %14, align 8
  %1237 = extractvalue { ptr, i32 } %1235, 1
  store i32 %1237, ptr %15, align 4
  br label %1242

1238:                                             ; preds = %1231, %1229
  %1239 = landingpad { ptr, i32 }
          cleanup
  %1240 = extractvalue { ptr, i32 } %1239, 0
  store ptr %1240, ptr %14, align 8
  %1241 = extractvalue { ptr, i32 } %1239, 1
  store i32 %1241, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %86) #8
  br label %1242

1242:                                             ; preds = %1238, %1234
  call void @llvm.lifetime.end.p0(i64 88, ptr %86) #8
  br label %5945

1243:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 488, ptr %87) #8
  %1244 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %88, i32 0, i32 0
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind writable sret(%class.RcString) align 8 %1244, ptr noundef @.str)
          to label %1245 unwind label %1277

1245:                                             ; preds = %1243
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind writable sret(%"class.AST::Item") align 8 %87, ptr noundef %88)
          to label %1246 unwind label %1281

1246:                                             ; preds = %1245
  %1247 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %87)
          to label %1248 unwind label %1285

1248:                                             ; preds = %1246
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %87) #8
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %87) #8
  br label %1249

1249:                                             ; preds = %1248
  call void @llvm.lifetime.start.p0(i64 88, ptr %89) #8
  %1250 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %89, ptr noundef nonnull align 8 dereferenceable(176) %1250)
          to label %1251 unwind label %1291

1251:                                             ; preds = %1249
  %1252 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %89)
          to label %1253 unwind label %1295

1253:                                             ; preds = %1251
  %1254 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1252)
          to label %1255 unwind label %1295

1255:                                             ; preds = %1253
  %1256 = icmp ne i32 %1254, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %89) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %89) #8
  br i1 %1256, label %1257, label %1319

1257:                                             ; preds = %1255
  br label %1258

1258:                                             ; preds = %1257
  %1259 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1260 unwind label %877

1260:                                             ; preds = %1258
  br i1 %1259, label %1261, label %1300

1261:                                             ; preds = %1260
  %1262 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1262, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1264 unwind label %877

1264:                                             ; preds = %1261
  %1265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1263, ptr noundef @.str.1)
          to label %1266 unwind label %877

1266:                                             ; preds = %1264
  %1267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1265, ptr noundef @.str.2)
          to label %1268 unwind label %877

1268:                                             ; preds = %1266
  %1269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1267, ptr noundef @.str.3)
          to label %1270 unwind label %877

1270:                                             ; preds = %1268
  %1271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1269, i32 noundef 1896)
          to label %1272 unwind label %877

1272:                                             ; preds = %1270
  %1273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1271, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1274 unwind label %877

1274:                                             ; preds = %1272
  %1275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1273, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1276 unwind label %877

1276:                                             ; preds = %1274
  br label %1300

1277:                                             ; preds = %1243
  %1278 = landingpad { ptr, i32 }
          cleanup
  %1279 = extractvalue { ptr, i32 } %1278, 0
  store ptr %1279, ptr %14, align 8
  %1280 = extractvalue { ptr, i32 } %1278, 1
  store i32 %1280, ptr %15, align 4
  br label %1290

1281:                                             ; preds = %1245
  %1282 = landingpad { ptr, i32 }
          cleanup
  %1283 = extractvalue { ptr, i32 } %1282, 0
  store ptr %1283, ptr %14, align 8
  %1284 = extractvalue { ptr, i32 } %1282, 1
  store i32 %1284, ptr %15, align 4
  br label %1289

1285:                                             ; preds = %1246
  %1286 = landingpad { ptr, i32 }
          cleanup
  %1287 = extractvalue { ptr, i32 } %1286, 0
  store ptr %1287, ptr %14, align 8
  %1288 = extractvalue { ptr, i32 } %1286, 1
  store i32 %1288, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %87) #8
  br label %1289

1289:                                             ; preds = %1285, %1281
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %88) #8
  br label %1290

1290:                                             ; preds = %1289, %1277
  call void @llvm.lifetime.end.p0(i64 488, ptr %87) #8
  br label %5945

1291:                                             ; preds = %1249
  %1292 = landingpad { ptr, i32 }
          cleanup
  %1293 = extractvalue { ptr, i32 } %1292, 0
  store ptr %1293, ptr %14, align 8
  %1294 = extractvalue { ptr, i32 } %1292, 1
  store i32 %1294, ptr %15, align 4
  br label %1299

1295:                                             ; preds = %1253, %1251
  %1296 = landingpad { ptr, i32 }
          cleanup
  %1297 = extractvalue { ptr, i32 } %1296, 0
  store ptr %1297, ptr %14, align 8
  %1298 = extractvalue { ptr, i32 } %1296, 1
  store i32 %1298, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %89) #8
  br label %1299

1299:                                             ; preds = %1295, %1291
  call void @llvm.lifetime.end.p0(i64 88, ptr %89) #8
  br label %5945

1300:                                             ; preds = %1276, %1260
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  store i1 true, ptr %91, align 1
  %1303 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1304 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %90, i32 noundef 93)
          to label %1305 unwind label %1307

1305:                                             ; preds = %1302
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1303, ptr noundef nonnull align 8 dereferenceable(176) %1304, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %90)
          to label %1306 unwind label %1311

1306:                                             ; preds = %1305
  store i1 false, ptr %91, align 1
  invoke void @__cxa_throw(ptr %1303, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1311

1307:                                             ; preds = %1302
  %1308 = landingpad { ptr, i32 }
          cleanup
  %1309 = extractvalue { ptr, i32 } %1308, 0
  store ptr %1309, ptr %14, align 8
  %1310 = extractvalue { ptr, i32 } %1308, 1
  store i32 %1310, ptr %15, align 4
  br label %1315

1311:                                             ; preds = %1306, %1305
  %1312 = landingpad { ptr, i32 }
          cleanup
  %1313 = extractvalue { ptr, i32 } %1312, 0
  store ptr %1313, ptr %14, align 8
  %1314 = extractvalue { ptr, i32 } %1312, 1
  store i32 %1314, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %90) #8
  br label %1315

1315:                                             ; preds = %1311, %1307
  %1316 = load i1, ptr %91, align 1
  br i1 %1316, label %1317, label %1318

1317:                                             ; preds = %1315
  call void @__cxa_free_exception(ptr %1303) #8
  br label %1318

1318:                                             ; preds = %1317, %1315
  br label %5945

1319:                                             ; preds = %1255
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321
  call void @llvm.lifetime.start.p0(i64 88, ptr %92) #8
  %1323 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %92, ptr noundef nonnull align 8 dereferenceable(176) %1323)
          to label %1324 unwind label %1350

1324:                                             ; preds = %1322
  %1325 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %92)
          to label %1326 unwind label %1354

1326:                                             ; preds = %1324
  %1327 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1325)
          to label %1328 unwind label %1354

1328:                                             ; preds = %1326
  %1329 = icmp ne i32 %1327, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %92) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %92) #8
  br i1 %1329, label %1330, label %1378

1330:                                             ; preds = %1328
  br label %1331

1331:                                             ; preds = %1330
  %1332 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1333 unwind label %877

1333:                                             ; preds = %1331
  br i1 %1332, label %1334, label %1359

1334:                                             ; preds = %1333
  %1335 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1335, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1337 unwind label %877

1337:                                             ; preds = %1334
  %1338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1336, ptr noundef @.str.1)
          to label %1339 unwind label %877

1339:                                             ; preds = %1337
  %1340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1338, ptr noundef @.str.2)
          to label %1341 unwind label %877

1341:                                             ; preds = %1339
  %1342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1340, ptr noundef @.str.3)
          to label %1343 unwind label %877

1343:                                             ; preds = %1341
  %1344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1342, i32 noundef 1897)
          to label %1345 unwind label %877

1345:                                             ; preds = %1343
  %1346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1344, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1347 unwind label %877

1347:                                             ; preds = %1345
  %1348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1346, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1349 unwind label %877

1349:                                             ; preds = %1347
  br label %1359

1350:                                             ; preds = %1322
  %1351 = landingpad { ptr, i32 }
          cleanup
  %1352 = extractvalue { ptr, i32 } %1351, 0
  store ptr %1352, ptr %14, align 8
  %1353 = extractvalue { ptr, i32 } %1351, 1
  store i32 %1353, ptr %15, align 4
  br label %1358

1354:                                             ; preds = %1326, %1324
  %1355 = landingpad { ptr, i32 }
          cleanup
  %1356 = extractvalue { ptr, i32 } %1355, 0
  store ptr %1356, ptr %14, align 8
  %1357 = extractvalue { ptr, i32 } %1355, 1
  store i32 %1357, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %92) #8
  br label %1358

1358:                                             ; preds = %1354, %1350
  call void @llvm.lifetime.end.p0(i64 88, ptr %92) #8
  br label %5945

1359:                                             ; preds = %1349, %1333
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

1361:                                             ; preds = %1360
  store i1 true, ptr %94, align 1
  %1362 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1363 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %93, i32 noundef 14)
          to label %1364 unwind label %1366

1364:                                             ; preds = %1361
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1362, ptr noundef nonnull align 8 dereferenceable(176) %1363, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %93)
          to label %1365 unwind label %1370

1365:                                             ; preds = %1364
  store i1 false, ptr %94, align 1
  invoke void @__cxa_throw(ptr %1362, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1370

1366:                                             ; preds = %1361
  %1367 = landingpad { ptr, i32 }
          cleanup
  %1368 = extractvalue { ptr, i32 } %1367, 0
  store ptr %1368, ptr %14, align 8
  %1369 = extractvalue { ptr, i32 } %1367, 1
  store i32 %1369, ptr %15, align 4
  br label %1374

1370:                                             ; preds = %1365, %1364
  %1371 = landingpad { ptr, i32 }
          cleanup
  %1372 = extractvalue { ptr, i32 } %1371, 0
  store ptr %1372, ptr %14, align 8
  %1373 = extractvalue { ptr, i32 } %1371, 1
  store i32 %1373, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #8
  br label %1374

1374:                                             ; preds = %1370, %1366
  %1375 = load i1, ptr %94, align 1
  br i1 %1375, label %1376, label %1377

1376:                                             ; preds = %1374
  call void @__cxa_free_exception(ptr %1362) #8
  br label %1377

1377:                                             ; preds = %1376, %1374
  br label %5945

1378:                                             ; preds = %1328
  br label %1379

1379:                                             ; preds = %1378
  br label %1380

1380:                                             ; preds = %1379
  %1381 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1382 unwind label %877

1382:                                             ; preds = %1380
  %1383 = getelementptr inbounds %struct.Ident, ptr %1381, i32 0, i32 1
  %1384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %1383)
          to label %1385 unwind label %877

1385:                                             ; preds = %1382
  br label %1638

1386:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 488, ptr %95) #8
  %1387 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %96, i32 0, i32 0
  %1388 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1389 unwind label %1422

1389:                                             ; preds = %1386
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.RcString) align 8 %1387, ptr noundef nonnull align 8 dereferenceable(32) %1388)
          to label %1390 unwind label %1422

1390:                                             ; preds = %1389
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind writable sret(%"class.AST::Item") align 8 %95, ptr noundef %96)
          to label %1391 unwind label %1426

1391:                                             ; preds = %1390
  %1392 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %95)
          to label %1393 unwind label %1430

1393:                                             ; preds = %1391
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %95) #8
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %95) #8
  br label %1394

1394:                                             ; preds = %1393
  call void @llvm.lifetime.start.p0(i64 88, ptr %97) #8
  %1395 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %97, ptr noundef nonnull align 8 dereferenceable(176) %1395)
          to label %1396 unwind label %1436

1396:                                             ; preds = %1394
  %1397 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %97)
          to label %1398 unwind label %1440

1398:                                             ; preds = %1396
  %1399 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1397)
          to label %1400 unwind label %1440

1400:                                             ; preds = %1398
  %1401 = icmp ne i32 %1399, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %97) #8
  br i1 %1401, label %1402, label %1464

1402:                                             ; preds = %1400
  br label %1403

1403:                                             ; preds = %1402
  %1404 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1405 unwind label %877

1405:                                             ; preds = %1403
  br i1 %1404, label %1406, label %1445

1406:                                             ; preds = %1405
  %1407 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1407, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1409 unwind label %877

1409:                                             ; preds = %1406
  %1410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1408, ptr noundef @.str.1)
          to label %1411 unwind label %877

1411:                                             ; preds = %1409
  %1412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1410, ptr noundef @.str.2)
          to label %1413 unwind label %877

1413:                                             ; preds = %1411
  %1414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1412, ptr noundef @.str.3)
          to label %1415 unwind label %877

1415:                                             ; preds = %1413
  %1416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1414, i32 noundef 1904)
          to label %1417 unwind label %877

1417:                                             ; preds = %1415
  %1418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1416, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1419 unwind label %877

1419:                                             ; preds = %1417
  %1420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1418, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1421 unwind label %877

1421:                                             ; preds = %1419
  br label %1445

1422:                                             ; preds = %1389, %1386
  %1423 = landingpad { ptr, i32 }
          cleanup
  %1424 = extractvalue { ptr, i32 } %1423, 0
  store ptr %1424, ptr %14, align 8
  %1425 = extractvalue { ptr, i32 } %1423, 1
  store i32 %1425, ptr %15, align 4
  br label %1435

1426:                                             ; preds = %1390
  %1427 = landingpad { ptr, i32 }
          cleanup
  %1428 = extractvalue { ptr, i32 } %1427, 0
  store ptr %1428, ptr %14, align 8
  %1429 = extractvalue { ptr, i32 } %1427, 1
  store i32 %1429, ptr %15, align 4
  br label %1434

1430:                                             ; preds = %1391
  %1431 = landingpad { ptr, i32 }
          cleanup
  %1432 = extractvalue { ptr, i32 } %1431, 0
  store ptr %1432, ptr %14, align 8
  %1433 = extractvalue { ptr, i32 } %1431, 1
  store i32 %1433, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %95) #8
  br label %1434

1434:                                             ; preds = %1430, %1426
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #8
  br label %1435

1435:                                             ; preds = %1434, %1422
  call void @llvm.lifetime.end.p0(i64 488, ptr %95) #8
  br label %5945

1436:                                             ; preds = %1394
  %1437 = landingpad { ptr, i32 }
          cleanup
  %1438 = extractvalue { ptr, i32 } %1437, 0
  store ptr %1438, ptr %14, align 8
  %1439 = extractvalue { ptr, i32 } %1437, 1
  store i32 %1439, ptr %15, align 4
  br label %1444

1440:                                             ; preds = %1398, %1396
  %1441 = landingpad { ptr, i32 }
          cleanup
  %1442 = extractvalue { ptr, i32 } %1441, 0
  store ptr %1442, ptr %14, align 8
  %1443 = extractvalue { ptr, i32 } %1441, 1
  store i32 %1443, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #8
  br label %1444

1444:                                             ; preds = %1440, %1436
  call void @llvm.lifetime.end.p0(i64 88, ptr %97) #8
  br label %5945

1445:                                             ; preds = %1421, %1405
  br label %1446

1446:                                             ; preds = %1445
  br label %1447

1447:                                             ; preds = %1446
  store i1 true, ptr %99, align 1
  %1448 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1449 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %98, i32 noundef 93)
          to label %1450 unwind label %1452

1450:                                             ; preds = %1447
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1448, ptr noundef nonnull align 8 dereferenceable(176) %1449, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %98)
          to label %1451 unwind label %1456

1451:                                             ; preds = %1450
  store i1 false, ptr %99, align 1
  invoke void @__cxa_throw(ptr %1448, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1456

1452:                                             ; preds = %1447
  %1453 = landingpad { ptr, i32 }
          cleanup
  %1454 = extractvalue { ptr, i32 } %1453, 0
  store ptr %1454, ptr %14, align 8
  %1455 = extractvalue { ptr, i32 } %1453, 1
  store i32 %1455, ptr %15, align 4
  br label %1460

1456:                                             ; preds = %1451, %1450
  %1457 = landingpad { ptr, i32 }
          cleanup
  %1458 = extractvalue { ptr, i32 } %1457, 0
  store ptr %1458, ptr %14, align 8
  %1459 = extractvalue { ptr, i32 } %1457, 1
  store i32 %1459, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %98) #8
  br label %1460

1460:                                             ; preds = %1456, %1452
  %1461 = load i1, ptr %99, align 1
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1460
  call void @__cxa_free_exception(ptr %1448) #8
  br label %1463

1463:                                             ; preds = %1462, %1460
  br label %5945

1464:                                             ; preds = %1400
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

1467:                                             ; preds = %1466
  call void @llvm.lifetime.start.p0(i64 88, ptr %100) #8
  %1468 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %100, ptr noundef nonnull align 8 dereferenceable(176) %1468)
          to label %1469 unwind label %1495

1469:                                             ; preds = %1467
  %1470 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %100)
          to label %1471 unwind label %1499

1471:                                             ; preds = %1469
  %1472 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1470)
          to label %1473 unwind label %1499

1473:                                             ; preds = %1471
  %1474 = icmp ne i32 %1472, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %100) #8
  br i1 %1474, label %1475, label %1523

1475:                                             ; preds = %1473
  br label %1476

1476:                                             ; preds = %1475
  %1477 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1478 unwind label %877

1478:                                             ; preds = %1476
  br i1 %1477, label %1479, label %1504

1479:                                             ; preds = %1478
  %1480 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1480, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1482 unwind label %877

1482:                                             ; preds = %1479
  %1483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1481, ptr noundef @.str.1)
          to label %1484 unwind label %877

1484:                                             ; preds = %1482
  %1485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1483, ptr noundef @.str.2)
          to label %1486 unwind label %877

1486:                                             ; preds = %1484
  %1487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1485, ptr noundef @.str.3)
          to label %1488 unwind label %877

1488:                                             ; preds = %1486
  %1489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1487, i32 noundef 1905)
          to label %1490 unwind label %877

1490:                                             ; preds = %1488
  %1491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1489, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1492 unwind label %877

1492:                                             ; preds = %1490
  %1493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1491, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1494 unwind label %877

1494:                                             ; preds = %1492
  br label %1504

1495:                                             ; preds = %1467
  %1496 = landingpad { ptr, i32 }
          cleanup
  %1497 = extractvalue { ptr, i32 } %1496, 0
  store ptr %1497, ptr %14, align 8
  %1498 = extractvalue { ptr, i32 } %1496, 1
  store i32 %1498, ptr %15, align 4
  br label %1503

1499:                                             ; preds = %1471, %1469
  %1500 = landingpad { ptr, i32 }
          cleanup
  %1501 = extractvalue { ptr, i32 } %1500, 0
  store ptr %1501, ptr %14, align 8
  %1502 = extractvalue { ptr, i32 } %1500, 1
  store i32 %1502, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #8
  br label %1503

1503:                                             ; preds = %1499, %1495
  call void @llvm.lifetime.end.p0(i64 88, ptr %100) #8
  br label %5945

1504:                                             ; preds = %1494, %1478
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  store i1 true, ptr %102, align 1
  %1507 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1508 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %101, i32 noundef 14)
          to label %1509 unwind label %1511

1509:                                             ; preds = %1506
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1507, ptr noundef nonnull align 8 dereferenceable(176) %1508, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %101)
          to label %1510 unwind label %1515

1510:                                             ; preds = %1509
  store i1 false, ptr %102, align 1
  invoke void @__cxa_throw(ptr %1507, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1515

1511:                                             ; preds = %1506
  %1512 = landingpad { ptr, i32 }
          cleanup
  %1513 = extractvalue { ptr, i32 } %1512, 0
  store ptr %1513, ptr %14, align 8
  %1514 = extractvalue { ptr, i32 } %1512, 1
  store i32 %1514, ptr %15, align 4
  br label %1519

1515:                                             ; preds = %1510, %1509
  %1516 = landingpad { ptr, i32 }
          cleanup
  %1517 = extractvalue { ptr, i32 } %1516, 0
  store ptr %1517, ptr %14, align 8
  %1518 = extractvalue { ptr, i32 } %1516, 1
  store i32 %1518, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %101) #8
  br label %1519

1519:                                             ; preds = %1515, %1511
  %1520 = load i1, ptr %102, align 1
  br i1 %1520, label %1521, label %1522

1521:                                             ; preds = %1519
  call void @__cxa_free_exception(ptr %1507) #8
  br label %1522

1522:                                             ; preds = %1521, %1519
  br label %5945

1523:                                             ; preds = %1473
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  %1526 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1527 unwind label %877

1527:                                             ; preds = %1525
  %1528 = getelementptr inbounds %struct.Ident, ptr %1526, i32 0, i32 1
  %1529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %1528)
          to label %1530 unwind label %877

1530:                                             ; preds = %1527
  br label %1638

1531:                                             ; preds = %1233
  %1532 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1533 unwind label %877

1533:                                             ; preds = %1531
  %1534 = getelementptr inbounds %struct.Ident, ptr %1532, i32 0, i32 1
  %1535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %1534)
          to label %1536 unwind label %877

1536:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 88, ptr %103) #8
  %1537 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %103, ptr noundef nonnull align 8 dereferenceable(176) %1537)
          to label %1538 unwind label %1554

1538:                                             ; preds = %1536
  %1539 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %103)
          to label %1540 unwind label %1558

1540:                                             ; preds = %1538
  %1541 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1539)
          to label %1542 unwind label %1558

1542:                                             ; preds = %1540
  %1543 = icmp eq i32 %1541, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %103) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %103) #8
  br i1 %1543, label %1544, label %1586

1544:                                             ; preds = %1542
  call void @llvm.lifetime.start.p0(i64 488, ptr %104) #8
  %1545 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %105, i32 0, i32 0
  invoke void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %1545, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %1546 unwind label %1563

1546:                                             ; preds = %1544
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind writable sret(%"class.AST::Item") align 8 %104, ptr noundef %105)
          to label %1547 unwind label %1567

1547:                                             ; preds = %1546
  %1548 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %104)
          to label %1549 unwind label %1571

1549:                                             ; preds = %1547
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %104) #8
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %104) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %106) #8
  %1550 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind writable sret(%class.RcString) align 8 %106, ptr noundef nonnull align 8 dereferenceable(176) %1550)
          to label %1551 unwind label %1577

1551:                                             ; preds = %1549
  %1552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %106)
          to label %1553 unwind label %1581

1553:                                             ; preds = %1551
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  br label %1613

1554:                                             ; preds = %1536
  %1555 = landingpad { ptr, i32 }
          cleanup
  %1556 = extractvalue { ptr, i32 } %1555, 0
  store ptr %1556, ptr %14, align 8
  %1557 = extractvalue { ptr, i32 } %1555, 1
  store i32 %1557, ptr %15, align 4
  br label %1562

1558:                                             ; preds = %1540, %1538
  %1559 = landingpad { ptr, i32 }
          cleanup
  %1560 = extractvalue { ptr, i32 } %1559, 0
  store ptr %1560, ptr %14, align 8
  %1561 = extractvalue { ptr, i32 } %1559, 1
  store i32 %1561, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %103) #8
  br label %1562

1562:                                             ; preds = %1558, %1554
  call void @llvm.lifetime.end.p0(i64 88, ptr %103) #8
  br label %5945

1563:                                             ; preds = %1544
  %1564 = landingpad { ptr, i32 }
          cleanup
  %1565 = extractvalue { ptr, i32 } %1564, 0
  store ptr %1565, ptr %14, align 8
  %1566 = extractvalue { ptr, i32 } %1564, 1
  store i32 %1566, ptr %15, align 4
  br label %1576

1567:                                             ; preds = %1546
  %1568 = landingpad { ptr, i32 }
          cleanup
  %1569 = extractvalue { ptr, i32 } %1568, 0
  store ptr %1569, ptr %14, align 8
  %1570 = extractvalue { ptr, i32 } %1568, 1
  store i32 %1570, ptr %15, align 4
  br label %1575

1571:                                             ; preds = %1547
  %1572 = landingpad { ptr, i32 }
          cleanup
  %1573 = extractvalue { ptr, i32 } %1572, 0
  store ptr %1573, ptr %14, align 8
  %1574 = extractvalue { ptr, i32 } %1572, 1
  store i32 %1574, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %104) #8
  br label %1575

1575:                                             ; preds = %1571, %1567
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %105) #8
  br label %1576

1576:                                             ; preds = %1575, %1563
  call void @llvm.lifetime.end.p0(i64 488, ptr %104) #8
  br label %5945

1577:                                             ; preds = %1549
  %1578 = landingpad { ptr, i32 }
          cleanup
  %1579 = extractvalue { ptr, i32 } %1578, 0
  store ptr %1579, ptr %14, align 8
  %1580 = extractvalue { ptr, i32 } %1578, 1
  store i32 %1580, ptr %15, align 4
  br label %1585

1581:                                             ; preds = %1551
  %1582 = landingpad { ptr, i32 }
          cleanup
  %1583 = extractvalue { ptr, i32 } %1582, 0
  store ptr %1583, ptr %14, align 8
  %1584 = extractvalue { ptr, i32 } %1582, 1
  store i32 %1584, ptr %15, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %106) #8
  br label %1585

1585:                                             ; preds = %1581, %1577
  call void @llvm.lifetime.end.p0(i64 8, ptr %106) #8
  br label %5945

1586:                                             ; preds = %1542
  %1587 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %107, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1588 unwind label %877

1588:                                             ; preds = %1586
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1587, ptr noundef %107)
          to label %1589 unwind label %1595

1589:                                             ; preds = %1588
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %107) #8
  call void @llvm.lifetime.start.p0(i64 488, ptr %108) #8
  %1590 = getelementptr inbounds %"struct.AST::Item::Data_Crate", ptr %109, i32 0, i32 0
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %1590, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %1591 unwind label %1599

1591:                                             ; preds = %1589
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind writable sret(%"class.AST::Item") align 8 %108, ptr noundef %109)
          to label %1592 unwind label %1603

1592:                                             ; preds = %1591
  %1593 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %108)
          to label %1594 unwind label %1607

1594:                                             ; preds = %1592
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %108) #8
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %108) #8
  br label %1613

1595:                                             ; preds = %1588
  %1596 = landingpad { ptr, i32 }
          cleanup
  %1597 = extractvalue { ptr, i32 } %1596, 0
  store ptr %1597, ptr %14, align 8
  %1598 = extractvalue { ptr, i32 } %1596, 1
  store i32 %1598, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %107) #8
  br label %5945

1599:                                             ; preds = %1589
  %1600 = landingpad { ptr, i32 }
          cleanup
  %1601 = extractvalue { ptr, i32 } %1600, 0
  store ptr %1601, ptr %14, align 8
  %1602 = extractvalue { ptr, i32 } %1600, 1
  store i32 %1602, ptr %15, align 4
  br label %1612

1603:                                             ; preds = %1591
  %1604 = landingpad { ptr, i32 }
          cleanup
  %1605 = extractvalue { ptr, i32 } %1604, 0
  store ptr %1605, ptr %14, align 8
  %1606 = extractvalue { ptr, i32 } %1604, 1
  store i32 %1606, ptr %15, align 4
  br label %1611

1607:                                             ; preds = %1592
  %1608 = landingpad { ptr, i32 }
          cleanup
  %1609 = extractvalue { ptr, i32 } %1608, 0
  store ptr %1609, ptr %14, align 8
  %1610 = extractvalue { ptr, i32 } %1608, 1
  store i32 %1610, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %108) #8
  br label %1611

1611:                                             ; preds = %1607, %1603
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %109) #8
  br label %1612

1612:                                             ; preds = %1611, %1599
  call void @llvm.lifetime.end.p0(i64 488, ptr %108) #8
  br label %5945

1613:                                             ; preds = %1594, %1553
  br label %1638

1614:                                             ; preds = %1233
  store i1 true, ptr %114, align 1
  %1615 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1616 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %112) #8
  store i32 19, ptr %112, align 4, !tbaa !13
  %1617 = getelementptr inbounds i32, ptr %112, i64 1
  store i32 14, ptr %1617, align 4, !tbaa !13
  %1618 = getelementptr inbounds %"class.std::initializer_list", ptr %111, i32 0, i32 0
  store ptr %112, ptr %1618, align 8, !tbaa !15
  %1619 = getelementptr inbounds %"class.std::initializer_list", ptr %111, i32 0, i32 1
  store i64 2, ptr %1619, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %113) #8
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  %1620 = getelementptr inbounds { ptr, i64 }, ptr %111, i32 0, i32 0
  %1621 = load ptr, ptr %1620, align 8
  %1622 = getelementptr inbounds { ptr, i64 }, ptr %111, i32 0, i32 1
  %1623 = load i64, ptr %1622, align 8
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr %1621, i64 %1623, ptr noundef nonnull align 1 dereferenceable(1) %113)
          to label %1624 unwind label %1626

1624:                                             ; preds = %1614
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %1615, ptr noundef nonnull align 8 dereferenceable(176) %1616, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %110)
          to label %1625 unwind label %1630

1625:                                             ; preds = %1624
  store i1 false, ptr %114, align 1
  invoke void @__cxa_throw(ptr %1615, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1630

1626:                                             ; preds = %1614
  %1627 = landingpad { ptr, i32 }
          cleanup
  %1628 = extractvalue { ptr, i32 } %1627, 0
  store ptr %1628, ptr %14, align 8
  %1629 = extractvalue { ptr, i32 } %1627, 1
  store i32 %1629, ptr %15, align 4
  br label %1634

1630:                                             ; preds = %1625, %1624
  %1631 = landingpad { ptr, i32 }
          cleanup
  %1632 = extractvalue { ptr, i32 } %1631, 0
  store ptr %1632, ptr %14, align 8
  %1633 = extractvalue { ptr, i32 } %1631, 1
  store i32 %1633, ptr %15, align 4
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %110) #8
  br label %1634

1634:                                             ; preds = %1630, %1626
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %113) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %113) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %112) #8
  %1635 = load i1, ptr %114, align 1
  br i1 %1635, label %1636, label %1637

1636:                                             ; preds = %1634
  call void @__cxa_free_exception(ptr %1615) #8
  br label %1637

1637:                                             ; preds = %1636, %1634
  br label %5945

1638:                                             ; preds = %1613, %1530, %1385
  br label %1639

1639:                                             ; preds = %1638
  call void @llvm.lifetime.start.p0(i64 88, ptr %115) #8
  %1640 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %115, ptr noundef nonnull align 8 dereferenceable(176) %1640)
          to label %1641 unwind label %1667

1641:                                             ; preds = %1639
  %1642 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %115)
          to label %1643 unwind label %1671

1643:                                             ; preds = %1641
  %1644 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1642)
          to label %1645 unwind label %1671

1645:                                             ; preds = %1643
  %1646 = icmp ne i32 %1644, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %115) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %115) #8
  br i1 %1646, label %1647, label %1695

1647:                                             ; preds = %1645
  br label %1648

1648:                                             ; preds = %1647
  %1649 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1650 unwind label %877

1650:                                             ; preds = %1648
  br i1 %1649, label %1651, label %1676

1651:                                             ; preds = %1650
  %1652 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1652, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1654 unwind label %877

1654:                                             ; preds = %1651
  %1655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1653, ptr noundef @.str.1)
          to label %1656 unwind label %877

1656:                                             ; preds = %1654
  %1657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1655, ptr noundef @.str.2)
          to label %1658 unwind label %877

1658:                                             ; preds = %1656
  %1659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1657, ptr noundef @.str.3)
          to label %1660 unwind label %877

1660:                                             ; preds = %1658
  %1661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1659, i32 noundef 1925)
          to label %1662 unwind label %877

1662:                                             ; preds = %1660
  %1663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1661, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1664 unwind label %877

1664:                                             ; preds = %1662
  %1665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1663, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1666 unwind label %877

1666:                                             ; preds = %1664
  br label %1676

1667:                                             ; preds = %1639
  %1668 = landingpad { ptr, i32 }
          cleanup
  %1669 = extractvalue { ptr, i32 } %1668, 0
  store ptr %1669, ptr %14, align 8
  %1670 = extractvalue { ptr, i32 } %1668, 1
  store i32 %1670, ptr %15, align 4
  br label %1675

1671:                                             ; preds = %1643, %1641
  %1672 = landingpad { ptr, i32 }
          cleanup
  %1673 = extractvalue { ptr, i32 } %1672, 0
  store ptr %1673, ptr %14, align 8
  %1674 = extractvalue { ptr, i32 } %1672, 1
  store i32 %1674, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %115) #8
  br label %1675

1675:                                             ; preds = %1671, %1667
  call void @llvm.lifetime.end.p0(i64 88, ptr %115) #8
  br label %5945

1676:                                             ; preds = %1666, %1650
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  store i1 true, ptr %117, align 1
  %1679 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1680 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %116, i32 noundef 32)
          to label %1681 unwind label %1683

1681:                                             ; preds = %1678
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1679, ptr noundef nonnull align 8 dereferenceable(176) %1680, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %116)
          to label %1682 unwind label %1687

1682:                                             ; preds = %1681
  store i1 false, ptr %117, align 1
  invoke void @__cxa_throw(ptr %1679, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1687

1683:                                             ; preds = %1678
  %1684 = landingpad { ptr, i32 }
          cleanup
  %1685 = extractvalue { ptr, i32 } %1684, 0
  store ptr %1685, ptr %14, align 8
  %1686 = extractvalue { ptr, i32 } %1684, 1
  store i32 %1686, ptr %15, align 4
  br label %1691

1687:                                             ; preds = %1682, %1681
  %1688 = landingpad { ptr, i32 }
          cleanup
  %1689 = extractvalue { ptr, i32 } %1688, 0
  store ptr %1689, ptr %14, align 8
  %1690 = extractvalue { ptr, i32 } %1688, 1
  store i32 %1690, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %116) #8
  br label %1691

1691:                                             ; preds = %1687, %1683
  %1692 = load i1, ptr %117, align 1
  br i1 %1692, label %1693, label %1694

1693:                                             ; preds = %1691
  call void @__cxa_free_exception(ptr %1679) #8
  br label %1694

1694:                                             ; preds = %1693, %1691
  br label %5945

1695:                                             ; preds = %1645
  br label %1696

1696:                                             ; preds = %1695
  br label %1697

1697:                                             ; preds = %1696
  br label %1724

1698:                                             ; preds = %909
  store i1 true, ptr %122, align 1
  %1699 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1700 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %120) #8
  store i32 19, ptr %120, align 4, !tbaa !13
  %1701 = getelementptr inbounds i32, ptr %120, i64 1
  store i32 88, ptr %1701, align 4, !tbaa !13
  %1702 = getelementptr inbounds i32, ptr %120, i64 2
  store i32 25, ptr %1702, align 4, !tbaa !13
  %1703 = getelementptr inbounds i32, ptr %120, i64 3
  store i32 83, ptr %1703, align 4, !tbaa !13
  %1704 = getelementptr inbounds %"class.std::initializer_list", ptr %119, i32 0, i32 0
  store ptr %120, ptr %1704, align 8, !tbaa !15
  %1705 = getelementptr inbounds %"class.std::initializer_list", ptr %119, i32 0, i32 1
  store i64 4, ptr %1705, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %121) #8
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  %1706 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 0
  %1707 = load ptr, ptr %1706, align 8
  %1708 = getelementptr inbounds { ptr, i64 }, ptr %119, i32 0, i32 1
  %1709 = load i64, ptr %1708, align 8
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %118, ptr %1707, i64 %1709, ptr noundef nonnull align 1 dereferenceable(1) %121)
          to label %1710 unwind label %1712

1710:                                             ; preds = %1698
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %1699, ptr noundef nonnull align 8 dereferenceable(176) %1700, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %118)
          to label %1711 unwind label %1716

1711:                                             ; preds = %1710
  store i1 false, ptr %122, align 1
  invoke void @__cxa_throw(ptr %1699, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1716

1712:                                             ; preds = %1698
  %1713 = landingpad { ptr, i32 }
          cleanup
  %1714 = extractvalue { ptr, i32 } %1713, 0
  store ptr %1714, ptr %14, align 8
  %1715 = extractvalue { ptr, i32 } %1713, 1
  store i32 %1715, ptr %15, align 4
  br label %1720

1716:                                             ; preds = %1711, %1710
  %1717 = landingpad { ptr, i32 }
          cleanup
  %1718 = extractvalue { ptr, i32 } %1717, 0
  store ptr %1718, ptr %14, align 8
  %1719 = extractvalue { ptr, i32 } %1717, 1
  store i32 %1719, ptr %15, align 4
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %118) #8
  br label %1720

1720:                                             ; preds = %1716, %1712
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %121) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %121) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %120) #8
  %1721 = load i1, ptr %122, align 1
  br i1 %1721, label %1722, label %1723

1722:                                             ; preds = %1720
  call void @__cxa_free_exception(ptr %1699) #8
  br label %1723

1723:                                             ; preds = %1722, %1720
  br label %5945

1724:                                             ; preds = %1697, %1198, %1169, %1094
  br label %5924

1725:                                             ; preds = %796
  call void @llvm.lifetime.start.p0(i64 88, ptr %123) #8
  %1726 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %123, ptr noundef nonnull align 8 dereferenceable(176) %1726)
          to label %1727 unwind label %1732

1727:                                             ; preds = %1725
  %1728 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %123)
          to label %1729 unwind label %1736

1729:                                             ; preds = %1727
  %1730 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1728)
          to label %1731 unwind label %1736

1731:                                             ; preds = %1729
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %123) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %123) #8
  switch i32 %1730, label %2462 [
    i32 22, label %1741
    i32 14, label %1741
    i32 81, label %1987
    i32 82, label %2154
    i32 88, label %2368
  ]

1732:                                             ; preds = %1725
  %1733 = landingpad { ptr, i32 }
          cleanup
  %1734 = extractvalue { ptr, i32 } %1733, 0
  store ptr %1734, ptr %14, align 8
  %1735 = extractvalue { ptr, i32 } %1733, 1
  store i32 %1735, ptr %15, align 4
  br label %1740

1736:                                             ; preds = %1729, %1727
  %1737 = landingpad { ptr, i32 }
          cleanup
  %1738 = extractvalue { ptr, i32 } %1737, 0
  store ptr %1738, ptr %14, align 8
  %1739 = extractvalue { ptr, i32 } %1737, 1
  store i32 %1739, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %123) #8
  br label %1740

1740:                                             ; preds = %1736, %1732
  call void @llvm.lifetime.end.p0(i64 88, ptr %123) #8
  br label %5945

1741:                                             ; preds = %1731, %1731
  %1742 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %124, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %1743 unwind label %877

1743:                                             ; preds = %1741
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1742, ptr noundef %124)
          to label %1744 unwind label %1777

1744:                                             ; preds = %1743
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %124) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %125) #8
  %1745 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind writable sret(%class.RcString) align 8 %125, ptr noundef nonnull align 8 dereferenceable(176) %1745)
          to label %1746 unwind label %1781

1746:                                             ; preds = %1744
  %1747 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %125)
          to label %1748 unwind label %1785

1748:                                             ; preds = %1746
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  br label %1749

1749:                                             ; preds = %1748
  call void @llvm.lifetime.start.p0(i64 88, ptr %126) #8
  %1750 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %126, ptr noundef nonnull align 8 dereferenceable(176) %1750)
          to label %1751 unwind label %1790

1751:                                             ; preds = %1749
  %1752 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %126)
          to label %1753 unwind label %1794

1753:                                             ; preds = %1751
  %1754 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1752)
          to label %1755 unwind label %1794

1755:                                             ; preds = %1753
  %1756 = icmp ne i32 %1754, 33
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %126) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %126) #8
  br i1 %1756, label %1757, label %1818

1757:                                             ; preds = %1755
  br label %1758

1758:                                             ; preds = %1757
  %1759 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1760 unwind label %877

1760:                                             ; preds = %1758
  br i1 %1759, label %1761, label %1799

1761:                                             ; preds = %1760
  %1762 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1763 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1762, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1764 unwind label %877

1764:                                             ; preds = %1761
  %1765 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1763, ptr noundef @.str.1)
          to label %1766 unwind label %877

1766:                                             ; preds = %1764
  %1767 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1765, ptr noundef @.str.2)
          to label %1768 unwind label %877

1768:                                             ; preds = %1766
  %1769 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1767, ptr noundef @.str.3)
          to label %1770 unwind label %877

1770:                                             ; preds = %1768
  %1771 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1769, i32 noundef 1942)
          to label %1772 unwind label %877

1772:                                             ; preds = %1770
  %1773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1771, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1774 unwind label %877

1774:                                             ; preds = %1772
  %1775 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1773, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1776 unwind label %877

1776:                                             ; preds = %1774
  br label %1799

1777:                                             ; preds = %1743
  %1778 = landingpad { ptr, i32 }
          cleanup
  %1779 = extractvalue { ptr, i32 } %1778, 0
  store ptr %1779, ptr %14, align 8
  %1780 = extractvalue { ptr, i32 } %1778, 1
  store i32 %1780, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %124) #8
  br label %5945

1781:                                             ; preds = %1744
  %1782 = landingpad { ptr, i32 }
          cleanup
  %1783 = extractvalue { ptr, i32 } %1782, 0
  store ptr %1783, ptr %14, align 8
  %1784 = extractvalue { ptr, i32 } %1782, 1
  store i32 %1784, ptr %15, align 4
  br label %1789

1785:                                             ; preds = %1746
  %1786 = landingpad { ptr, i32 }
          cleanup
  %1787 = extractvalue { ptr, i32 } %1786, 0
  store ptr %1787, ptr %14, align 8
  %1788 = extractvalue { ptr, i32 } %1786, 1
  store i32 %1788, ptr %15, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %125) #8
  br label %1789

1789:                                             ; preds = %1785, %1781
  call void @llvm.lifetime.end.p0(i64 8, ptr %125) #8
  br label %5945

1790:                                             ; preds = %1749
  %1791 = landingpad { ptr, i32 }
          cleanup
  %1792 = extractvalue { ptr, i32 } %1791, 0
  store ptr %1792, ptr %14, align 8
  %1793 = extractvalue { ptr, i32 } %1791, 1
  store i32 %1793, ptr %15, align 4
  br label %1798

1794:                                             ; preds = %1753, %1751
  %1795 = landingpad { ptr, i32 }
          cleanup
  %1796 = extractvalue { ptr, i32 } %1795, 0
  store ptr %1796, ptr %14, align 8
  %1797 = extractvalue { ptr, i32 } %1795, 1
  store i32 %1797, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %126) #8
  br label %1798

1798:                                             ; preds = %1794, %1790
  call void @llvm.lifetime.end.p0(i64 88, ptr %126) #8
  br label %5945

1799:                                             ; preds = %1776, %1760
  br label %1800

1800:                                             ; preds = %1799
  br label %1801

1801:                                             ; preds = %1800
  store i1 true, ptr %128, align 1
  %1802 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1803 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %127, i32 noundef 33)
          to label %1804 unwind label %1806

1804:                                             ; preds = %1801
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1802, ptr noundef nonnull align 8 dereferenceable(176) %1803, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %127)
          to label %1805 unwind label %1810

1805:                                             ; preds = %1804
  store i1 false, ptr %128, align 1
  invoke void @__cxa_throw(ptr %1802, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1810

1806:                                             ; preds = %1801
  %1807 = landingpad { ptr, i32 }
          cleanup
  %1808 = extractvalue { ptr, i32 } %1807, 0
  store ptr %1808, ptr %14, align 8
  %1809 = extractvalue { ptr, i32 } %1807, 1
  store i32 %1809, ptr %15, align 4
  br label %1814

1810:                                             ; preds = %1805, %1804
  %1811 = landingpad { ptr, i32 }
          cleanup
  %1812 = extractvalue { ptr, i32 } %1811, 0
  store ptr %1812, ptr %14, align 8
  %1813 = extractvalue { ptr, i32 } %1811, 1
  store i32 %1813, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %127) #8
  br label %1814

1814:                                             ; preds = %1810, %1806
  %1815 = load i1, ptr %128, align 1
  br i1 %1815, label %1816, label %1817

1816:                                             ; preds = %1814
  call void @__cxa_free_exception(ptr %1802) #8
  br label %1817

1817:                                             ; preds = %1816, %1814
  br label %5945

1818:                                             ; preds = %1755
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819
  call void @llvm.lifetime.start.p0(i64 120, ptr %129) #8
  %1821 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z10Parse_TypeR11TokenStreamb(ptr dead_on_unwind writable sret(%class.TypeRef) align 8 %129, ptr noundef nonnull align 8 dereferenceable(176) %1821, i1 noundef zeroext true)
          to label %1822 unwind label %1851

1822:                                             ; preds = %1820
  br label %1823

1823:                                             ; preds = %1822
  call void @llvm.lifetime.start.p0(i64 88, ptr %130) #8
  %1824 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %130, ptr noundef nonnull align 8 dereferenceable(176) %1824)
          to label %1825 unwind label %1855

1825:                                             ; preds = %1823
  %1826 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %130)
          to label %1827 unwind label %1859

1827:                                             ; preds = %1825
  %1828 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1826)
          to label %1829 unwind label %1859

1829:                                             ; preds = %1827
  %1830 = icmp ne i32 %1828, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %130) #8
  br i1 %1830, label %1831, label %1887

1831:                                             ; preds = %1829
  br label %1832

1832:                                             ; preds = %1831
  %1833 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1834 unwind label %1864

1834:                                             ; preds = %1832
  br i1 %1833, label %1835, label %1868

1835:                                             ; preds = %1834
  %1836 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1837 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1836, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1838 unwind label %1864

1838:                                             ; preds = %1835
  %1839 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1837, ptr noundef @.str.1)
          to label %1840 unwind label %1864

1840:                                             ; preds = %1838
  %1841 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1839, ptr noundef @.str.2)
          to label %1842 unwind label %1864

1842:                                             ; preds = %1840
  %1843 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1841, ptr noundef @.str.3)
          to label %1844 unwind label %1864

1844:                                             ; preds = %1842
  %1845 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1843, i32 noundef 1944)
          to label %1846 unwind label %1864

1846:                                             ; preds = %1844
  %1847 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1845, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1848 unwind label %1864

1848:                                             ; preds = %1846
  %1849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1847, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1850 unwind label %1864

1850:                                             ; preds = %1848
  br label %1868

1851:                                             ; preds = %1820
  %1852 = landingpad { ptr, i32 }
          cleanup
  %1853 = extractvalue { ptr, i32 } %1852, 0
  store ptr %1853, ptr %14, align 8
  %1854 = extractvalue { ptr, i32 } %1852, 1
  store i32 %1854, ptr %15, align 4
  br label %1986

1855:                                             ; preds = %1823
  %1856 = landingpad { ptr, i32 }
          cleanup
  %1857 = extractvalue { ptr, i32 } %1856, 0
  store ptr %1857, ptr %14, align 8
  %1858 = extractvalue { ptr, i32 } %1856, 1
  store i32 %1858, ptr %15, align 4
  br label %1863

1859:                                             ; preds = %1827, %1825
  %1860 = landingpad { ptr, i32 }
          cleanup
  %1861 = extractvalue { ptr, i32 } %1860, 0
  store ptr %1861, ptr %14, align 8
  %1862 = extractvalue { ptr, i32 } %1860, 1
  store i32 %1862, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #8
  br label %1863

1863:                                             ; preds = %1859, %1855
  call void @llvm.lifetime.end.p0(i64 88, ptr %130) #8
  br label %1985

1864:                                             ; preds = %1848, %1846, %1844, %1842, %1840, %1838, %1835, %1832
  %1865 = landingpad { ptr, i32 }
          cleanup
  %1866 = extractvalue { ptr, i32 } %1865, 0
  store ptr %1866, ptr %14, align 8
  %1867 = extractvalue { ptr, i32 } %1865, 1
  store i32 %1867, ptr %15, align 4
  br label %1985

1868:                                             ; preds = %1850, %1834
  br label %1869

1869:                                             ; preds = %1868
  br label %1870

1870:                                             ; preds = %1869
  store i1 true, ptr %132, align 1
  %1871 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1872 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %131, i32 noundef 50)
          to label %1873 unwind label %1875

1873:                                             ; preds = %1870
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1871, ptr noundef nonnull align 8 dereferenceable(176) %1872, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %131)
          to label %1874 unwind label %1879

1874:                                             ; preds = %1873
  store i1 false, ptr %132, align 1
  invoke void @__cxa_throw(ptr %1871, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1879

1875:                                             ; preds = %1870
  %1876 = landingpad { ptr, i32 }
          cleanup
  %1877 = extractvalue { ptr, i32 } %1876, 0
  store ptr %1877, ptr %14, align 8
  %1878 = extractvalue { ptr, i32 } %1876, 1
  store i32 %1878, ptr %15, align 4
  br label %1883

1879:                                             ; preds = %1874, %1873
  %1880 = landingpad { ptr, i32 }
          cleanup
  %1881 = extractvalue { ptr, i32 } %1880, 0
  store ptr %1881, ptr %14, align 8
  %1882 = extractvalue { ptr, i32 } %1880, 1
  store i32 %1882, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %131) #8
  br label %1883

1883:                                             ; preds = %1879, %1875
  %1884 = load i1, ptr %132, align 1
  br i1 %1884, label %1885, label %1886

1885:                                             ; preds = %1883
  call void @__cxa_free_exception(ptr %1871) #8
  br label %1886

1886:                                             ; preds = %1885, %1883
  br label %1985

1887:                                             ; preds = %1829
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888
  call void @llvm.lifetime.start.p0(i64 16, ptr %133) #8
  %1890 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z10Parse_ExprR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::Expr") align 8 %133, ptr noundef nonnull align 8 dereferenceable(176) %1890)
          to label %1891 unwind label %1920

1891:                                             ; preds = %1889
  br label %1892

1892:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 88, ptr %134) #8
  %1893 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %134, ptr noundef nonnull align 8 dereferenceable(176) %1893)
          to label %1894 unwind label %1924

1894:                                             ; preds = %1892
  %1895 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %134)
          to label %1896 unwind label %1928

1896:                                             ; preds = %1894
  %1897 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1895)
          to label %1898 unwind label %1928

1898:                                             ; preds = %1896
  %1899 = icmp ne i32 %1897, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %134) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %134) #8
  br i1 %1899, label %1900, label %1956

1900:                                             ; preds = %1898
  br label %1901

1901:                                             ; preds = %1900
  %1902 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1903 unwind label %1933

1903:                                             ; preds = %1901
  br i1 %1902, label %1904, label %1937

1904:                                             ; preds = %1903
  %1905 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1906 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1905, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1907 unwind label %1933

1907:                                             ; preds = %1904
  %1908 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1906, ptr noundef @.str.1)
          to label %1909 unwind label %1933

1909:                                             ; preds = %1907
  %1910 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1908, ptr noundef @.str.2)
          to label %1911 unwind label %1933

1911:                                             ; preds = %1909
  %1912 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1910, ptr noundef @.str.3)
          to label %1913 unwind label %1933

1913:                                             ; preds = %1911
  %1914 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1912, i32 noundef 1946)
          to label %1915 unwind label %1933

1915:                                             ; preds = %1913
  %1916 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1914, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1917 unwind label %1933

1917:                                             ; preds = %1915
  %1918 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1916, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1919 unwind label %1933

1919:                                             ; preds = %1917
  br label %1937

1920:                                             ; preds = %1889
  %1921 = landingpad { ptr, i32 }
          cleanup
  %1922 = extractvalue { ptr, i32 } %1921, 0
  store ptr %1922, ptr %14, align 8
  %1923 = extractvalue { ptr, i32 } %1921, 1
  store i32 %1923, ptr %15, align 4
  br label %1984

1924:                                             ; preds = %1892
  %1925 = landingpad { ptr, i32 }
          cleanup
  %1926 = extractvalue { ptr, i32 } %1925, 0
  store ptr %1926, ptr %14, align 8
  %1927 = extractvalue { ptr, i32 } %1925, 1
  store i32 %1927, ptr %15, align 4
  br label %1932

1928:                                             ; preds = %1896, %1894
  %1929 = landingpad { ptr, i32 }
          cleanup
  %1930 = extractvalue { ptr, i32 } %1929, 0
  store ptr %1930, ptr %14, align 8
  %1931 = extractvalue { ptr, i32 } %1929, 1
  store i32 %1931, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %134) #8
  br label %1932

1932:                                             ; preds = %1928, %1924
  call void @llvm.lifetime.end.p0(i64 88, ptr %134) #8
  br label %1983

1933:                                             ; preds = %1917, %1915, %1913, %1911, %1909, %1907, %1904, %1901
  %1934 = landingpad { ptr, i32 }
          cleanup
  %1935 = extractvalue { ptr, i32 } %1934, 0
  store ptr %1935, ptr %14, align 8
  %1936 = extractvalue { ptr, i32 } %1934, 1
  store i32 %1936, ptr %15, align 4
  br label %1983

1937:                                             ; preds = %1919, %1903
  br label %1938

1938:                                             ; preds = %1937
  br label %1939

1939:                                             ; preds = %1938
  store i1 true, ptr %136, align 1
  %1940 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1941 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %135, i32 noundef 32)
          to label %1942 unwind label %1944

1942:                                             ; preds = %1939
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1940, ptr noundef nonnull align 8 dereferenceable(176) %1941, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %135)
          to label %1943 unwind label %1948

1943:                                             ; preds = %1942
  store i1 false, ptr %136, align 1
  invoke void @__cxa_throw(ptr %1940, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %1948

1944:                                             ; preds = %1939
  %1945 = landingpad { ptr, i32 }
          cleanup
  %1946 = extractvalue { ptr, i32 } %1945, 0
  store ptr %1946, ptr %14, align 8
  %1947 = extractvalue { ptr, i32 } %1945, 1
  store i32 %1947, ptr %15, align 4
  br label %1952

1948:                                             ; preds = %1943, %1942
  %1949 = landingpad { ptr, i32 }
          cleanup
  %1950 = extractvalue { ptr, i32 } %1949, 0
  store ptr %1950, ptr %14, align 8
  %1951 = extractvalue { ptr, i32 } %1949, 1
  store i32 %1951, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %135) #8
  br label %1952

1952:                                             ; preds = %1948, %1944
  %1953 = load i1, ptr %136, align 1
  br i1 %1953, label %1954, label %1955

1954:                                             ; preds = %1952
  call void @__cxa_free_exception(ptr %1940) #8
  br label %1955

1955:                                             ; preds = %1954, %1952
  br label %1983

1956:                                             ; preds = %1898
  br label %1957

1957:                                             ; preds = %1956
  br label %1958

1958:                                             ; preds = %1957
  call void @llvm.lifetime.start.p0(i64 488, ptr %137) #8
  invoke void @_ZN7TypeRefC2EOS_(ptr noundef nonnull align 8 dereferenceable(120) %139, ptr noundef nonnull align 8 dereferenceable(120) %129)
          to label %1959 unwind label %1964

1959:                                             ; preds = %1958
  call void @_ZN3AST4ExprC2EOS0_(ptr noundef nonnull align 8 dereferenceable(16) %140, ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  invoke void @_ZN3AST6StaticC2ENS0_5ClassE7TypeRefNS_4ExprE(ptr noundef nonnull align 8 dereferenceable(216) %138, i32 noundef 0, ptr noundef %139, ptr noundef %140)
          to label %1960 unwind label %1968

1960:                                             ; preds = %1959
  invoke void @_ZN3AST4ItemC2ENS_6StaticE(ptr noundef nonnull align 8 dereferenceable(488) %137, ptr noundef %138)
          to label %1961 unwind label %1972

1961:                                             ; preds = %1960
  %1962 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %137)
          to label %1963 unwind label %1976

1963:                                             ; preds = %1961
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %137) #8
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %138) #8
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %140) #8
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %139) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %137) #8
  store i32 54, ptr %33, align 4
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %133) #8
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %129) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr %129) #8
  br label %2488

1964:                                             ; preds = %1958
  %1965 = landingpad { ptr, i32 }
          cleanup
  %1966 = extractvalue { ptr, i32 } %1965, 0
  store ptr %1966, ptr %14, align 8
  %1967 = extractvalue { ptr, i32 } %1965, 1
  store i32 %1967, ptr %15, align 4
  br label %1982

1968:                                             ; preds = %1959
  %1969 = landingpad { ptr, i32 }
          cleanup
  %1970 = extractvalue { ptr, i32 } %1969, 0
  store ptr %1970, ptr %14, align 8
  %1971 = extractvalue { ptr, i32 } %1969, 1
  store i32 %1971, ptr %15, align 4
  br label %1981

1972:                                             ; preds = %1960
  %1973 = landingpad { ptr, i32 }
          cleanup
  %1974 = extractvalue { ptr, i32 } %1973, 0
  store ptr %1974, ptr %14, align 8
  %1975 = extractvalue { ptr, i32 } %1973, 1
  store i32 %1975, ptr %15, align 4
  br label %1980

1976:                                             ; preds = %1961
  %1977 = landingpad { ptr, i32 }
          cleanup
  %1978 = extractvalue { ptr, i32 } %1977, 0
  store ptr %1978, ptr %14, align 8
  %1979 = extractvalue { ptr, i32 } %1977, 1
  store i32 %1979, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %137) #8
  br label %1980

1980:                                             ; preds = %1976, %1972
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %138) #8
  br label %1981

1981:                                             ; preds = %1980, %1968
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %140) #8
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %139) #8
  br label %1982

1982:                                             ; preds = %1981, %1964
  call void @llvm.lifetime.end.p0(i64 488, ptr %137) #8
  br label %1983

1983:                                             ; preds = %1982, %1955, %1933, %1932
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #8
  br label %1984

1984:                                             ; preds = %1983, %1920
  call void @llvm.lifetime.end.p0(i64 16, ptr %133) #8
  br label %1985

1985:                                             ; preds = %1984, %1886, %1864, %1863
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %129) #8
  br label %1986

1986:                                             ; preds = %1985, %1851
  call void @llvm.lifetime.end.p0(i64 120, ptr %129) #8
  br label %5945

1987:                                             ; preds = %1731
  call void @llvm.lifetime.start.p0(i64 32, ptr %141) #8
  %1988 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H10opt_externB5cxx11ER5TokenS0_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %141, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(176) %1988)
          to label %1989 unwind label %2018

1989:                                             ; preds = %1987
  br label %1990

1990:                                             ; preds = %1989
  call void @llvm.lifetime.start.p0(i64 88, ptr %142) #8
  %1991 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %142, ptr noundef nonnull align 8 dereferenceable(176) %1991)
          to label %1992 unwind label %2022

1992:                                             ; preds = %1990
  %1993 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %142)
          to label %1994 unwind label %2026

1994:                                             ; preds = %1992
  %1995 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1993)
          to label %1996 unwind label %2026

1996:                                             ; preds = %1994
  %1997 = icmp ne i32 %1995, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %142) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %142) #8
  br i1 %1997, label %1998, label %2054

1998:                                             ; preds = %1996
  br label %1999

1999:                                             ; preds = %1998
  %2000 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2001 unwind label %2031

2001:                                             ; preds = %1999
  br i1 %2000, label %2002, label %2035

2002:                                             ; preds = %2001
  %2003 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2004 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2003, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2005 unwind label %2031

2005:                                             ; preds = %2002
  %2006 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2004, ptr noundef @.str.1)
          to label %2007 unwind label %2031

2007:                                             ; preds = %2005
  %2008 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2006, ptr noundef @.str.2)
          to label %2009 unwind label %2031

2009:                                             ; preds = %2007
  %2010 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2008, ptr noundef @.str.3)
          to label %2011 unwind label %2031

2011:                                             ; preds = %2009
  %2012 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2010, i32 noundef 1966)
          to label %2013 unwind label %2031

2013:                                             ; preds = %2011
  %2014 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2012, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2015 unwind label %2031

2015:                                             ; preds = %2013
  %2016 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2014, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2017 unwind label %2031

2017:                                             ; preds = %2015
  br label %2035

2018:                                             ; preds = %1987
  %2019 = landingpad { ptr, i32 }
          cleanup
  %2020 = extractvalue { ptr, i32 } %2019, 0
  store ptr %2020, ptr %14, align 8
  %2021 = extractvalue { ptr, i32 } %2019, 1
  store i32 %2021, ptr %15, align 4
  br label %2153

2022:                                             ; preds = %1990
  %2023 = landingpad { ptr, i32 }
          cleanup
  %2024 = extractvalue { ptr, i32 } %2023, 0
  store ptr %2024, ptr %14, align 8
  %2025 = extractvalue { ptr, i32 } %2023, 1
  store i32 %2025, ptr %15, align 4
  br label %2030

2026:                                             ; preds = %1994, %1992
  %2027 = landingpad { ptr, i32 }
          cleanup
  %2028 = extractvalue { ptr, i32 } %2027, 0
  store ptr %2028, ptr %14, align 8
  %2029 = extractvalue { ptr, i32 } %2027, 1
  store i32 %2029, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %142) #8
  br label %2030

2030:                                             ; preds = %2026, %2022
  call void @llvm.lifetime.end.p0(i64 88, ptr %142) #8
  br label %2152

2031:                                             ; preds = %2117, %2115, %2082, %2080, %2078, %2076, %2074, %2072, %2069, %2066, %2015, %2013, %2011, %2009, %2007, %2005, %2002, %1999
  %2032 = landingpad { ptr, i32 }
          cleanup
  %2033 = extractvalue { ptr, i32 } %2032, 0
  store ptr %2033, ptr %14, align 8
  %2034 = extractvalue { ptr, i32 } %2032, 1
  store i32 %2034, ptr %15, align 4
  br label %2152

2035:                                             ; preds = %2017, %2001
  br label %2036

2036:                                             ; preds = %2035
  br label %2037

2037:                                             ; preds = %2036
  store i1 true, ptr %144, align 1
  %2038 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2039 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %143, i32 noundef 88)
          to label %2040 unwind label %2042

2040:                                             ; preds = %2037
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2038, ptr noundef nonnull align 8 dereferenceable(176) %2039, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %143)
          to label %2041 unwind label %2046

2041:                                             ; preds = %2040
  store i1 false, ptr %144, align 1
  invoke void @__cxa_throw(ptr %2038, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2046

2042:                                             ; preds = %2037
  %2043 = landingpad { ptr, i32 }
          cleanup
  %2044 = extractvalue { ptr, i32 } %2043, 0
  store ptr %2044, ptr %14, align 8
  %2045 = extractvalue { ptr, i32 } %2043, 1
  store i32 %2045, ptr %15, align 4
  br label %2050

2046:                                             ; preds = %2041, %2040
  %2047 = landingpad { ptr, i32 }
          cleanup
  %2048 = extractvalue { ptr, i32 } %2047, 0
  store ptr %2048, ptr %14, align 8
  %2049 = extractvalue { ptr, i32 } %2047, 1
  store i32 %2049, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %143) #8
  br label %2050

2050:                                             ; preds = %2046, %2042
  %2051 = load i1, ptr %144, align 1
  br i1 %2051, label %2052, label %2053

2052:                                             ; preds = %2050
  call void @__cxa_free_exception(ptr %2038) #8
  br label %2053

2053:                                             ; preds = %2052, %2050
  br label %2152

2054:                                             ; preds = %1996
  br label %2055

2055:                                             ; preds = %2054
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

2057:                                             ; preds = %2056
  call void @llvm.lifetime.start.p0(i64 88, ptr %145) #8
  %2058 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %145, ptr noundef nonnull align 8 dereferenceable(176) %2058)
          to label %2059 unwind label %2085

2059:                                             ; preds = %2057
  %2060 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %145)
          to label %2061 unwind label %2089

2061:                                             ; preds = %2059
  %2062 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2060)
          to label %2063 unwind label %2089

2063:                                             ; preds = %2061
  %2064 = icmp ne i32 %2062, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %145) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %145) #8
  br i1 %2064, label %2065, label %2113

2065:                                             ; preds = %2063
  br label %2066

2066:                                             ; preds = %2065
  %2067 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2068 unwind label %2031

2068:                                             ; preds = %2066
  br i1 %2067, label %2069, label %2094

2069:                                             ; preds = %2068
  %2070 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2071 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2070, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2072 unwind label %2031

2072:                                             ; preds = %2069
  %2073 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2071, ptr noundef @.str.1)
          to label %2074 unwind label %2031

2074:                                             ; preds = %2072
  %2075 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2073, ptr noundef @.str.2)
          to label %2076 unwind label %2031

2076:                                             ; preds = %2074
  %2077 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2075, ptr noundef @.str.3)
          to label %2078 unwind label %2031

2078:                                             ; preds = %2076
  %2079 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2077, i32 noundef 1967)
          to label %2080 unwind label %2031

2080:                                             ; preds = %2078
  %2081 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2079, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2082 unwind label %2031

2082:                                             ; preds = %2080
  %2083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2081, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2084 unwind label %2031

2084:                                             ; preds = %2082
  br label %2094

2085:                                             ; preds = %2057
  %2086 = landingpad { ptr, i32 }
          cleanup
  %2087 = extractvalue { ptr, i32 } %2086, 0
  store ptr %2087, ptr %14, align 8
  %2088 = extractvalue { ptr, i32 } %2086, 1
  store i32 %2088, ptr %15, align 4
  br label %2093

2089:                                             ; preds = %2061, %2059
  %2090 = landingpad { ptr, i32 }
          cleanup
  %2091 = extractvalue { ptr, i32 } %2090, 0
  store ptr %2091, ptr %14, align 8
  %2092 = extractvalue { ptr, i32 } %2090, 1
  store i32 %2092, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %145) #8
  br label %2093

2093:                                             ; preds = %2089, %2085
  call void @llvm.lifetime.end.p0(i64 88, ptr %145) #8
  br label %2152

2094:                                             ; preds = %2084, %2068
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  store i1 true, ptr %147, align 1
  %2097 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2098 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %146, i32 noundef 14)
          to label %2099 unwind label %2101

2099:                                             ; preds = %2096
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2097, ptr noundef nonnull align 8 dereferenceable(176) %2098, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %146)
          to label %2100 unwind label %2105

2100:                                             ; preds = %2099
  store i1 false, ptr %147, align 1
  invoke void @__cxa_throw(ptr %2097, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2105

2101:                                             ; preds = %2096
  %2102 = landingpad { ptr, i32 }
          cleanup
  %2103 = extractvalue { ptr, i32 } %2102, 0
  store ptr %2103, ptr %14, align 8
  %2104 = extractvalue { ptr, i32 } %2102, 1
  store i32 %2104, ptr %15, align 4
  br label %2109

2105:                                             ; preds = %2100, %2099
  %2106 = landingpad { ptr, i32 }
          cleanup
  %2107 = extractvalue { ptr, i32 } %2106, 0
  store ptr %2107, ptr %14, align 8
  %2108 = extractvalue { ptr, i32 } %2106, 1
  store i32 %2108, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %146) #8
  br label %2109

2109:                                             ; preds = %2105, %2101
  %2110 = load i1, ptr %147, align 1
  br i1 %2110, label %2111, label %2112

2111:                                             ; preds = %2109
  call void @__cxa_free_exception(ptr %2097) #8
  br label %2112

2112:                                             ; preds = %2111, %2109
  br label %2152

2113:                                             ; preds = %2063
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  %2116 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2117 unwind label %2031

2117:                                             ; preds = %2115
  %2118 = getelementptr inbounds %struct.Ident, ptr %2116, i32 0, i32 1
  %2119 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %2118)
          to label %2120 unwind label %2031

2120:                                             ; preds = %2117
  call void @llvm.lifetime.start.p0(i64 488, ptr %148) #8
  %2121 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %150, ptr noundef nonnull align 8 dereferenceable(32) %141)
          to label %2122 unwind label %2133

2122:                                             ; preds = %2120
  call void @llvm.lifetime.start.p0(i64 3, ptr %152) #8
  call void @llvm.lifetime.start.p0(i64 3, ptr %153) #8
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %153)
          to label %2123 unwind label %2137

2123:                                             ; preds = %2122
  %2124 = invoke i24 @_ZNK3AST8Function5Flags9set_constEv(ptr noundef nonnull align 1 dereferenceable(3) %153)
          to label %2125 unwind label %2137

2125:                                             ; preds = %2123
  store i24 %2124, ptr %152, align 1
  %2126 = invoke i24 @_ZNK3AST8Function5Flags10set_unsafeEv(ptr noundef nonnull align 1 dereferenceable(3) %152)
          to label %2127 unwind label %2137

2127:                                             ; preds = %2125
  store i24 %2126, ptr %151, align 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %154, ptr align 1 %151, i64 3, i1 false)
  %2128 = load i24, ptr %154, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %149, ptr noundef nonnull align 8 dereferenceable(176) %2121, i1 noundef zeroext false, ptr noundef %150, i24 %2128)
          to label %2129 unwind label %2137

2129:                                             ; preds = %2127
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %148, ptr noundef %149)
          to label %2130 unwind label %2141

2130:                                             ; preds = %2129
  %2131 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %148)
          to label %2132 unwind label %2145

2132:                                             ; preds = %2130
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %148) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %149) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %152) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %148) #8
  store i32 54, ptr %33, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %2488

2133:                                             ; preds = %2120
  %2134 = landingpad { ptr, i32 }
          cleanup
  %2135 = extractvalue { ptr, i32 } %2134, 0
  store ptr %2135, ptr %14, align 8
  %2136 = extractvalue { ptr, i32 } %2134, 1
  store i32 %2136, ptr %15, align 4
  br label %2151

2137:                                             ; preds = %2127, %2125, %2123, %2122
  %2138 = landingpad { ptr, i32 }
          cleanup
  %2139 = extractvalue { ptr, i32 } %2138, 0
  store ptr %2139, ptr %14, align 8
  %2140 = extractvalue { ptr, i32 } %2138, 1
  store i32 %2140, ptr %15, align 4
  br label %2150

2141:                                             ; preds = %2129
  %2142 = landingpad { ptr, i32 }
          cleanup
  %2143 = extractvalue { ptr, i32 } %2142, 0
  store ptr %2143, ptr %14, align 8
  %2144 = extractvalue { ptr, i32 } %2142, 1
  store i32 %2144, ptr %15, align 4
  br label %2149

2145:                                             ; preds = %2130
  %2146 = landingpad { ptr, i32 }
          cleanup
  %2147 = extractvalue { ptr, i32 } %2146, 0
  store ptr %2147, ptr %14, align 8
  %2148 = extractvalue { ptr, i32 } %2146, 1
  store i32 %2148, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %148) #8
  br label %2149

2149:                                             ; preds = %2145, %2141
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %149) #8
  br label %2150

2150:                                             ; preds = %2149, %2137
  call void @llvm.lifetime.end.p0(i64 3, ptr %153) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %152) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %150) #8
  br label %2151

2151:                                             ; preds = %2150, %2133
  call void @llvm.lifetime.end.p0(i64 488, ptr %148) #8
  br label %2152

2152:                                             ; preds = %2151, %2112, %2093, %2053, %2031, %2030
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %141) #8
  br label %2153

2153:                                             ; preds = %2152, %2018
  call void @llvm.lifetime.end.p0(i64 32, ptr %141) #8
  br label %5945

2154:                                             ; preds = %1731
  call void @llvm.lifetime.start.p0(i64 32, ptr %155) #8
  %2155 = load ptr, ptr %7, align 8, !tbaa !5
  store i1 false, ptr %157, align 1
  store i1 false, ptr %158, align 1
  store i1 false, ptr %160, align 1
  store i1 false, ptr %161, align 1
  %2156 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %2155, i32 noundef 0)
          to label %2157 unwind label %2208

2157:                                             ; preds = %2154
  %2158 = icmp eq i32 %2156, 19
  br i1 %2158, label %2159, label %2165

2159:                                             ; preds = %2157
  call void @llvm.lifetime.start.p0(i64 88, ptr %156) #8
  store i1 true, ptr %157, align 1
  %2160 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %156, ptr noundef nonnull align 8 dereferenceable(176) %2160)
          to label %2161 unwind label %2212

2161:                                             ; preds = %2159
  store i1 true, ptr %158, align 1
  %2162 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %156)
          to label %2163 unwind label %2216

2163:                                             ; preds = %2161
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef nonnull align 8 dereferenceable(32) %2162)
          to label %2164 unwind label %2216

2164:                                             ; preds = %2163
  br label %2167

2165:                                             ; preds = %2157
  call void @llvm.lifetime.start.p0(i64 1, ptr %159) #8
  store i1 true, ptr %160, align 1
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #8
  store i1 true, ptr %161, align 1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %155, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %159)
          to label %2166 unwind label %2220

2166:                                             ; preds = %2165
  br label %2167

2167:                                             ; preds = %2166, %2164
  %2168 = load i1, ptr %161, align 1
  br i1 %2168, label %2169, label %2170

2169:                                             ; preds = %2167
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #8
  br label %2170

2170:                                             ; preds = %2169, %2167
  %2171 = load i1, ptr %160, align 1
  br i1 %2171, label %2172, label %2173

2172:                                             ; preds = %2170
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #8
  br label %2173

2173:                                             ; preds = %2172, %2170
  %2174 = load i1, ptr %158, align 1
  br i1 %2174, label %2175, label %2176

2175:                                             ; preds = %2173
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %156) #8
  br label %2176

2176:                                             ; preds = %2175, %2173
  %2177 = load i1, ptr %157, align 1
  br i1 %2177, label %2178, label %2179

2178:                                             ; preds = %2176
  call void @llvm.lifetime.end.p0(i64 88, ptr %156) #8
  br label %2179

2179:                                             ; preds = %2178, %2176
  br label %2180

2180:                                             ; preds = %2179
  call void @llvm.lifetime.start.p0(i64 88, ptr %162) #8
  %2181 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %162, ptr noundef nonnull align 8 dereferenceable(176) %2181)
          to label %2182 unwind label %2238

2182:                                             ; preds = %2180
  %2183 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %162)
          to label %2184 unwind label %2242

2184:                                             ; preds = %2182
  %2185 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2183)
          to label %2186 unwind label %2242

2186:                                             ; preds = %2184
  %2187 = icmp ne i32 %2185, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %162) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %162) #8
  br i1 %2187, label %2188, label %2270

2188:                                             ; preds = %2186
  br label %2189

2189:                                             ; preds = %2188
  %2190 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2191 unwind label %2247

2191:                                             ; preds = %2189
  br i1 %2190, label %2192, label %2251

2192:                                             ; preds = %2191
  %2193 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2193, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2195 unwind label %2247

2195:                                             ; preds = %2192
  %2196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2194, ptr noundef @.str.1)
          to label %2197 unwind label %2247

2197:                                             ; preds = %2195
  %2198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2196, ptr noundef @.str.2)
          to label %2199 unwind label %2247

2199:                                             ; preds = %2197
  %2200 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2198, ptr noundef @.str.3)
          to label %2201 unwind label %2247

2201:                                             ; preds = %2199
  %2202 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2200, i32 noundef 1973)
          to label %2203 unwind label %2247

2203:                                             ; preds = %2201
  %2204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2202, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2205 unwind label %2247

2205:                                             ; preds = %2203
  %2206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2204, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2207 unwind label %2247

2207:                                             ; preds = %2205
  br label %2251

2208:                                             ; preds = %2154
  %2209 = landingpad { ptr, i32 }
          cleanup
  %2210 = extractvalue { ptr, i32 } %2209, 0
  store ptr %2210, ptr %14, align 8
  %2211 = extractvalue { ptr, i32 } %2209, 1
  store i32 %2211, ptr %15, align 4
  br label %2367

2212:                                             ; preds = %2159
  %2213 = landingpad { ptr, i32 }
          cleanup
  %2214 = extractvalue { ptr, i32 } %2213, 0
  store ptr %2214, ptr %14, align 8
  %2215 = extractvalue { ptr, i32 } %2213, 1
  store i32 %2215, ptr %15, align 4
  br label %2234

2216:                                             ; preds = %2163, %2161
  %2217 = landingpad { ptr, i32 }
          cleanup
  %2218 = extractvalue { ptr, i32 } %2217, 0
  store ptr %2218, ptr %14, align 8
  %2219 = extractvalue { ptr, i32 } %2217, 1
  store i32 %2219, ptr %15, align 4
  br label %2230

2220:                                             ; preds = %2165
  %2221 = landingpad { ptr, i32 }
          cleanup
  %2222 = extractvalue { ptr, i32 } %2221, 0
  store ptr %2222, ptr %14, align 8
  %2223 = extractvalue { ptr, i32 } %2221, 1
  store i32 %2223, ptr %15, align 4
  %2224 = load i1, ptr %161, align 1
  br i1 %2224, label %2225, label %2226

2225:                                             ; preds = %2220
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %159) #8
  br label %2226

2226:                                             ; preds = %2225, %2220
  %2227 = load i1, ptr %160, align 1
  br i1 %2227, label %2228, label %2229

2228:                                             ; preds = %2226
  call void @llvm.lifetime.end.p0(i64 1, ptr %159) #8
  br label %2229

2229:                                             ; preds = %2228, %2226
  br label %2230

2230:                                             ; preds = %2229, %2216
  %2231 = load i1, ptr %158, align 1
  br i1 %2231, label %2232, label %2233

2232:                                             ; preds = %2230
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %156) #8
  br label %2233

2233:                                             ; preds = %2232, %2230
  br label %2234

2234:                                             ; preds = %2233, %2212
  %2235 = load i1, ptr %157, align 1
  br i1 %2235, label %2236, label %2237

2236:                                             ; preds = %2234
  call void @llvm.lifetime.end.p0(i64 88, ptr %156) #8
  br label %2237

2237:                                             ; preds = %2236, %2234
  br label %2367

2238:                                             ; preds = %2180
  %2239 = landingpad { ptr, i32 }
          cleanup
  %2240 = extractvalue { ptr, i32 } %2239, 0
  store ptr %2240, ptr %14, align 8
  %2241 = extractvalue { ptr, i32 } %2239, 1
  store i32 %2241, ptr %15, align 4
  br label %2246

2242:                                             ; preds = %2184, %2182
  %2243 = landingpad { ptr, i32 }
          cleanup
  %2244 = extractvalue { ptr, i32 } %2243, 0
  store ptr %2244, ptr %14, align 8
  %2245 = extractvalue { ptr, i32 } %2243, 1
  store i32 %2245, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %162) #8
  br label %2246

2246:                                             ; preds = %2242, %2238
  call void @llvm.lifetime.end.p0(i64 88, ptr %162) #8
  br label %2366

2247:                                             ; preds = %2333, %2331, %2298, %2296, %2294, %2292, %2290, %2288, %2285, %2282, %2205, %2203, %2201, %2199, %2197, %2195, %2192, %2189
  %2248 = landingpad { ptr, i32 }
          cleanup
  %2249 = extractvalue { ptr, i32 } %2248, 0
  store ptr %2249, ptr %14, align 8
  %2250 = extractvalue { ptr, i32 } %2248, 1
  store i32 %2250, ptr %15, align 4
  br label %2366

2251:                                             ; preds = %2207, %2191
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  store i1 true, ptr %164, align 1
  %2254 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2255 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %163, i32 noundef 88)
          to label %2256 unwind label %2258

2256:                                             ; preds = %2253
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2254, ptr noundef nonnull align 8 dereferenceable(176) %2255, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %163)
          to label %2257 unwind label %2262

2257:                                             ; preds = %2256
  store i1 false, ptr %164, align 1
  invoke void @__cxa_throw(ptr %2254, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2262

2258:                                             ; preds = %2253
  %2259 = landingpad { ptr, i32 }
          cleanup
  %2260 = extractvalue { ptr, i32 } %2259, 0
  store ptr %2260, ptr %14, align 8
  %2261 = extractvalue { ptr, i32 } %2259, 1
  store i32 %2261, ptr %15, align 4
  br label %2266

2262:                                             ; preds = %2257, %2256
  %2263 = landingpad { ptr, i32 }
          cleanup
  %2264 = extractvalue { ptr, i32 } %2263, 0
  store ptr %2264, ptr %14, align 8
  %2265 = extractvalue { ptr, i32 } %2263, 1
  store i32 %2265, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %163) #8
  br label %2266

2266:                                             ; preds = %2262, %2258
  %2267 = load i1, ptr %164, align 1
  br i1 %2267, label %2268, label %2269

2268:                                             ; preds = %2266
  call void @__cxa_free_exception(ptr %2254) #8
  br label %2269

2269:                                             ; preds = %2268, %2266
  br label %2366

2270:                                             ; preds = %2186
  br label %2271

2271:                                             ; preds = %2270
  br label %2272

2272:                                             ; preds = %2271
  br label %2273

2273:                                             ; preds = %2272
  call void @llvm.lifetime.start.p0(i64 88, ptr %165) #8
  %2274 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %165, ptr noundef nonnull align 8 dereferenceable(176) %2274)
          to label %2275 unwind label %2301

2275:                                             ; preds = %2273
  %2276 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %165)
          to label %2277 unwind label %2305

2277:                                             ; preds = %2275
  %2278 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2276)
          to label %2279 unwind label %2305

2279:                                             ; preds = %2277
  %2280 = icmp ne i32 %2278, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %165) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %165) #8
  br i1 %2280, label %2281, label %2329

2281:                                             ; preds = %2279
  br label %2282

2282:                                             ; preds = %2281
  %2283 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2284 unwind label %2247

2284:                                             ; preds = %2282
  br i1 %2283, label %2285, label %2310

2285:                                             ; preds = %2284
  %2286 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2286, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2288 unwind label %2247

2288:                                             ; preds = %2285
  %2289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2287, ptr noundef @.str.1)
          to label %2290 unwind label %2247

2290:                                             ; preds = %2288
  %2291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2289, ptr noundef @.str.2)
          to label %2292 unwind label %2247

2292:                                             ; preds = %2290
  %2293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2291, ptr noundef @.str.3)
          to label %2294 unwind label %2247

2294:                                             ; preds = %2292
  %2295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2293, i32 noundef 1974)
          to label %2296 unwind label %2247

2296:                                             ; preds = %2294
  %2297 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2295, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2298 unwind label %2247

2298:                                             ; preds = %2296
  %2299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2297, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2300 unwind label %2247

2300:                                             ; preds = %2298
  br label %2310

2301:                                             ; preds = %2273
  %2302 = landingpad { ptr, i32 }
          cleanup
  %2303 = extractvalue { ptr, i32 } %2302, 0
  store ptr %2303, ptr %14, align 8
  %2304 = extractvalue { ptr, i32 } %2302, 1
  store i32 %2304, ptr %15, align 4
  br label %2309

2305:                                             ; preds = %2277, %2275
  %2306 = landingpad { ptr, i32 }
          cleanup
  %2307 = extractvalue { ptr, i32 } %2306, 0
  store ptr %2307, ptr %14, align 8
  %2308 = extractvalue { ptr, i32 } %2306, 1
  store i32 %2308, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %165) #8
  br label %2309

2309:                                             ; preds = %2305, %2301
  call void @llvm.lifetime.end.p0(i64 88, ptr %165) #8
  br label %2366

2310:                                             ; preds = %2300, %2284
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

2312:                                             ; preds = %2311
  store i1 true, ptr %167, align 1
  %2313 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2314 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %166, i32 noundef 14)
          to label %2315 unwind label %2317

2315:                                             ; preds = %2312
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2313, ptr noundef nonnull align 8 dereferenceable(176) %2314, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %166)
          to label %2316 unwind label %2321

2316:                                             ; preds = %2315
  store i1 false, ptr %167, align 1
  invoke void @__cxa_throw(ptr %2313, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2321

2317:                                             ; preds = %2312
  %2318 = landingpad { ptr, i32 }
          cleanup
  %2319 = extractvalue { ptr, i32 } %2318, 0
  store ptr %2319, ptr %14, align 8
  %2320 = extractvalue { ptr, i32 } %2318, 1
  store i32 %2320, ptr %15, align 4
  br label %2325

2321:                                             ; preds = %2316, %2315
  %2322 = landingpad { ptr, i32 }
          cleanup
  %2323 = extractvalue { ptr, i32 } %2322, 0
  store ptr %2323, ptr %14, align 8
  %2324 = extractvalue { ptr, i32 } %2322, 1
  store i32 %2324, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %166) #8
  br label %2325

2325:                                             ; preds = %2321, %2317
  %2326 = load i1, ptr %167, align 1
  br i1 %2326, label %2327, label %2328

2327:                                             ; preds = %2325
  call void @__cxa_free_exception(ptr %2313) #8
  br label %2328

2328:                                             ; preds = %2327, %2325
  br label %2366

2329:                                             ; preds = %2279
  br label %2330

2330:                                             ; preds = %2329
  br label %2331

2331:                                             ; preds = %2330
  %2332 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2333 unwind label %2247

2333:                                             ; preds = %2331
  %2334 = getelementptr inbounds %struct.Ident, ptr %2332, i32 0, i32 1
  %2335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %2334)
          to label %2336 unwind label %2247

2336:                                             ; preds = %2333
  call void @llvm.lifetime.start.p0(i64 488, ptr %168) #8
  %2337 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %170, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %2338 unwind label %2347

2338:                                             ; preds = %2336
  call void @llvm.lifetime.start.p0(i64 3, ptr %172) #8
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %172)
          to label %2339 unwind label %2351

2339:                                             ; preds = %2338
  %2340 = invoke i24 @_ZNK3AST8Function5Flags9set_constEv(ptr noundef nonnull align 1 dereferenceable(3) %172)
          to label %2341 unwind label %2351

2341:                                             ; preds = %2339
  store i24 %2340, ptr %171, align 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %173, ptr align 1 %171, i64 3, i1 false)
  %2342 = load i24, ptr %173, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %169, ptr noundef nonnull align 8 dereferenceable(176) %2337, i1 noundef zeroext false, ptr noundef %170, i24 %2342)
          to label %2343 unwind label %2351

2343:                                             ; preds = %2341
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %168, ptr noundef %169)
          to label %2344 unwind label %2355

2344:                                             ; preds = %2343
  %2345 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %168)
          to label %2346 unwind label %2359

2346:                                             ; preds = %2344
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %168) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %169) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %172) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %168) #8
  store i32 54, ptr %33, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #8
  br label %2488

2347:                                             ; preds = %2336
  %2348 = landingpad { ptr, i32 }
          cleanup
  %2349 = extractvalue { ptr, i32 } %2348, 0
  store ptr %2349, ptr %14, align 8
  %2350 = extractvalue { ptr, i32 } %2348, 1
  store i32 %2350, ptr %15, align 4
  br label %2365

2351:                                             ; preds = %2341, %2339, %2338
  %2352 = landingpad { ptr, i32 }
          cleanup
  %2353 = extractvalue { ptr, i32 } %2352, 0
  store ptr %2353, ptr %14, align 8
  %2354 = extractvalue { ptr, i32 } %2352, 1
  store i32 %2354, ptr %15, align 4
  br label %2364

2355:                                             ; preds = %2343
  %2356 = landingpad { ptr, i32 }
          cleanup
  %2357 = extractvalue { ptr, i32 } %2356, 0
  store ptr %2357, ptr %14, align 8
  %2358 = extractvalue { ptr, i32 } %2356, 1
  store i32 %2358, ptr %15, align 4
  br label %2363

2359:                                             ; preds = %2344
  %2360 = landingpad { ptr, i32 }
          cleanup
  %2361 = extractvalue { ptr, i32 } %2360, 0
  store ptr %2361, ptr %14, align 8
  %2362 = extractvalue { ptr, i32 } %2360, 1
  store i32 %2362, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %168) #8
  br label %2363

2363:                                             ; preds = %2359, %2355
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %169) #8
  br label %2364

2364:                                             ; preds = %2363, %2351
  call void @llvm.lifetime.end.p0(i64 3, ptr %172) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %170) #8
  br label %2365

2365:                                             ; preds = %2364, %2347
  call void @llvm.lifetime.end.p0(i64 488, ptr %168) #8
  br label %2366

2366:                                             ; preds = %2365, %2328, %2309, %2269, %2247, %2246
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %155) #8
  br label %2367

2367:                                             ; preds = %2366, %2237, %2208
  call void @llvm.lifetime.end.p0(i64 32, ptr %155) #8
  br label %5945

2368:                                             ; preds = %1731
  br label %2369

2369:                                             ; preds = %2368
  call void @llvm.lifetime.start.p0(i64 88, ptr %174) #8
  %2370 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %174, ptr noundef nonnull align 8 dereferenceable(176) %2370)
          to label %2371 unwind label %2397

2371:                                             ; preds = %2369
  %2372 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %174)
          to label %2373 unwind label %2401

2373:                                             ; preds = %2371
  %2374 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2372)
          to label %2375 unwind label %2401

2375:                                             ; preds = %2373
  %2376 = icmp ne i32 %2374, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %174) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %174) #8
  br i1 %2376, label %2377, label %2425

2377:                                             ; preds = %2375
  br label %2378

2378:                                             ; preds = %2377
  %2379 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2380 unwind label %877

2380:                                             ; preds = %2378
  br i1 %2379, label %2381, label %2406

2381:                                             ; preds = %2380
  %2382 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2382, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2384 unwind label %877

2384:                                             ; preds = %2381
  %2385 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2383, ptr noundef @.str.1)
          to label %2386 unwind label %877

2386:                                             ; preds = %2384
  %2387 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2385, ptr noundef @.str.2)
          to label %2388 unwind label %877

2388:                                             ; preds = %2386
  %2389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2387, ptr noundef @.str.3)
          to label %2390 unwind label %877

2390:                                             ; preds = %2388
  %2391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2389, i32 noundef 1979)
          to label %2392 unwind label %877

2392:                                             ; preds = %2390
  %2393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2391, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2394 unwind label %877

2394:                                             ; preds = %2392
  %2395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2393, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2396 unwind label %877

2396:                                             ; preds = %2394
  br label %2406

2397:                                             ; preds = %2369
  %2398 = landingpad { ptr, i32 }
          cleanup
  %2399 = extractvalue { ptr, i32 } %2398, 0
  store ptr %2399, ptr %14, align 8
  %2400 = extractvalue { ptr, i32 } %2398, 1
  store i32 %2400, ptr %15, align 4
  br label %2405

2401:                                             ; preds = %2373, %2371
  %2402 = landingpad { ptr, i32 }
          cleanup
  %2403 = extractvalue { ptr, i32 } %2402, 0
  store ptr %2403, ptr %14, align 8
  %2404 = extractvalue { ptr, i32 } %2402, 1
  store i32 %2404, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %174) #8
  br label %2405

2405:                                             ; preds = %2401, %2397
  call void @llvm.lifetime.end.p0(i64 88, ptr %174) #8
  br label %5945

2406:                                             ; preds = %2396, %2380
  br label %2407

2407:                                             ; preds = %2406
  br label %2408

2408:                                             ; preds = %2407
  store i1 true, ptr %176, align 1
  %2409 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2410 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %175, i32 noundef 14)
          to label %2411 unwind label %2413

2411:                                             ; preds = %2408
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2409, ptr noundef nonnull align 8 dereferenceable(176) %2410, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %175)
          to label %2412 unwind label %2417

2412:                                             ; preds = %2411
  store i1 false, ptr %176, align 1
  invoke void @__cxa_throw(ptr %2409, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2417

2413:                                             ; preds = %2408
  %2414 = landingpad { ptr, i32 }
          cleanup
  %2415 = extractvalue { ptr, i32 } %2414, 0
  store ptr %2415, ptr %14, align 8
  %2416 = extractvalue { ptr, i32 } %2414, 1
  store i32 %2416, ptr %15, align 4
  br label %2421

2417:                                             ; preds = %2412, %2411
  %2418 = landingpad { ptr, i32 }
          cleanup
  %2419 = extractvalue { ptr, i32 } %2418, 0
  store ptr %2419, ptr %14, align 8
  %2420 = extractvalue { ptr, i32 } %2418, 1
  store i32 %2420, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %175) #8
  br label %2421

2421:                                             ; preds = %2417, %2413
  %2422 = load i1, ptr %176, align 1
  br i1 %2422, label %2423, label %2424

2423:                                             ; preds = %2421
  call void @__cxa_free_exception(ptr %2409) #8
  br label %2424

2424:                                             ; preds = %2423, %2421
  br label %5945

2425:                                             ; preds = %2375
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

2427:                                             ; preds = %2426
  %2428 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2429 unwind label %877

2429:                                             ; preds = %2427
  %2430 = getelementptr inbounds %struct.Ident, ptr %2428, i32 0, i32 1
  %2431 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %2430)
          to label %2432 unwind label %877

2432:                                             ; preds = %2429
  call void @llvm.lifetime.start.p0(i64 488, ptr %177) #8
  %2433 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %180) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %179, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %180)
          to label %2434 unwind label %2443

2434:                                             ; preds = %2432
  call void @llvm.lifetime.start.p0(i64 3, ptr %182) #8
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %182)
          to label %2435 unwind label %2447

2435:                                             ; preds = %2434
  %2436 = invoke i24 @_ZNK3AST8Function5Flags9set_constEv(ptr noundef nonnull align 1 dereferenceable(3) %182)
          to label %2437 unwind label %2447

2437:                                             ; preds = %2435
  store i24 %2436, ptr %181, align 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %183, ptr align 1 %181, i64 3, i1 false)
  %2438 = load i24, ptr %183, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %178, ptr noundef nonnull align 8 dereferenceable(176) %2433, i1 noundef zeroext false, ptr noundef %179, i24 %2438)
          to label %2439 unwind label %2447

2439:                                             ; preds = %2437
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %177, ptr noundef %178)
          to label %2440 unwind label %2451

2440:                                             ; preds = %2439
  %2441 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %177)
          to label %2442 unwind label %2455

2442:                                             ; preds = %2440
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %177) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %178) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %182) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %177) #8
  br label %2488

2443:                                             ; preds = %2432
  %2444 = landingpad { ptr, i32 }
          cleanup
  %2445 = extractvalue { ptr, i32 } %2444, 0
  store ptr %2445, ptr %14, align 8
  %2446 = extractvalue { ptr, i32 } %2444, 1
  store i32 %2446, ptr %15, align 4
  br label %2461

2447:                                             ; preds = %2437, %2435, %2434
  %2448 = landingpad { ptr, i32 }
          cleanup
  %2449 = extractvalue { ptr, i32 } %2448, 0
  store ptr %2449, ptr %14, align 8
  %2450 = extractvalue { ptr, i32 } %2448, 1
  store i32 %2450, ptr %15, align 4
  br label %2460

2451:                                             ; preds = %2439
  %2452 = landingpad { ptr, i32 }
          cleanup
  %2453 = extractvalue { ptr, i32 } %2452, 0
  store ptr %2453, ptr %14, align 8
  %2454 = extractvalue { ptr, i32 } %2452, 1
  store i32 %2454, ptr %15, align 4
  br label %2459

2455:                                             ; preds = %2440
  %2456 = landingpad { ptr, i32 }
          cleanup
  %2457 = extractvalue { ptr, i32 } %2456, 0
  store ptr %2457, ptr %14, align 8
  %2458 = extractvalue { ptr, i32 } %2456, 1
  store i32 %2458, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %177) #8
  br label %2459

2459:                                             ; preds = %2455, %2451
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %178) #8
  br label %2460

2460:                                             ; preds = %2459, %2447
  call void @llvm.lifetime.end.p0(i64 3, ptr %182) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %179) #8
  br label %2461

2461:                                             ; preds = %2460, %2443
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %180) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %180) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %177) #8
  br label %5945

2462:                                             ; preds = %1731
  store i1 true, ptr %188, align 1
  %2463 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2464 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %186) #8
  store i32 14, ptr %186, align 4, !tbaa !13
  %2465 = getelementptr inbounds i32, ptr %186, i64 1
  store i32 22, ptr %2465, align 4, !tbaa !13
  %2466 = getelementptr inbounds i32, ptr %186, i64 2
  store i32 81, ptr %2466, align 4, !tbaa !13
  %2467 = getelementptr inbounds i32, ptr %186, i64 3
  store i32 88, ptr %2467, align 4, !tbaa !13
  %2468 = getelementptr inbounds %"class.std::initializer_list", ptr %185, i32 0, i32 0
  store ptr %186, ptr %2468, align 8, !tbaa !15
  %2469 = getelementptr inbounds %"class.std::initializer_list", ptr %185, i32 0, i32 1
  store i64 4, ptr %2469, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %187) #8
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #8
  %2470 = getelementptr inbounds { ptr, i64 }, ptr %185, i32 0, i32 0
  %2471 = load ptr, ptr %2470, align 8
  %2472 = getelementptr inbounds { ptr, i64 }, ptr %185, i32 0, i32 1
  %2473 = load i64, ptr %2472, align 8
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %184, ptr %2471, i64 %2473, ptr noundef nonnull align 1 dereferenceable(1) %187)
          to label %2474 unwind label %2476

2474:                                             ; preds = %2462
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %2463, ptr noundef nonnull align 8 dereferenceable(176) %2464, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %184)
          to label %2475 unwind label %2480

2475:                                             ; preds = %2474
  store i1 false, ptr %188, align 1
  invoke void @__cxa_throw(ptr %2463, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2480

2476:                                             ; preds = %2462
  %2477 = landingpad { ptr, i32 }
          cleanup
  %2478 = extractvalue { ptr, i32 } %2477, 0
  store ptr %2478, ptr %14, align 8
  %2479 = extractvalue { ptr, i32 } %2477, 1
  store i32 %2479, ptr %15, align 4
  br label %2484

2480:                                             ; preds = %2475, %2474
  %2481 = landingpad { ptr, i32 }
          cleanup
  %2482 = extractvalue { ptr, i32 } %2481, 0
  store ptr %2482, ptr %14, align 8
  %2483 = extractvalue { ptr, i32 } %2481, 1
  store i32 %2483, ptr %15, align 4
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %184) #8
  br label %2484

2484:                                             ; preds = %2480, %2476
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %187) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %187) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %186) #8
  %2485 = load i1, ptr %188, align 1
  br i1 %2485, label %2486, label %2487

2486:                                             ; preds = %2484
  call void @__cxa_free_exception(ptr %2463) #8
  br label %2487

2487:                                             ; preds = %2486, %2484
  br label %5945

2488:                                             ; preds = %2442, %2346, %2132, %1963
  br label %5924

2489:                                             ; preds = %796
  call void @llvm.lifetime.start.p0(i64 1, ptr %189) #8
  store i8 0, ptr %189, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 88, ptr %190) #8
  %2490 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %190, ptr noundef nonnull align 8 dereferenceable(176) %2490)
          to label %2491 unwind label %2504

2491:                                             ; preds = %2489
  %2492 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %190)
          to label %2493 unwind label %2508

2493:                                             ; preds = %2491
  %2494 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2492)
          to label %2495 unwind label %2508

2495:                                             ; preds = %2493
  %2496 = icmp eq i32 %2494, 78
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %190) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %190) #8
  br i1 %2496, label %2497, label %2522

2497:                                             ; preds = %2495
  store i8 1, ptr %189, align 1, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 88, ptr %191) #8
  %2498 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %191, ptr noundef nonnull align 8 dereferenceable(176) %2498)
          to label %2499 unwind label %2513

2499:                                             ; preds = %2497
  %2500 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %191)
          to label %2501 unwind label %2517

2501:                                             ; preds = %2499
  %2502 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2500)
          to label %2503 unwind label %2517

2503:                                             ; preds = %2501
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %191) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %191) #8
  br label %2522

2504:                                             ; preds = %2489
  %2505 = landingpad { ptr, i32 }
          cleanup
  %2506 = extractvalue { ptr, i32 } %2505, 0
  store ptr %2506, ptr %14, align 8
  %2507 = extractvalue { ptr, i32 } %2505, 1
  store i32 %2507, ptr %15, align 4
  br label %2512

2508:                                             ; preds = %2493, %2491
  %2509 = landingpad { ptr, i32 }
          cleanup
  %2510 = extractvalue { ptr, i32 } %2509, 0
  store ptr %2510, ptr %14, align 8
  %2511 = extractvalue { ptr, i32 } %2509, 1
  store i32 %2511, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %190) #8
  br label %2512

2512:                                             ; preds = %2508, %2504
  call void @llvm.lifetime.end.p0(i64 88, ptr %190) #8
  br label %2776

2513:                                             ; preds = %2497
  %2514 = landingpad { ptr, i32 }
          cleanup
  %2515 = extractvalue { ptr, i32 } %2514, 0
  store ptr %2515, ptr %14, align 8
  %2516 = extractvalue { ptr, i32 } %2514, 1
  store i32 %2516, ptr %15, align 4
  br label %2521

2517:                                             ; preds = %2501, %2499
  %2518 = landingpad { ptr, i32 }
          cleanup
  %2519 = extractvalue { ptr, i32 } %2518, 0
  store ptr %2519, ptr %14, align 8
  %2520 = extractvalue { ptr, i32 } %2518, 1
  store i32 %2520, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %191) #8
  br label %2521

2521:                                             ; preds = %2517, %2513
  call void @llvm.lifetime.end.p0(i64 88, ptr %191) #8
  br label %2776

2522:                                             ; preds = %2503, %2495
  %2523 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %192, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2524 unwind label %2558

2524:                                             ; preds = %2522
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %2523, ptr noundef %192)
          to label %2525 unwind label %2562

2525:                                             ; preds = %2524
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %192) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %193) #8
  %2526 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind writable sret(%class.RcString) align 8 %193, ptr noundef nonnull align 8 dereferenceable(176) %2526)
          to label %2527 unwind label %2566

2527:                                             ; preds = %2525
  %2528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %193)
          to label %2529 unwind label %2570

2529:                                             ; preds = %2527
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #8
  br label %2530

2530:                                             ; preds = %2529
  call void @llvm.lifetime.start.p0(i64 88, ptr %194) #8
  %2531 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %194, ptr noundef nonnull align 8 dereferenceable(176) %2531)
          to label %2532 unwind label %2575

2532:                                             ; preds = %2530
  %2533 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %194)
          to label %2534 unwind label %2579

2534:                                             ; preds = %2532
  %2535 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2533)
          to label %2536 unwind label %2579

2536:                                             ; preds = %2534
  %2537 = icmp ne i32 %2535, 33
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %194) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %194) #8
  br i1 %2537, label %2538, label %2603

2538:                                             ; preds = %2536
  br label %2539

2539:                                             ; preds = %2538
  %2540 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2541 unwind label %2558

2541:                                             ; preds = %2539
  br i1 %2540, label %2542, label %2584

2542:                                             ; preds = %2541
  %2543 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2544 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2543, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2545 unwind label %2558

2545:                                             ; preds = %2542
  %2546 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2544, ptr noundef @.str.1)
          to label %2547 unwind label %2558

2547:                                             ; preds = %2545
  %2548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2546, ptr noundef @.str.2)
          to label %2549 unwind label %2558

2549:                                             ; preds = %2547
  %2550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2548, ptr noundef @.str.3)
          to label %2551 unwind label %2558

2551:                                             ; preds = %2549
  %2552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2550, i32 noundef 1999)
          to label %2553 unwind label %2558

2553:                                             ; preds = %2551
  %2554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2552, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2555 unwind label %2558

2555:                                             ; preds = %2553
  %2556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2554, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2557 unwind label %2558

2557:                                             ; preds = %2555
  br label %2584

2558:                                             ; preds = %2555, %2553, %2551, %2549, %2547, %2545, %2542, %2539, %2522
  %2559 = landingpad { ptr, i32 }
          cleanup
  %2560 = extractvalue { ptr, i32 } %2559, 0
  store ptr %2560, ptr %14, align 8
  %2561 = extractvalue { ptr, i32 } %2559, 1
  store i32 %2561, ptr %15, align 4
  br label %2776

2562:                                             ; preds = %2524
  %2563 = landingpad { ptr, i32 }
          cleanup
  %2564 = extractvalue { ptr, i32 } %2563, 0
  store ptr %2564, ptr %14, align 8
  %2565 = extractvalue { ptr, i32 } %2563, 1
  store i32 %2565, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %192) #8
  br label %2776

2566:                                             ; preds = %2525
  %2567 = landingpad { ptr, i32 }
          cleanup
  %2568 = extractvalue { ptr, i32 } %2567, 0
  store ptr %2568, ptr %14, align 8
  %2569 = extractvalue { ptr, i32 } %2567, 1
  store i32 %2569, ptr %15, align 4
  br label %2574

2570:                                             ; preds = %2527
  %2571 = landingpad { ptr, i32 }
          cleanup
  %2572 = extractvalue { ptr, i32 } %2571, 0
  store ptr %2572, ptr %14, align 8
  %2573 = extractvalue { ptr, i32 } %2571, 1
  store i32 %2573, ptr %15, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %193) #8
  br label %2574

2574:                                             ; preds = %2570, %2566
  call void @llvm.lifetime.end.p0(i64 8, ptr %193) #8
  br label %2776

2575:                                             ; preds = %2530
  %2576 = landingpad { ptr, i32 }
          cleanup
  %2577 = extractvalue { ptr, i32 } %2576, 0
  store ptr %2577, ptr %14, align 8
  %2578 = extractvalue { ptr, i32 } %2576, 1
  store i32 %2578, ptr %15, align 4
  br label %2583

2579:                                             ; preds = %2534, %2532
  %2580 = landingpad { ptr, i32 }
          cleanup
  %2581 = extractvalue { ptr, i32 } %2580, 0
  store ptr %2581, ptr %14, align 8
  %2582 = extractvalue { ptr, i32 } %2580, 1
  store i32 %2582, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %194) #8
  br label %2583

2583:                                             ; preds = %2579, %2575
  call void @llvm.lifetime.end.p0(i64 88, ptr %194) #8
  br label %2776

2584:                                             ; preds = %2557, %2541
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

2586:                                             ; preds = %2585
  store i1 true, ptr %196, align 1
  %2587 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2588 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %195, i32 noundef 33)
          to label %2589 unwind label %2591

2589:                                             ; preds = %2586
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2587, ptr noundef nonnull align 8 dereferenceable(176) %2588, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %195)
          to label %2590 unwind label %2595

2590:                                             ; preds = %2589
  store i1 false, ptr %196, align 1
  invoke void @__cxa_throw(ptr %2587, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2595

2591:                                             ; preds = %2586
  %2592 = landingpad { ptr, i32 }
          cleanup
  %2593 = extractvalue { ptr, i32 } %2592, 0
  store ptr %2593, ptr %14, align 8
  %2594 = extractvalue { ptr, i32 } %2592, 1
  store i32 %2594, ptr %15, align 4
  br label %2599

2595:                                             ; preds = %2590, %2589
  %2596 = landingpad { ptr, i32 }
          cleanup
  %2597 = extractvalue { ptr, i32 } %2596, 0
  store ptr %2597, ptr %14, align 8
  %2598 = extractvalue { ptr, i32 } %2596, 1
  store i32 %2598, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %195) #8
  br label %2599

2599:                                             ; preds = %2595, %2591
  %2600 = load i1, ptr %196, align 1
  br i1 %2600, label %2601, label %2602

2601:                                             ; preds = %2599
  call void @__cxa_free_exception(ptr %2587) #8
  br label %2602

2602:                                             ; preds = %2601, %2599
  br label %2776

2603:                                             ; preds = %2536
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604
  call void @llvm.lifetime.start.p0(i64 120, ptr %197) #8
  %2606 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z10Parse_TypeR11TokenStreamb(ptr dead_on_unwind writable sret(%class.TypeRef) align 8 %197, ptr noundef nonnull align 8 dereferenceable(176) %2606, i1 noundef zeroext true)
          to label %2607 unwind label %2636

2607:                                             ; preds = %2605
  br label %2608

2608:                                             ; preds = %2607
  call void @llvm.lifetime.start.p0(i64 88, ptr %198) #8
  %2609 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %198, ptr noundef nonnull align 8 dereferenceable(176) %2609)
          to label %2610 unwind label %2640

2610:                                             ; preds = %2608
  %2611 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %198)
          to label %2612 unwind label %2644

2612:                                             ; preds = %2610
  %2613 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2611)
          to label %2614 unwind label %2644

2614:                                             ; preds = %2612
  %2615 = icmp ne i32 %2613, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %198) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %198) #8
  br i1 %2615, label %2616, label %2672

2616:                                             ; preds = %2614
  br label %2617

2617:                                             ; preds = %2616
  %2618 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2619 unwind label %2649

2619:                                             ; preds = %2617
  br i1 %2618, label %2620, label %2653

2620:                                             ; preds = %2619
  %2621 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2621, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2623 unwind label %2649

2623:                                             ; preds = %2620
  %2624 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2622, ptr noundef @.str.1)
          to label %2625 unwind label %2649

2625:                                             ; preds = %2623
  %2626 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2624, ptr noundef @.str.2)
          to label %2627 unwind label %2649

2627:                                             ; preds = %2625
  %2628 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2626, ptr noundef @.str.3)
          to label %2629 unwind label %2649

2629:                                             ; preds = %2627
  %2630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2628, i32 noundef 2002)
          to label %2631 unwind label %2649

2631:                                             ; preds = %2629
  %2632 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2630, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2633 unwind label %2649

2633:                                             ; preds = %2631
  %2634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2632, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2635 unwind label %2649

2635:                                             ; preds = %2633
  br label %2653

2636:                                             ; preds = %2605
  %2637 = landingpad { ptr, i32 }
          cleanup
  %2638 = extractvalue { ptr, i32 } %2637, 0
  store ptr %2638, ptr %14, align 8
  %2639 = extractvalue { ptr, i32 } %2637, 1
  store i32 %2639, ptr %15, align 4
  br label %2775

2640:                                             ; preds = %2608
  %2641 = landingpad { ptr, i32 }
          cleanup
  %2642 = extractvalue { ptr, i32 } %2641, 0
  store ptr %2642, ptr %14, align 8
  %2643 = extractvalue { ptr, i32 } %2641, 1
  store i32 %2643, ptr %15, align 4
  br label %2648

2644:                                             ; preds = %2612, %2610
  %2645 = landingpad { ptr, i32 }
          cleanup
  %2646 = extractvalue { ptr, i32 } %2645, 0
  store ptr %2646, ptr %14, align 8
  %2647 = extractvalue { ptr, i32 } %2645, 1
  store i32 %2647, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %198) #8
  br label %2648

2648:                                             ; preds = %2644, %2640
  call void @llvm.lifetime.end.p0(i64 88, ptr %198) #8
  br label %2774

2649:                                             ; preds = %2633, %2631, %2629, %2627, %2625, %2623, %2620, %2617
  %2650 = landingpad { ptr, i32 }
          cleanup
  %2651 = extractvalue { ptr, i32 } %2650, 0
  store ptr %2651, ptr %14, align 8
  %2652 = extractvalue { ptr, i32 } %2650, 1
  store i32 %2652, ptr %15, align 4
  br label %2774

2653:                                             ; preds = %2635, %2619
  br label %2654

2654:                                             ; preds = %2653
  br label %2655

2655:                                             ; preds = %2654
  store i1 true, ptr %200, align 1
  %2656 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2657 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %199, i32 noundef 50)
          to label %2658 unwind label %2660

2658:                                             ; preds = %2655
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2656, ptr noundef nonnull align 8 dereferenceable(176) %2657, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %199)
          to label %2659 unwind label %2664

2659:                                             ; preds = %2658
  store i1 false, ptr %200, align 1
  invoke void @__cxa_throw(ptr %2656, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2664

2660:                                             ; preds = %2655
  %2661 = landingpad { ptr, i32 }
          cleanup
  %2662 = extractvalue { ptr, i32 } %2661, 0
  store ptr %2662, ptr %14, align 8
  %2663 = extractvalue { ptr, i32 } %2661, 1
  store i32 %2663, ptr %15, align 4
  br label %2668

2664:                                             ; preds = %2659, %2658
  %2665 = landingpad { ptr, i32 }
          cleanup
  %2666 = extractvalue { ptr, i32 } %2665, 0
  store ptr %2666, ptr %14, align 8
  %2667 = extractvalue { ptr, i32 } %2665, 1
  store i32 %2667, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %199) #8
  br label %2668

2668:                                             ; preds = %2664, %2660
  %2669 = load i1, ptr %200, align 1
  br i1 %2669, label %2670, label %2671

2670:                                             ; preds = %2668
  call void @__cxa_free_exception(ptr %2656) #8
  br label %2671

2671:                                             ; preds = %2670, %2668
  br label %2774

2672:                                             ; preds = %2614
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  call void @llvm.lifetime.start.p0(i64 16, ptr %201) #8
  %2675 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z10Parse_ExprR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::Expr") align 8 %201, ptr noundef nonnull align 8 dereferenceable(176) %2675)
          to label %2676 unwind label %2705

2676:                                             ; preds = %2674
  br label %2677

2677:                                             ; preds = %2676
  call void @llvm.lifetime.start.p0(i64 88, ptr %202) #8
  %2678 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %202, ptr noundef nonnull align 8 dereferenceable(176) %2678)
          to label %2679 unwind label %2709

2679:                                             ; preds = %2677
  %2680 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %202)
          to label %2681 unwind label %2713

2681:                                             ; preds = %2679
  %2682 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2680)
          to label %2683 unwind label %2713

2683:                                             ; preds = %2681
  %2684 = icmp ne i32 %2682, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %202) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %202) #8
  br i1 %2684, label %2685, label %2741

2685:                                             ; preds = %2683
  br label %2686

2686:                                             ; preds = %2685
  %2687 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2688 unwind label %2718

2688:                                             ; preds = %2686
  br i1 %2687, label %2689, label %2722

2689:                                             ; preds = %2688
  %2690 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2690, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2692 unwind label %2718

2692:                                             ; preds = %2689
  %2693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2691, ptr noundef @.str.1)
          to label %2694 unwind label %2718

2694:                                             ; preds = %2692
  %2695 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2693, ptr noundef @.str.2)
          to label %2696 unwind label %2718

2696:                                             ; preds = %2694
  %2697 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2695, ptr noundef @.str.3)
          to label %2698 unwind label %2718

2698:                                             ; preds = %2696
  %2699 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2697, i32 noundef 2006)
          to label %2700 unwind label %2718

2700:                                             ; preds = %2698
  %2701 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2699, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2702 unwind label %2718

2702:                                             ; preds = %2700
  %2703 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2701, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2704 unwind label %2718

2704:                                             ; preds = %2702
  br label %2722

2705:                                             ; preds = %2674
  %2706 = landingpad { ptr, i32 }
          cleanup
  %2707 = extractvalue { ptr, i32 } %2706, 0
  store ptr %2707, ptr %14, align 8
  %2708 = extractvalue { ptr, i32 } %2706, 1
  store i32 %2708, ptr %15, align 4
  br label %2773

2709:                                             ; preds = %2677
  %2710 = landingpad { ptr, i32 }
          cleanup
  %2711 = extractvalue { ptr, i32 } %2710, 0
  store ptr %2711, ptr %14, align 8
  %2712 = extractvalue { ptr, i32 } %2710, 1
  store i32 %2712, ptr %15, align 4
  br label %2717

2713:                                             ; preds = %2681, %2679
  %2714 = landingpad { ptr, i32 }
          cleanup
  %2715 = extractvalue { ptr, i32 } %2714, 0
  store ptr %2715, ptr %14, align 8
  %2716 = extractvalue { ptr, i32 } %2714, 1
  store i32 %2716, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %202) #8
  br label %2717

2717:                                             ; preds = %2713, %2709
  call void @llvm.lifetime.end.p0(i64 88, ptr %202) #8
  br label %2772

2718:                                             ; preds = %2702, %2700, %2698, %2696, %2694, %2692, %2689, %2686
  %2719 = landingpad { ptr, i32 }
          cleanup
  %2720 = extractvalue { ptr, i32 } %2719, 0
  store ptr %2720, ptr %14, align 8
  %2721 = extractvalue { ptr, i32 } %2719, 1
  store i32 %2721, ptr %15, align 4
  br label %2772

2722:                                             ; preds = %2704, %2688
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  store i1 true, ptr %204, align 1
  %2725 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2726 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %203, i32 noundef 32)
          to label %2727 unwind label %2729

2727:                                             ; preds = %2724
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2725, ptr noundef nonnull align 8 dereferenceable(176) %2726, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %203)
          to label %2728 unwind label %2733

2728:                                             ; preds = %2727
  store i1 false, ptr %204, align 1
  invoke void @__cxa_throw(ptr %2725, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2733

2729:                                             ; preds = %2724
  %2730 = landingpad { ptr, i32 }
          cleanup
  %2731 = extractvalue { ptr, i32 } %2730, 0
  store ptr %2731, ptr %14, align 8
  %2732 = extractvalue { ptr, i32 } %2730, 1
  store i32 %2732, ptr %15, align 4
  br label %2737

2733:                                             ; preds = %2728, %2727
  %2734 = landingpad { ptr, i32 }
          cleanup
  %2735 = extractvalue { ptr, i32 } %2734, 0
  store ptr %2735, ptr %14, align 8
  %2736 = extractvalue { ptr, i32 } %2734, 1
  store i32 %2736, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %203) #8
  br label %2737

2737:                                             ; preds = %2733, %2729
  %2738 = load i1, ptr %204, align 1
  br i1 %2738, label %2739, label %2740

2739:                                             ; preds = %2737
  call void @__cxa_free_exception(ptr %2725) #8
  br label %2740

2740:                                             ; preds = %2739, %2737
  br label %2772

2741:                                             ; preds = %2683
  br label %2742

2742:                                             ; preds = %2741
  br label %2743

2743:                                             ; preds = %2742
  call void @llvm.lifetime.start.p0(i64 488, ptr %205) #8
  %2744 = load i8, ptr %189, align 1, !tbaa !19, !range !21, !noundef !22
  %2745 = trunc i8 %2744 to i1
  %2746 = zext i1 %2745 to i64
  %2747 = select i1 %2745, i32 2, i32 1
  invoke void @_ZN7TypeRefC2EOS_(ptr noundef nonnull align 8 dereferenceable(120) %207, ptr noundef nonnull align 8 dereferenceable(120) %197)
          to label %2748 unwind label %2753

2748:                                             ; preds = %2743
  call void @_ZN3AST4ExprC2EOS0_(ptr noundef nonnull align 8 dereferenceable(16) %208, ptr noundef nonnull align 8 dereferenceable(16) %201) #8
  invoke void @_ZN3AST6StaticC2ENS0_5ClassE7TypeRefNS_4ExprE(ptr noundef nonnull align 8 dereferenceable(216) %206, i32 noundef %2747, ptr noundef %207, ptr noundef %208)
          to label %2749 unwind label %2757

2749:                                             ; preds = %2748
  invoke void @_ZN3AST4ItemC2ENS_6StaticE(ptr noundef nonnull align 8 dereferenceable(488) %205, ptr noundef %206)
          to label %2750 unwind label %2761

2750:                                             ; preds = %2749
  %2751 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %205)
          to label %2752 unwind label %2765

2752:                                             ; preds = %2750
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %205) #8
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %206) #8
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %208) #8
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %207) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %205) #8
  store i32 18, ptr %33, align 4
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #8
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %197) #8
  call void @llvm.lifetime.end.p0(i64 120, ptr %197) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #8
  br label %5924

2753:                                             ; preds = %2743
  %2754 = landingpad { ptr, i32 }
          cleanup
  %2755 = extractvalue { ptr, i32 } %2754, 0
  store ptr %2755, ptr %14, align 8
  %2756 = extractvalue { ptr, i32 } %2754, 1
  store i32 %2756, ptr %15, align 4
  br label %2771

2757:                                             ; preds = %2748
  %2758 = landingpad { ptr, i32 }
          cleanup
  %2759 = extractvalue { ptr, i32 } %2758, 0
  store ptr %2759, ptr %14, align 8
  %2760 = extractvalue { ptr, i32 } %2758, 1
  store i32 %2760, ptr %15, align 4
  br label %2770

2761:                                             ; preds = %2749
  %2762 = landingpad { ptr, i32 }
          cleanup
  %2763 = extractvalue { ptr, i32 } %2762, 0
  store ptr %2763, ptr %14, align 8
  %2764 = extractvalue { ptr, i32 } %2762, 1
  store i32 %2764, ptr %15, align 4
  br label %2769

2765:                                             ; preds = %2750
  %2766 = landingpad { ptr, i32 }
          cleanup
  %2767 = extractvalue { ptr, i32 } %2766, 0
  store ptr %2767, ptr %14, align 8
  %2768 = extractvalue { ptr, i32 } %2766, 1
  store i32 %2768, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %205) #8
  br label %2769

2769:                                             ; preds = %2765, %2761
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %206) #8
  br label %2770

2770:                                             ; preds = %2769, %2757
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %208) #8
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %207) #8
  br label %2771

2771:                                             ; preds = %2770, %2753
  call void @llvm.lifetime.end.p0(i64 488, ptr %205) #8
  br label %2772

2772:                                             ; preds = %2771, %2740, %2718, %2717
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %201) #8
  br label %2773

2773:                                             ; preds = %2772, %2705
  call void @llvm.lifetime.end.p0(i64 16, ptr %201) #8
  br label %2774

2774:                                             ; preds = %2773, %2671, %2649, %2648
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %197) #8
  br label %2775

2775:                                             ; preds = %2774, %2636
  call void @llvm.lifetime.end.p0(i64 120, ptr %197) #8
  br label %2776

2776:                                             ; preds = %2775, %2602, %2583, %2574, %2562, %2558, %2521, %2512
  call void @llvm.lifetime.end.p0(i64 1, ptr %189) #8
  br label %5945

2777:                                             ; preds = %796
  call void @llvm.lifetime.start.p0(i64 88, ptr %209) #8
  %2778 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %209, ptr noundef nonnull align 8 dereferenceable(176) %2778)
          to label %2779 unwind label %2784

2779:                                             ; preds = %2777
  %2780 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %209)
          to label %2781 unwind label %2788

2781:                                             ; preds = %2779
  %2782 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2780)
          to label %2783 unwind label %2788

2783:                                             ; preds = %2781
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %209) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %209) #8
  switch i32 %2782, label %3418 [
    i32 82, label %2793
    i32 88, label %2986
    i32 87, label %3080
    i32 90, label %3176
    i32 14, label %3252
  ]

2784:                                             ; preds = %2777
  %2785 = landingpad { ptr, i32 }
          cleanup
  %2786 = extractvalue { ptr, i32 } %2785, 0
  store ptr %2786, ptr %14, align 8
  %2787 = extractvalue { ptr, i32 } %2785, 1
  store i32 %2787, ptr %15, align 4
  br label %2792

2788:                                             ; preds = %2781, %2779
  %2789 = landingpad { ptr, i32 }
          cleanup
  %2790 = extractvalue { ptr, i32 } %2789, 0
  store ptr %2790, ptr %14, align 8
  %2791 = extractvalue { ptr, i32 } %2789, 1
  store i32 %2791, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %209) #8
  br label %2792

2792:                                             ; preds = %2788, %2784
  call void @llvm.lifetime.end.p0(i64 88, ptr %209) #8
  br label %5945

2793:                                             ; preds = %2783
  call void @llvm.lifetime.start.p0(i64 32, ptr %210) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %211) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %211)
          to label %2794 unwind label %2806

2794:                                             ; preds = %2793
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr %212) #8
  %2795 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %212, ptr noundef nonnull align 8 dereferenceable(176) %2795)
          to label %2796 unwind label %2810

2796:                                             ; preds = %2794
  %2797 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %212)
          to label %2798 unwind label %2814

2798:                                             ; preds = %2796
  %2799 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2797)
          to label %2800 unwind label %2814

2800:                                             ; preds = %2798
  %2801 = icmp eq i32 %2799, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %212) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %212) #8
  br i1 %2801, label %2802, label %2823

2802:                                             ; preds = %2800
  %2803 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2804 unwind label %2819

2804:                                             ; preds = %2802
  %2805 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %210, ptr noundef nonnull align 8 dereferenceable(32) %2803) #8
  br label %2831

2806:                                             ; preds = %2793
  %2807 = landingpad { ptr, i32 }
          cleanup
  %2808 = extractvalue { ptr, i32 } %2807, 0
  store ptr %2808, ptr %14, align 8
  %2809 = extractvalue { ptr, i32 } %2807, 1
  store i32 %2809, ptr %15, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %211) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %211) #8
  br label %2985

2810:                                             ; preds = %2794
  %2811 = landingpad { ptr, i32 }
          cleanup
  %2812 = extractvalue { ptr, i32 } %2811, 0
  store ptr %2812, ptr %14, align 8
  %2813 = extractvalue { ptr, i32 } %2811, 1
  store i32 %2813, ptr %15, align 4
  br label %2818

2814:                                             ; preds = %2798, %2796
  %2815 = landingpad { ptr, i32 }
          cleanup
  %2816 = extractvalue { ptr, i32 } %2815, 0
  store ptr %2816, ptr %14, align 8
  %2817 = extractvalue { ptr, i32 } %2815, 1
  store i32 %2817, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %212) #8
  br label %2818

2818:                                             ; preds = %2814, %2810
  call void @llvm.lifetime.end.p0(i64 88, ptr %212) #8
  br label %2984

2819:                                             ; preds = %2951, %2949, %2916, %2914, %2912, %2910, %2908, %2906, %2903, %2900, %2857, %2855, %2853, %2851, %2849, %2847, %2844, %2841, %2823, %2802
  %2820 = landingpad { ptr, i32 }
          cleanup
  %2821 = extractvalue { ptr, i32 } %2820, 0
  store ptr %2821, ptr %14, align 8
  %2822 = extractvalue { ptr, i32 } %2820, 1
  store i32 %2822, ptr %15, align 4
  br label %2984

2823:                                             ; preds = %2800
  %2824 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %213, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2825 unwind label %2819

2825:                                             ; preds = %2823
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %2824, ptr noundef %213)
          to label %2826 unwind label %2827

2826:                                             ; preds = %2825
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %213) #8
  br label %2831

2827:                                             ; preds = %2825
  %2828 = landingpad { ptr, i32 }
          cleanup
  %2829 = extractvalue { ptr, i32 } %2828, 0
  store ptr %2829, ptr %14, align 8
  %2830 = extractvalue { ptr, i32 } %2828, 1
  store i32 %2830, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %213) #8
  br label %2984

2831:                                             ; preds = %2826, %2804
  br label %2832

2832:                                             ; preds = %2831
  call void @llvm.lifetime.start.p0(i64 88, ptr %214) #8
  %2833 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %214, ptr noundef nonnull align 8 dereferenceable(176) %2833)
          to label %2834 unwind label %2860

2834:                                             ; preds = %2832
  %2835 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %214)
          to label %2836 unwind label %2864

2836:                                             ; preds = %2834
  %2837 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2835)
          to label %2838 unwind label %2864

2838:                                             ; preds = %2836
  %2839 = icmp ne i32 %2837, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %214) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %214) #8
  br i1 %2839, label %2840, label %2888

2840:                                             ; preds = %2838
  br label %2841

2841:                                             ; preds = %2840
  %2842 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2843 unwind label %2819

2843:                                             ; preds = %2841
  br i1 %2842, label %2844, label %2869

2844:                                             ; preds = %2843
  %2845 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2845, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2847 unwind label %2819

2847:                                             ; preds = %2844
  %2848 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2846, ptr noundef @.str.1)
          to label %2849 unwind label %2819

2849:                                             ; preds = %2847
  %2850 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2848, ptr noundef @.str.2)
          to label %2851 unwind label %2819

2851:                                             ; preds = %2849
  %2852 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2850, ptr noundef @.str.3)
          to label %2853 unwind label %2819

2853:                                             ; preds = %2851
  %2854 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2852, i32 noundef 2025)
          to label %2855 unwind label %2819

2855:                                             ; preds = %2853
  %2856 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2854, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2857 unwind label %2819

2857:                                             ; preds = %2855
  %2858 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2856, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2859 unwind label %2819

2859:                                             ; preds = %2857
  br label %2869

2860:                                             ; preds = %2832
  %2861 = landingpad { ptr, i32 }
          cleanup
  %2862 = extractvalue { ptr, i32 } %2861, 0
  store ptr %2862, ptr %14, align 8
  %2863 = extractvalue { ptr, i32 } %2861, 1
  store i32 %2863, ptr %15, align 4
  br label %2868

2864:                                             ; preds = %2836, %2834
  %2865 = landingpad { ptr, i32 }
          cleanup
  %2866 = extractvalue { ptr, i32 } %2865, 0
  store ptr %2866, ptr %14, align 8
  %2867 = extractvalue { ptr, i32 } %2865, 1
  store i32 %2867, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %214) #8
  br label %2868

2868:                                             ; preds = %2864, %2860
  call void @llvm.lifetime.end.p0(i64 88, ptr %214) #8
  br label %2984

2869:                                             ; preds = %2859, %2843
  br label %2870

2870:                                             ; preds = %2869
  br label %2871

2871:                                             ; preds = %2870
  store i1 true, ptr %216, align 1
  %2872 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2873 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %215, i32 noundef 88)
          to label %2874 unwind label %2876

2874:                                             ; preds = %2871
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2872, ptr noundef nonnull align 8 dereferenceable(176) %2873, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %215)
          to label %2875 unwind label %2880

2875:                                             ; preds = %2874
  store i1 false, ptr %216, align 1
  invoke void @__cxa_throw(ptr %2872, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2880

2876:                                             ; preds = %2871
  %2877 = landingpad { ptr, i32 }
          cleanup
  %2878 = extractvalue { ptr, i32 } %2877, 0
  store ptr %2878, ptr %14, align 8
  %2879 = extractvalue { ptr, i32 } %2877, 1
  store i32 %2879, ptr %15, align 4
  br label %2884

2880:                                             ; preds = %2875, %2874
  %2881 = landingpad { ptr, i32 }
          cleanup
  %2882 = extractvalue { ptr, i32 } %2881, 0
  store ptr %2882, ptr %14, align 8
  %2883 = extractvalue { ptr, i32 } %2881, 1
  store i32 %2883, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %215) #8
  br label %2884

2884:                                             ; preds = %2880, %2876
  %2885 = load i1, ptr %216, align 1
  br i1 %2885, label %2886, label %2887

2886:                                             ; preds = %2884
  call void @__cxa_free_exception(ptr %2872) #8
  br label %2887

2887:                                             ; preds = %2886, %2884
  br label %2984

2888:                                             ; preds = %2838
  br label %2889

2889:                                             ; preds = %2888
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890
  call void @llvm.lifetime.start.p0(i64 88, ptr %217) #8
  %2892 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %217, ptr noundef nonnull align 8 dereferenceable(176) %2892)
          to label %2893 unwind label %2919

2893:                                             ; preds = %2891
  %2894 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %217)
          to label %2895 unwind label %2923

2895:                                             ; preds = %2893
  %2896 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2894)
          to label %2897 unwind label %2923

2897:                                             ; preds = %2895
  %2898 = icmp ne i32 %2896, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %217) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %217) #8
  br i1 %2898, label %2899, label %2947

2899:                                             ; preds = %2897
  br label %2900

2900:                                             ; preds = %2899
  %2901 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2902 unwind label %2819

2902:                                             ; preds = %2900
  br i1 %2901, label %2903, label %2928

2903:                                             ; preds = %2902
  %2904 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2905 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2904, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2906 unwind label %2819

2906:                                             ; preds = %2903
  %2907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2905, ptr noundef @.str.1)
          to label %2908 unwind label %2819

2908:                                             ; preds = %2906
  %2909 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2907, ptr noundef @.str.2)
          to label %2910 unwind label %2819

2910:                                             ; preds = %2908
  %2911 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2909, ptr noundef @.str.3)
          to label %2912 unwind label %2819

2912:                                             ; preds = %2910
  %2913 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2911, i32 noundef 2026)
          to label %2914 unwind label %2819

2914:                                             ; preds = %2912
  %2915 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2913, ptr noundef @_ZSt3decRSt8ios_base)
          to label %2916 unwind label %2819

2916:                                             ; preds = %2914
  %2917 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2915, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2918 unwind label %2819

2918:                                             ; preds = %2916
  br label %2928

2919:                                             ; preds = %2891
  %2920 = landingpad { ptr, i32 }
          cleanup
  %2921 = extractvalue { ptr, i32 } %2920, 0
  store ptr %2921, ptr %14, align 8
  %2922 = extractvalue { ptr, i32 } %2920, 1
  store i32 %2922, ptr %15, align 4
  br label %2927

2923:                                             ; preds = %2895, %2893
  %2924 = landingpad { ptr, i32 }
          cleanup
  %2925 = extractvalue { ptr, i32 } %2924, 0
  store ptr %2925, ptr %14, align 8
  %2926 = extractvalue { ptr, i32 } %2924, 1
  store i32 %2926, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %217) #8
  br label %2927

2927:                                             ; preds = %2923, %2919
  call void @llvm.lifetime.end.p0(i64 88, ptr %217) #8
  br label %2984

2928:                                             ; preds = %2918, %2902
  br label %2929

2929:                                             ; preds = %2928
  br label %2930

2930:                                             ; preds = %2929
  store i1 true, ptr %219, align 1
  %2931 = call ptr @__cxa_allocate_exception(i64 96) #8
  %2932 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %218, i32 noundef 14)
          to label %2933 unwind label %2935

2933:                                             ; preds = %2930
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2931, ptr noundef nonnull align 8 dereferenceable(176) %2932, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %218)
          to label %2934 unwind label %2939

2934:                                             ; preds = %2933
  store i1 false, ptr %219, align 1
  invoke void @__cxa_throw(ptr %2931, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %2939

2935:                                             ; preds = %2930
  %2936 = landingpad { ptr, i32 }
          cleanup
  %2937 = extractvalue { ptr, i32 } %2936, 0
  store ptr %2937, ptr %14, align 8
  %2938 = extractvalue { ptr, i32 } %2936, 1
  store i32 %2938, ptr %15, align 4
  br label %2943

2939:                                             ; preds = %2934, %2933
  %2940 = landingpad { ptr, i32 }
          cleanup
  %2941 = extractvalue { ptr, i32 } %2940, 0
  store ptr %2941, ptr %14, align 8
  %2942 = extractvalue { ptr, i32 } %2940, 1
  store i32 %2942, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %218) #8
  br label %2943

2943:                                             ; preds = %2939, %2935
  %2944 = load i1, ptr %219, align 1
  br i1 %2944, label %2945, label %2946

2945:                                             ; preds = %2943
  call void @__cxa_free_exception(ptr %2931) #8
  br label %2946

2946:                                             ; preds = %2945, %2943
  br label %2984

2947:                                             ; preds = %2897
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948
  %2950 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %2951 unwind label %2819

2951:                                             ; preds = %2949
  %2952 = getelementptr inbounds %struct.Ident, ptr %2950, i32 0, i32 1
  %2953 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %2952)
          to label %2954 unwind label %2819

2954:                                             ; preds = %2951
  call void @llvm.lifetime.start.p0(i64 488, ptr %220) #8
  %2955 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %222, ptr noundef nonnull align 8 dereferenceable(32) %210)
          to label %2956 unwind label %2965

2956:                                             ; preds = %2954
  call void @llvm.lifetime.start.p0(i64 3, ptr %224) #8
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %224)
          to label %2957 unwind label %2969

2957:                                             ; preds = %2956
  %2958 = invoke i24 @_ZNK3AST8Function5Flags10set_unsafeEv(ptr noundef nonnull align 1 dereferenceable(3) %224)
          to label %2959 unwind label %2969

2959:                                             ; preds = %2957
  store i24 %2958, ptr %223, align 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %225, ptr align 1 %223, i64 3, i1 false)
  %2960 = load i24, ptr %225, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %221, ptr noundef nonnull align 8 dereferenceable(176) %2955, i1 noundef zeroext false, ptr noundef %222, i24 %2960)
          to label %2961 unwind label %2969

2961:                                             ; preds = %2959
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %220, ptr noundef %221)
          to label %2962 unwind label %2973

2962:                                             ; preds = %2961
  %2963 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %220)
          to label %2964 unwind label %2977

2964:                                             ; preds = %2962
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %220) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %221) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %224) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %220) #8
  store i32 99, ptr %33, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #8
  br label %3443

2965:                                             ; preds = %2954
  %2966 = landingpad { ptr, i32 }
          cleanup
  %2967 = extractvalue { ptr, i32 } %2966, 0
  store ptr %2967, ptr %14, align 8
  %2968 = extractvalue { ptr, i32 } %2966, 1
  store i32 %2968, ptr %15, align 4
  br label %2983

2969:                                             ; preds = %2959, %2957, %2956
  %2970 = landingpad { ptr, i32 }
          cleanup
  %2971 = extractvalue { ptr, i32 } %2970, 0
  store ptr %2971, ptr %14, align 8
  %2972 = extractvalue { ptr, i32 } %2970, 1
  store i32 %2972, ptr %15, align 4
  br label %2982

2973:                                             ; preds = %2961
  %2974 = landingpad { ptr, i32 }
          cleanup
  %2975 = extractvalue { ptr, i32 } %2974, 0
  store ptr %2975, ptr %14, align 8
  %2976 = extractvalue { ptr, i32 } %2974, 1
  store i32 %2976, ptr %15, align 4
  br label %2981

2977:                                             ; preds = %2962
  %2978 = landingpad { ptr, i32 }
          cleanup
  %2979 = extractvalue { ptr, i32 } %2978, 0
  store ptr %2979, ptr %14, align 8
  %2980 = extractvalue { ptr, i32 } %2978, 1
  store i32 %2980, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %220) #8
  br label %2981

2981:                                             ; preds = %2977, %2973
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %221) #8
  br label %2982

2982:                                             ; preds = %2981, %2969
  call void @llvm.lifetime.end.p0(i64 3, ptr %224) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %222) #8
  br label %2983

2983:                                             ; preds = %2982, %2965
  call void @llvm.lifetime.end.p0(i64 488, ptr %220) #8
  br label %2984

2984:                                             ; preds = %2983, %2946, %2927, %2887, %2868, %2827, %2819, %2818
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %210) #8
  br label %2985

2985:                                             ; preds = %2984, %2806
  call void @llvm.lifetime.end.p0(i64 32, ptr %210) #8
  br label %5945

2986:                                             ; preds = %2783
  br label %2987

2987:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 88, ptr %226) #8
  %2988 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %226, ptr noundef nonnull align 8 dereferenceable(176) %2988)
          to label %2989 unwind label %3015

2989:                                             ; preds = %2987
  %2990 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %226)
          to label %2991 unwind label %3019

2991:                                             ; preds = %2989
  %2992 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2990)
          to label %2993 unwind label %3019

2993:                                             ; preds = %2991
  %2994 = icmp ne i32 %2992, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %226) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %226) #8
  br i1 %2994, label %2995, label %3043

2995:                                             ; preds = %2993
  br label %2996

2996:                                             ; preds = %2995
  %2997 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2998 unwind label %877

2998:                                             ; preds = %2996
  br i1 %2997, label %2999, label %3024

2999:                                             ; preds = %2998
  %3000 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3001 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3000, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3002 unwind label %877

3002:                                             ; preds = %2999
  %3003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3001, ptr noundef @.str.1)
          to label %3004 unwind label %877

3004:                                             ; preds = %3002
  %3005 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3003, ptr noundef @.str.2)
          to label %3006 unwind label %877

3006:                                             ; preds = %3004
  %3007 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3005, ptr noundef @.str.3)
          to label %3008 unwind label %877

3008:                                             ; preds = %3006
  %3009 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3007, i32 noundef 2032)
          to label %3010 unwind label %877

3010:                                             ; preds = %3008
  %3011 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3009, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3012 unwind label %877

3012:                                             ; preds = %3010
  %3013 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3011, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3014 unwind label %877

3014:                                             ; preds = %3012
  br label %3024

3015:                                             ; preds = %2987
  %3016 = landingpad { ptr, i32 }
          cleanup
  %3017 = extractvalue { ptr, i32 } %3016, 0
  store ptr %3017, ptr %14, align 8
  %3018 = extractvalue { ptr, i32 } %3016, 1
  store i32 %3018, ptr %15, align 4
  br label %3023

3019:                                             ; preds = %2991, %2989
  %3020 = landingpad { ptr, i32 }
          cleanup
  %3021 = extractvalue { ptr, i32 } %3020, 0
  store ptr %3021, ptr %14, align 8
  %3022 = extractvalue { ptr, i32 } %3020, 1
  store i32 %3022, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %226) #8
  br label %3023

3023:                                             ; preds = %3019, %3015
  call void @llvm.lifetime.end.p0(i64 88, ptr %226) #8
  br label %5945

3024:                                             ; preds = %3014, %2998
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

3026:                                             ; preds = %3025
  store i1 true, ptr %228, align 1
  %3027 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3028 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %227, i32 noundef 14)
          to label %3029 unwind label %3031

3029:                                             ; preds = %3026
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3027, ptr noundef nonnull align 8 dereferenceable(176) %3028, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %227)
          to label %3030 unwind label %3035

3030:                                             ; preds = %3029
  store i1 false, ptr %228, align 1
  invoke void @__cxa_throw(ptr %3027, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3035

3031:                                             ; preds = %3026
  %3032 = landingpad { ptr, i32 }
          cleanup
  %3033 = extractvalue { ptr, i32 } %3032, 0
  store ptr %3033, ptr %14, align 8
  %3034 = extractvalue { ptr, i32 } %3032, 1
  store i32 %3034, ptr %15, align 4
  br label %3039

3035:                                             ; preds = %3030, %3029
  %3036 = landingpad { ptr, i32 }
          cleanup
  %3037 = extractvalue { ptr, i32 } %3036, 0
  store ptr %3037, ptr %14, align 8
  %3038 = extractvalue { ptr, i32 } %3036, 1
  store i32 %3038, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %227) #8
  br label %3039

3039:                                             ; preds = %3035, %3031
  %3040 = load i1, ptr %228, align 1
  br i1 %3040, label %3041, label %3042

3041:                                             ; preds = %3039
  call void @__cxa_free_exception(ptr %3027) #8
  br label %3042

3042:                                             ; preds = %3041, %3039
  br label %5945

3043:                                             ; preds = %2993
  br label %3044

3044:                                             ; preds = %3043
  br label %3045

3045:                                             ; preds = %3044
  %3046 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3047 unwind label %877

3047:                                             ; preds = %3045
  %3048 = getelementptr inbounds %struct.Ident, ptr %3046, i32 0, i32 1
  %3049 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3048)
          to label %3050 unwind label %877

3050:                                             ; preds = %3047
  call void @llvm.lifetime.start.p0(i64 488, ptr %229) #8
  %3051 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %232) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %231, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %232)
          to label %3052 unwind label %3061

3052:                                             ; preds = %3050
  call void @llvm.lifetime.start.p0(i64 3, ptr %234) #8
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %234)
          to label %3053 unwind label %3065

3053:                                             ; preds = %3052
  %3054 = invoke i24 @_ZNK3AST8Function5Flags10set_unsafeEv(ptr noundef nonnull align 1 dereferenceable(3) %234)
          to label %3055 unwind label %3065

3055:                                             ; preds = %3053
  store i24 %3054, ptr %233, align 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %235, ptr align 1 %233, i64 3, i1 false)
  %3056 = load i24, ptr %235, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %230, ptr noundef nonnull align 8 dereferenceable(176) %3051, i1 noundef zeroext false, ptr noundef %231, i24 %3056)
          to label %3057 unwind label %3065

3057:                                             ; preds = %3055
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %229, ptr noundef %230)
          to label %3058 unwind label %3069

3058:                                             ; preds = %3057
  %3059 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %229)
          to label %3060 unwind label %3073

3060:                                             ; preds = %3058
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %229) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %230) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %234) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %229) #8
  br label %3443

3061:                                             ; preds = %3050
  %3062 = landingpad { ptr, i32 }
          cleanup
  %3063 = extractvalue { ptr, i32 } %3062, 0
  store ptr %3063, ptr %14, align 8
  %3064 = extractvalue { ptr, i32 } %3062, 1
  store i32 %3064, ptr %15, align 4
  br label %3079

3065:                                             ; preds = %3055, %3053, %3052
  %3066 = landingpad { ptr, i32 }
          cleanup
  %3067 = extractvalue { ptr, i32 } %3066, 0
  store ptr %3067, ptr %14, align 8
  %3068 = extractvalue { ptr, i32 } %3066, 1
  store i32 %3068, ptr %15, align 4
  br label %3078

3069:                                             ; preds = %3057
  %3070 = landingpad { ptr, i32 }
          cleanup
  %3071 = extractvalue { ptr, i32 } %3070, 0
  store ptr %3071, ptr %14, align 8
  %3072 = extractvalue { ptr, i32 } %3070, 1
  store i32 %3072, ptr %15, align 4
  br label %3077

3073:                                             ; preds = %3058
  %3074 = landingpad { ptr, i32 }
          cleanup
  %3075 = extractvalue { ptr, i32 } %3074, 0
  store ptr %3075, ptr %14, align 8
  %3076 = extractvalue { ptr, i32 } %3074, 1
  store i32 %3076, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %229) #8
  br label %3077

3077:                                             ; preds = %3073, %3069
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %230) #8
  br label %3078

3078:                                             ; preds = %3077, %3065
  call void @llvm.lifetime.end.p0(i64 3, ptr %234) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %231) #8
  br label %3079

3079:                                             ; preds = %3078, %3061
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %232) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %232) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %229) #8
  br label %5945

3080:                                             ; preds = %2783
  br label %3081

3081:                                             ; preds = %3080
  call void @llvm.lifetime.start.p0(i64 88, ptr %236) #8
  %3082 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %236, ptr noundef nonnull align 8 dereferenceable(176) %3082)
          to label %3083 unwind label %3109

3083:                                             ; preds = %3081
  %3084 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %236)
          to label %3085 unwind label %3113

3085:                                             ; preds = %3083
  %3086 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3084)
          to label %3087 unwind label %3113

3087:                                             ; preds = %3085
  %3088 = icmp ne i32 %3086, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %236) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %236) #8
  br i1 %3088, label %3089, label %3137

3089:                                             ; preds = %3087
  br label %3090

3090:                                             ; preds = %3089
  %3091 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3092 unwind label %877

3092:                                             ; preds = %3090
  br i1 %3091, label %3093, label %3118

3093:                                             ; preds = %3092
  %3094 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3095 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3094, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3096 unwind label %877

3096:                                             ; preds = %3093
  %3097 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3095, ptr noundef @.str.1)
          to label %3098 unwind label %877

3098:                                             ; preds = %3096
  %3099 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3097, ptr noundef @.str.2)
          to label %3100 unwind label %877

3100:                                             ; preds = %3098
  %3101 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3099, ptr noundef @.str.3)
          to label %3102 unwind label %877

3102:                                             ; preds = %3100
  %3103 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3101, i32 noundef 2039)
          to label %3104 unwind label %877

3104:                                             ; preds = %3102
  %3105 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3103, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3106 unwind label %877

3106:                                             ; preds = %3104
  %3107 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3105, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3108 unwind label %877

3108:                                             ; preds = %3106
  br label %3118

3109:                                             ; preds = %3081
  %3110 = landingpad { ptr, i32 }
          cleanup
  %3111 = extractvalue { ptr, i32 } %3110, 0
  store ptr %3111, ptr %14, align 8
  %3112 = extractvalue { ptr, i32 } %3110, 1
  store i32 %3112, ptr %15, align 4
  br label %3117

3113:                                             ; preds = %3085, %3083
  %3114 = landingpad { ptr, i32 }
          cleanup
  %3115 = extractvalue { ptr, i32 } %3114, 0
  store ptr %3115, ptr %14, align 8
  %3116 = extractvalue { ptr, i32 } %3114, 1
  store i32 %3116, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %236) #8
  br label %3117

3117:                                             ; preds = %3113, %3109
  call void @llvm.lifetime.end.p0(i64 88, ptr %236) #8
  br label %5945

3118:                                             ; preds = %3108, %3092
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

3120:                                             ; preds = %3119
  store i1 true, ptr %238, align 1
  %3121 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3122 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %237, i32 noundef 14)
          to label %3123 unwind label %3125

3123:                                             ; preds = %3120
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3121, ptr noundef nonnull align 8 dereferenceable(176) %3122, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %237)
          to label %3124 unwind label %3129

3124:                                             ; preds = %3123
  store i1 false, ptr %238, align 1
  invoke void @__cxa_throw(ptr %3121, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3129

3125:                                             ; preds = %3120
  %3126 = landingpad { ptr, i32 }
          cleanup
  %3127 = extractvalue { ptr, i32 } %3126, 0
  store ptr %3127, ptr %14, align 8
  %3128 = extractvalue { ptr, i32 } %3126, 1
  store i32 %3128, ptr %15, align 4
  br label %3133

3129:                                             ; preds = %3124, %3123
  %3130 = landingpad { ptr, i32 }
          cleanup
  %3131 = extractvalue { ptr, i32 } %3130, 0
  store ptr %3131, ptr %14, align 8
  %3132 = extractvalue { ptr, i32 } %3130, 1
  store i32 %3132, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %237) #8
  br label %3133

3133:                                             ; preds = %3129, %3125
  %3134 = load i1, ptr %238, align 1
  br i1 %3134, label %3135, label %3136

3135:                                             ; preds = %3133
  call void @__cxa_free_exception(ptr %3121) #8
  br label %3136

3136:                                             ; preds = %3135, %3133
  br label %5945

3137:                                             ; preds = %3087
  br label %3138

3138:                                             ; preds = %3137
  br label %3139

3139:                                             ; preds = %3138
  %3140 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3141 unwind label %877

3141:                                             ; preds = %3139
  %3142 = getelementptr inbounds %struct.Ident, ptr %3140, i32 0, i32 1
  %3143 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3142)
          to label %3144 unwind label %877

3144:                                             ; preds = %3141
  call void @llvm.lifetime.start.p0(i64 128, ptr %239) #8
  %3145 = load ptr, ptr %7, align 8, !tbaa !5
  %3146 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::GenericParams") align 8 %240, ptr noundef nonnull align 8 dereferenceable(176) %3146)
          to label %3147 unwind label %3153

3147:                                             ; preds = %3144
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.AST::Trait") align 8 %239, ptr noundef nonnull align 8 dereferenceable(176) %3145, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef %240)
          to label %3148 unwind label %3157

3148:                                             ; preds = %3147
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %240) #8
  invoke void @_ZN3AST5Trait13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(128) %239)
          to label %3149 unwind label %3161

3149:                                             ; preds = %3148
  call void @llvm.lifetime.start.p0(i64 488, ptr %241) #8
  call void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128) %242, ptr noundef nonnull align 8 dereferenceable(128) %239) #8
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %241, ptr noundef %242)
          to label %3150 unwind label %3165

3150:                                             ; preds = %3149
  %3151 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %241)
          to label %3152 unwind label %3169

3152:                                             ; preds = %3150
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %241) #8
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %242) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %241) #8
  store i32 99, ptr %33, align 4
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %239) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %239) #8
  br label %3443

3153:                                             ; preds = %3144
  %3154 = landingpad { ptr, i32 }
          cleanup
  %3155 = extractvalue { ptr, i32 } %3154, 0
  store ptr %3155, ptr %14, align 8
  %3156 = extractvalue { ptr, i32 } %3154, 1
  store i32 %3156, ptr %15, align 4
  br label %3175

3157:                                             ; preds = %3147
  %3158 = landingpad { ptr, i32 }
          cleanup
  %3159 = extractvalue { ptr, i32 } %3158, 0
  store ptr %3159, ptr %14, align 8
  %3160 = extractvalue { ptr, i32 } %3158, 1
  store i32 %3160, ptr %15, align 4
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %240) #8
  br label %3175

3161:                                             ; preds = %3148
  %3162 = landingpad { ptr, i32 }
          cleanup
  %3163 = extractvalue { ptr, i32 } %3162, 0
  store ptr %3163, ptr %14, align 8
  %3164 = extractvalue { ptr, i32 } %3162, 1
  store i32 %3164, ptr %15, align 4
  br label %3174

3165:                                             ; preds = %3149
  %3166 = landingpad { ptr, i32 }
          cleanup
  %3167 = extractvalue { ptr, i32 } %3166, 0
  store ptr %3167, ptr %14, align 8
  %3168 = extractvalue { ptr, i32 } %3166, 1
  store i32 %3168, ptr %15, align 4
  br label %3173

3169:                                             ; preds = %3150
  %3170 = landingpad { ptr, i32 }
          cleanup
  %3171 = extractvalue { ptr, i32 } %3170, 0
  store ptr %3171, ptr %14, align 8
  %3172 = extractvalue { ptr, i32 } %3170, 1
  store i32 %3172, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %241) #8
  br label %3173

3173:                                             ; preds = %3169, %3165
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %242) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %241) #8
  br label %3174

3174:                                             ; preds = %3173, %3161
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %239) #8
  br label %3175

3175:                                             ; preds = %3174, %3157, %3153
  call void @llvm.lifetime.end.p0(i64 128, ptr %239) #8
  br label %5945

3176:                                             ; preds = %2783
  call void @llvm.lifetime.start.p0(i64 488, ptr %243) #8
  %3177 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %244, ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  invoke void @_Z10Parse_ImplR11TokenStreamN3AST13AttributeListEb(ptr dead_on_unwind writable sret(%"class.AST::Item") align 8 %243, ptr noundef nonnull align 8 dereferenceable(176) %3177, ptr noundef %244, i1 noundef zeroext true)
          to label %3178 unwind label %3187

3178:                                             ; preds = %3176
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %244) #8
  %3179 = invoke noundef zeroext i1 @_ZNK3AST4Item7is_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %243)
          to label %3180 unwind label %3191

3180:                                             ; preds = %3178
  br i1 %3179, label %3181, label %3195

3181:                                             ; preds = %3180
  %3182 = invoke noundef nonnull align 8 dereferenceable(472) ptr @_ZN3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %243)
          to label %3183 unwind label %3191

3183:                                             ; preds = %3181
  %3184 = invoke noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Impl3defEv(ptr noundef nonnull align 8 dereferenceable(472) %3182)
          to label %3185 unwind label %3191

3185:                                             ; preds = %3183
  invoke void @_ZN3AST7ImplDef13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(448) %3184)
          to label %3186 unwind label %3191

3186:                                             ; preds = %3185
  br label %3225

3187:                                             ; preds = %3176
  %3188 = landingpad { ptr, i32 }
          cleanup
  %3189 = extractvalue { ptr, i32 } %3188, 0
  store ptr %3189, ptr %14, align 8
  %3190 = extractvalue { ptr, i32 } %3188, 1
  store i32 %3190, ptr %15, align 4
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %244) #8
  br label %3251

3191:                                             ; preds = %3225, %3208, %3200, %3198, %3195, %3185, %3183, %3181, %3178
  %3192 = landingpad { ptr, i32 }
          cleanup
  %3193 = extractvalue { ptr, i32 } %3192, 0
  store ptr %3193, ptr %14, align 8
  %3194 = extractvalue { ptr, i32 } %3192, 1
  store i32 %3194, ptr %15, align 4
  br label %3250

3195:                                             ; preds = %3180
  %3196 = invoke noundef zeroext i1 @_ZNK3AST4Item10is_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %243)
          to label %3197 unwind label %3191

3197:                                             ; preds = %3195
  br i1 %3196, label %3198, label %3202

3198:                                             ; preds = %3197
  %3199 = invoke noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %243)
          to label %3200 unwind label %3191

3200:                                             ; preds = %3198
  invoke void @_ZN3AST7ImplDef13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(448) %3199)
          to label %3201 unwind label %3191

3201:                                             ; preds = %3200
  br label %3224

3202:                                             ; preds = %3197
  br label %3203

3203:                                             ; preds = %3202
  call void @llvm.lifetime.start.p0(i64 8, ptr %245) #8
  %3204 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %245, ptr noundef nonnull align 8 dereferenceable(176) %3204)
          to label %3205 unwind label %3209

3205:                                             ; preds = %3203
  call void @llvm.lifetime.start.p0(i64 1, ptr %247) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %246, ptr noundef nonnull align 1 dereferenceable(1) %247) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef %246)
          to label %3206 unwind label %3213

3206:                                             ; preds = %3205
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #8
  %3207 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3207, ptr noundef @.str.16)
          to label %3208 unwind label %3218

3208:                                             ; preds = %3206
  invoke void @__cxa_throw(ptr %3207, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %3191

3209:                                             ; preds = %3203
  %3210 = landingpad { ptr, i32 }
          cleanup
  %3211 = extractvalue { ptr, i32 } %3210, 0
  store ptr %3211, ptr %14, align 8
  %3212 = extractvalue { ptr, i32 } %3210, 1
  store i32 %3212, ptr %15, align 4
  br label %3217

3213:                                             ; preds = %3205
  %3214 = landingpad { ptr, i32 }
          cleanup
  %3215 = extractvalue { ptr, i32 } %3214, 0
  store ptr %3215, ptr %14, align 8
  %3216 = extractvalue { ptr, i32 } %3214, 1
  store i32 %3216, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %246) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %247) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #8
  br label %3217

3217:                                             ; preds = %3213, %3209
  call void @llvm.lifetime.end.p0(i64 8, ptr %245) #8
  br label %3250

3218:                                             ; preds = %3206
  %3219 = landingpad { ptr, i32 }
          cleanup
  %3220 = extractvalue { ptr, i32 } %3219, 0
  store ptr %3220, ptr %14, align 8
  %3221 = extractvalue { ptr, i32 } %3219, 1
  store i32 %3221, ptr %15, align 4
  call void @__cxa_free_exception(ptr %3207) #8
  br label %3250

3222:                                             ; No predecessors!
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223, %3201
  br label %3225

3225:                                             ; preds = %3224, %3186
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %248)
          to label %3226 unwind label %3191

3226:                                             ; preds = %3225
  invoke void @_ZN3AST13AttributeListC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %249)
          to label %3227 unwind label %3231

3227:                                             ; preds = %3226
  invoke void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind writable sret(%"class.AST::Visibility") align 8 %250)
          to label %3228 unwind label %3235

3228:                                             ; preds = %3227
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %251, ptr noundef @.str)
          to label %3229 unwind label %3239

3229:                                             ; preds = %3228
  call void @_ZN3AST4ItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(488) %252, ptr noundef nonnull align 8 dereferenceable(488) %243) #8
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef %248, ptr noundef %249, ptr noundef %250, ptr noundef %251, ptr noundef %252)
          to label %3230 unwind label %3243

3230:                                             ; preds = %3229
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %252) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #8
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %250) #8
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %249) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #8
  store i32 1, ptr %33, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %243) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %243) #8
  br label %5944

3231:                                             ; preds = %3226
  %3232 = landingpad { ptr, i32 }
          cleanup
  %3233 = extractvalue { ptr, i32 } %3232, 0
  store ptr %3233, ptr %14, align 8
  %3234 = extractvalue { ptr, i32 } %3232, 1
  store i32 %3234, ptr %15, align 4
  br label %3249

3235:                                             ; preds = %3227
  %3236 = landingpad { ptr, i32 }
          cleanup
  %3237 = extractvalue { ptr, i32 } %3236, 0
  store ptr %3237, ptr %14, align 8
  %3238 = extractvalue { ptr, i32 } %3236, 1
  store i32 %3238, ptr %15, align 4
  br label %3248

3239:                                             ; preds = %3228
  %3240 = landingpad { ptr, i32 }
          cleanup
  %3241 = extractvalue { ptr, i32 } %3240, 0
  store ptr %3241, ptr %14, align 8
  %3242 = extractvalue { ptr, i32 } %3240, 1
  store i32 %3242, ptr %15, align 4
  br label %3247

3243:                                             ; preds = %3229
  %3244 = landingpad { ptr, i32 }
          cleanup
  %3245 = extractvalue { ptr, i32 } %3244, 0
  store ptr %3245, ptr %14, align 8
  %3246 = extractvalue { ptr, i32 } %3244, 1
  store i32 %3246, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %252) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %251) #8
  br label %3247

3247:                                             ; preds = %3243, %3239
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %250) #8
  br label %3248

3248:                                             ; preds = %3247, %3235
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %249) #8
  br label %3249

3249:                                             ; preds = %3248, %3231
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %248) #8
  br label %3250

3250:                                             ; preds = %3249, %3218, %3217, %3191
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %243) #8
  br label %3251

3251:                                             ; preds = %3250, %3187
  call void @llvm.lifetime.end.p0(i64 488, ptr %243) #8
  br label %5945

3252:                                             ; preds = %2783
  %3253 = load i32, ptr @gTargetVersion, align 4, !tbaa !23
  %3254 = icmp sge i32 %3253, 1
  br i1 %3254, label %3255, label %3417

3255:                                             ; preds = %3252
  %3256 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3257 unwind label %877

3257:                                             ; preds = %3255
  %3258 = getelementptr inbounds %struct.Ident, ptr %3256, i32 0, i32 1
  %3259 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %3258, ptr noundef @.str.22)
          to label %3260 unwind label %877

3260:                                             ; preds = %3257
  br i1 %3259, label %3261, label %3417

3261:                                             ; preds = %3260
  br label %3262

3262:                                             ; preds = %3261
  call void @llvm.lifetime.start.p0(i64 88, ptr %253) #8
  %3263 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %253, ptr noundef nonnull align 8 dereferenceable(176) %3263)
          to label %3264 unwind label %3290

3264:                                             ; preds = %3262
  %3265 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %253)
          to label %3266 unwind label %3294

3266:                                             ; preds = %3264
  %3267 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3265)
          to label %3268 unwind label %3294

3268:                                             ; preds = %3266
  %3269 = icmp ne i32 %3267, 87
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %253) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %253) #8
  br i1 %3269, label %3270, label %3318

3270:                                             ; preds = %3268
  br label %3271

3271:                                             ; preds = %3270
  %3272 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3273 unwind label %877

3273:                                             ; preds = %3271
  br i1 %3272, label %3274, label %3299

3274:                                             ; preds = %3273
  %3275 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3275, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3277 unwind label %877

3277:                                             ; preds = %3274
  %3278 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3276, ptr noundef @.str.1)
          to label %3279 unwind label %877

3279:                                             ; preds = %3277
  %3280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3278, ptr noundef @.str.2)
          to label %3281 unwind label %877

3281:                                             ; preds = %3279
  %3282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3280, ptr noundef @.str.3)
          to label %3283 unwind label %877

3283:                                             ; preds = %3281
  %3284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3282, i32 noundef 2063)
          to label %3285 unwind label %877

3285:                                             ; preds = %3283
  %3286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3284, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3287 unwind label %877

3287:                                             ; preds = %3285
  %3288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3286, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3289 unwind label %877

3289:                                             ; preds = %3287
  br label %3299

3290:                                             ; preds = %3262
  %3291 = landingpad { ptr, i32 }
          cleanup
  %3292 = extractvalue { ptr, i32 } %3291, 0
  store ptr %3292, ptr %14, align 8
  %3293 = extractvalue { ptr, i32 } %3291, 1
  store i32 %3293, ptr %15, align 4
  br label %3298

3294:                                             ; preds = %3266, %3264
  %3295 = landingpad { ptr, i32 }
          cleanup
  %3296 = extractvalue { ptr, i32 } %3295, 0
  store ptr %3296, ptr %14, align 8
  %3297 = extractvalue { ptr, i32 } %3295, 1
  store i32 %3297, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %253) #8
  br label %3298

3298:                                             ; preds = %3294, %3290
  call void @llvm.lifetime.end.p0(i64 88, ptr %253) #8
  br label %5945

3299:                                             ; preds = %3289, %3273
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

3301:                                             ; preds = %3300
  store i1 true, ptr %255, align 1
  %3302 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3303 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %254, i32 noundef 87)
          to label %3304 unwind label %3306

3304:                                             ; preds = %3301
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3302, ptr noundef nonnull align 8 dereferenceable(176) %3303, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %254)
          to label %3305 unwind label %3310

3305:                                             ; preds = %3304
  store i1 false, ptr %255, align 1
  invoke void @__cxa_throw(ptr %3302, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3310

3306:                                             ; preds = %3301
  %3307 = landingpad { ptr, i32 }
          cleanup
  %3308 = extractvalue { ptr, i32 } %3307, 0
  store ptr %3308, ptr %14, align 8
  %3309 = extractvalue { ptr, i32 } %3307, 1
  store i32 %3309, ptr %15, align 4
  br label %3314

3310:                                             ; preds = %3305, %3304
  %3311 = landingpad { ptr, i32 }
          cleanup
  %3312 = extractvalue { ptr, i32 } %3311, 0
  store ptr %3312, ptr %14, align 8
  %3313 = extractvalue { ptr, i32 } %3311, 1
  store i32 %3313, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %254) #8
  br label %3314

3314:                                             ; preds = %3310, %3306
  %3315 = load i1, ptr %255, align 1
  br i1 %3315, label %3316, label %3317

3316:                                             ; preds = %3314
  call void @__cxa_free_exception(ptr %3302) #8
  br label %3317

3317:                                             ; preds = %3316, %3314
  br label %5945

3318:                                             ; preds = %3268
  br label %3319

3319:                                             ; preds = %3318
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320
  call void @llvm.lifetime.start.p0(i64 88, ptr %256) #8
  %3322 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %256, ptr noundef nonnull align 8 dereferenceable(176) %3322)
          to label %3323 unwind label %3349

3323:                                             ; preds = %3321
  %3324 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %256)
          to label %3325 unwind label %3353

3325:                                             ; preds = %3323
  %3326 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3324)
          to label %3327 unwind label %3353

3327:                                             ; preds = %3325
  %3328 = icmp ne i32 %3326, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %256) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %256) #8
  br i1 %3328, label %3329, label %3377

3329:                                             ; preds = %3327
  br label %3330

3330:                                             ; preds = %3329
  %3331 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3332 unwind label %877

3332:                                             ; preds = %3330
  br i1 %3331, label %3333, label %3358

3333:                                             ; preds = %3332
  %3334 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3334, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3336 unwind label %877

3336:                                             ; preds = %3333
  %3337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3335, ptr noundef @.str.1)
          to label %3338 unwind label %877

3338:                                             ; preds = %3336
  %3339 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3337, ptr noundef @.str.2)
          to label %3340 unwind label %877

3340:                                             ; preds = %3338
  %3341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3339, ptr noundef @.str.3)
          to label %3342 unwind label %877

3342:                                             ; preds = %3340
  %3343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3341, i32 noundef 2064)
          to label %3344 unwind label %877

3344:                                             ; preds = %3342
  %3345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3343, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3346 unwind label %877

3346:                                             ; preds = %3344
  %3347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3345, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3348 unwind label %877

3348:                                             ; preds = %3346
  br label %3358

3349:                                             ; preds = %3321
  %3350 = landingpad { ptr, i32 }
          cleanup
  %3351 = extractvalue { ptr, i32 } %3350, 0
  store ptr %3351, ptr %14, align 8
  %3352 = extractvalue { ptr, i32 } %3350, 1
  store i32 %3352, ptr %15, align 4
  br label %3357

3353:                                             ; preds = %3325, %3323
  %3354 = landingpad { ptr, i32 }
          cleanup
  %3355 = extractvalue { ptr, i32 } %3354, 0
  store ptr %3355, ptr %14, align 8
  %3356 = extractvalue { ptr, i32 } %3354, 1
  store i32 %3356, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %256) #8
  br label %3357

3357:                                             ; preds = %3353, %3349
  call void @llvm.lifetime.end.p0(i64 88, ptr %256) #8
  br label %5945

3358:                                             ; preds = %3348, %3332
  br label %3359

3359:                                             ; preds = %3358
  br label %3360

3360:                                             ; preds = %3359
  store i1 true, ptr %258, align 1
  %3361 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3362 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %257, i32 noundef 14)
          to label %3363 unwind label %3365

3363:                                             ; preds = %3360
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3361, ptr noundef nonnull align 8 dereferenceable(176) %3362, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %257)
          to label %3364 unwind label %3369

3364:                                             ; preds = %3363
  store i1 false, ptr %258, align 1
  invoke void @__cxa_throw(ptr %3361, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3369

3365:                                             ; preds = %3360
  %3366 = landingpad { ptr, i32 }
          cleanup
  %3367 = extractvalue { ptr, i32 } %3366, 0
  store ptr %3367, ptr %14, align 8
  %3368 = extractvalue { ptr, i32 } %3366, 1
  store i32 %3368, ptr %15, align 4
  br label %3373

3369:                                             ; preds = %3364, %3363
  %3370 = landingpad { ptr, i32 }
          cleanup
  %3371 = extractvalue { ptr, i32 } %3370, 0
  store ptr %3371, ptr %14, align 8
  %3372 = extractvalue { ptr, i32 } %3370, 1
  store i32 %3372, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %257) #8
  br label %3373

3373:                                             ; preds = %3369, %3365
  %3374 = load i1, ptr %258, align 1
  br i1 %3374, label %3375, label %3376

3375:                                             ; preds = %3373
  call void @__cxa_free_exception(ptr %3361) #8
  br label %3376

3376:                                             ; preds = %3375, %3373
  br label %5945

3377:                                             ; preds = %3327
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

3379:                                             ; preds = %3378
  %3380 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3381 unwind label %877

3381:                                             ; preds = %3379
  %3382 = getelementptr inbounds %struct.Ident, ptr %3380, i32 0, i32 1
  %3383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3382)
          to label %3384 unwind label %877

3384:                                             ; preds = %3381
  call void @llvm.lifetime.start.p0(i64 128, ptr %259) #8
  %3385 = load ptr, ptr %7, align 8, !tbaa !5
  %3386 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::GenericParams") align 8 %260, ptr noundef nonnull align 8 dereferenceable(176) %3386)
          to label %3387 unwind label %3394

3387:                                             ; preds = %3384
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.AST::Trait") align 8 %259, ptr noundef nonnull align 8 dereferenceable(176) %3385, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef %260)
          to label %3388 unwind label %3398

3388:                                             ; preds = %3387
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %260) #8
  invoke void @_ZN3AST5Trait13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(128) %259)
          to label %3389 unwind label %3402

3389:                                             ; preds = %3388
  invoke void @_ZN3AST5Trait13set_is_markerEv(ptr noundef nonnull align 8 dereferenceable(128) %259)
          to label %3390 unwind label %3402

3390:                                             ; preds = %3389
  call void @llvm.lifetime.start.p0(i64 488, ptr %261) #8
  call void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128) %262, ptr noundef nonnull align 8 dereferenceable(128) %259) #8
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %261, ptr noundef %262)
          to label %3391 unwind label %3406

3391:                                             ; preds = %3390
  %3392 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %261)
          to label %3393 unwind label %3410

3393:                                             ; preds = %3391
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %261) #8
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %262) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %261) #8
  store i32 99, ptr %33, align 4
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %259) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %259) #8
  br label %3443

3394:                                             ; preds = %3384
  %3395 = landingpad { ptr, i32 }
          cleanup
  %3396 = extractvalue { ptr, i32 } %3395, 0
  store ptr %3396, ptr %14, align 8
  %3397 = extractvalue { ptr, i32 } %3395, 1
  store i32 %3397, ptr %15, align 4
  br label %3416

3398:                                             ; preds = %3387
  %3399 = landingpad { ptr, i32 }
          cleanup
  %3400 = extractvalue { ptr, i32 } %3399, 0
  store ptr %3400, ptr %14, align 8
  %3401 = extractvalue { ptr, i32 } %3399, 1
  store i32 %3401, ptr %15, align 4
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %260) #8
  br label %3416

3402:                                             ; preds = %3389, %3388
  %3403 = landingpad { ptr, i32 }
          cleanup
  %3404 = extractvalue { ptr, i32 } %3403, 0
  store ptr %3404, ptr %14, align 8
  %3405 = extractvalue { ptr, i32 } %3403, 1
  store i32 %3405, ptr %15, align 4
  br label %3415

3406:                                             ; preds = %3390
  %3407 = landingpad { ptr, i32 }
          cleanup
  %3408 = extractvalue { ptr, i32 } %3407, 0
  store ptr %3408, ptr %14, align 8
  %3409 = extractvalue { ptr, i32 } %3407, 1
  store i32 %3409, ptr %15, align 4
  br label %3414

3410:                                             ; preds = %3391
  %3411 = landingpad { ptr, i32 }
          cleanup
  %3412 = extractvalue { ptr, i32 } %3411, 0
  store ptr %3412, ptr %14, align 8
  %3413 = extractvalue { ptr, i32 } %3411, 1
  store i32 %3413, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %261) #8
  br label %3414

3414:                                             ; preds = %3410, %3406
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %262) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %261) #8
  br label %3415

3415:                                             ; preds = %3414, %3402
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %259) #8
  br label %3416

3416:                                             ; preds = %3415, %3398, %3394
  call void @llvm.lifetime.end.p0(i64 128, ptr %259) #8
  br label %5945

3417:                                             ; preds = %3260, %3252
  br label %3418

3418:                                             ; preds = %3417, %2783
  store i1 true, ptr %267, align 1
  %3419 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3420 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 12, ptr %265) #8
  store i32 88, ptr %265, align 4, !tbaa !13
  %3421 = getelementptr inbounds i32, ptr %265, i64 1
  store i32 87, ptr %3421, align 4, !tbaa !13
  %3422 = getelementptr inbounds i32, ptr %265, i64 2
  store i32 90, ptr %3422, align 4, !tbaa !13
  %3423 = getelementptr inbounds %"class.std::initializer_list", ptr %264, i32 0, i32 0
  store ptr %265, ptr %3423, align 8, !tbaa !15
  %3424 = getelementptr inbounds %"class.std::initializer_list", ptr %264, i32 0, i32 1
  store i64 3, ptr %3424, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 1, ptr %266) #8
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #8
  %3425 = getelementptr inbounds { ptr, i64 }, ptr %264, i32 0, i32 0
  %3426 = load ptr, ptr %3425, align 8
  %3427 = getelementptr inbounds { ptr, i64 }, ptr %264, i32 0, i32 1
  %3428 = load i64, ptr %3427, align 8
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %263, ptr %3426, i64 %3428, ptr noundef nonnull align 1 dereferenceable(1) %266)
          to label %3429 unwind label %3431

3429:                                             ; preds = %3418
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %3419, ptr noundef nonnull align 8 dereferenceable(176) %3420, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %263)
          to label %3430 unwind label %3435

3430:                                             ; preds = %3429
  store i1 false, ptr %267, align 1
  invoke void @__cxa_throw(ptr %3419, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3435

3431:                                             ; preds = %3418
  %3432 = landingpad { ptr, i32 }
          cleanup
  %3433 = extractvalue { ptr, i32 } %3432, 0
  store ptr %3433, ptr %14, align 8
  %3434 = extractvalue { ptr, i32 } %3432, 1
  store i32 %3434, ptr %15, align 4
  br label %3439

3435:                                             ; preds = %3430, %3429
  %3436 = landingpad { ptr, i32 }
          cleanup
  %3437 = extractvalue { ptr, i32 } %3436, 0
  store ptr %3437, ptr %14, align 8
  %3438 = extractvalue { ptr, i32 } %3436, 1
  store i32 %3438, ptr %15, align 4
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %263) #8
  br label %3439

3439:                                             ; preds = %3435, %3431
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %266) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %266) #8
  call void @llvm.lifetime.end.p0(i64 12, ptr %265) #8
  %3440 = load i1, ptr %267, align 1
  br i1 %3440, label %3441, label %3442

3441:                                             ; preds = %3439
  call void @__cxa_free_exception(ptr %3419) #8
  br label %3442

3442:                                             ; preds = %3441, %3439
  br label %5945

3443:                                             ; preds = %3393, %3152, %3060, %2964
  br label %5924

3444:                                             ; preds = %796
  br label %3445

3445:                                             ; preds = %3444
  call void @llvm.lifetime.start.p0(i64 88, ptr %268) #8
  %3446 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %268, ptr noundef nonnull align 8 dereferenceable(176) %3446)
          to label %3447 unwind label %3473

3447:                                             ; preds = %3445
  %3448 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %268)
          to label %3449 unwind label %3477

3449:                                             ; preds = %3447
  %3450 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3448)
          to label %3451 unwind label %3477

3451:                                             ; preds = %3449
  %3452 = icmp ne i32 %3450, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %268) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %268) #8
  br i1 %3452, label %3453, label %3501

3453:                                             ; preds = %3451
  br label %3454

3454:                                             ; preds = %3453
  %3455 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3456 unwind label %877

3456:                                             ; preds = %3454
  br i1 %3455, label %3457, label %3482

3457:                                             ; preds = %3456
  %3458 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3459 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3458, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3460 unwind label %877

3460:                                             ; preds = %3457
  %3461 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3459, ptr noundef @.str.1)
          to label %3462 unwind label %877

3462:                                             ; preds = %3460
  %3463 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3461, ptr noundef @.str.2)
          to label %3464 unwind label %877

3464:                                             ; preds = %3462
  %3465 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3463, ptr noundef @.str.3)
          to label %3466 unwind label %877

3466:                                             ; preds = %3464
  %3467 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3465, i32 noundef 2078)
          to label %3468 unwind label %877

3468:                                             ; preds = %3466
  %3469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3467, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3470 unwind label %877

3470:                                             ; preds = %3468
  %3471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3469, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3472 unwind label %877

3472:                                             ; preds = %3470
  br label %3482

3473:                                             ; preds = %3445
  %3474 = landingpad { ptr, i32 }
          cleanup
  %3475 = extractvalue { ptr, i32 } %3474, 0
  store ptr %3475, ptr %14, align 8
  %3476 = extractvalue { ptr, i32 } %3474, 1
  store i32 %3476, ptr %15, align 4
  br label %3481

3477:                                             ; preds = %3449, %3447
  %3478 = landingpad { ptr, i32 }
          cleanup
  %3479 = extractvalue { ptr, i32 } %3478, 0
  store ptr %3479, ptr %14, align 8
  %3480 = extractvalue { ptr, i32 } %3478, 1
  store i32 %3480, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %268) #8
  br label %3481

3481:                                             ; preds = %3477, %3473
  call void @llvm.lifetime.end.p0(i64 88, ptr %268) #8
  br label %5945

3482:                                             ; preds = %3472, %3456
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

3484:                                             ; preds = %3483
  store i1 true, ptr %270, align 1
  %3485 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3486 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %269, i32 noundef 88)
          to label %3487 unwind label %3489

3487:                                             ; preds = %3484
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3485, ptr noundef nonnull align 8 dereferenceable(176) %3486, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %269)
          to label %3488 unwind label %3493

3488:                                             ; preds = %3487
  store i1 false, ptr %270, align 1
  invoke void @__cxa_throw(ptr %3485, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3493

3489:                                             ; preds = %3484
  %3490 = landingpad { ptr, i32 }
          cleanup
  %3491 = extractvalue { ptr, i32 } %3490, 0
  store ptr %3491, ptr %14, align 8
  %3492 = extractvalue { ptr, i32 } %3490, 1
  store i32 %3492, ptr %15, align 4
  br label %3497

3493:                                             ; preds = %3488, %3487
  %3494 = landingpad { ptr, i32 }
          cleanup
  %3495 = extractvalue { ptr, i32 } %3494, 0
  store ptr %3495, ptr %14, align 8
  %3496 = extractvalue { ptr, i32 } %3494, 1
  store i32 %3496, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %269) #8
  br label %3497

3497:                                             ; preds = %3493, %3489
  %3498 = load i1, ptr %270, align 1
  br i1 %3498, label %3499, label %3500

3499:                                             ; preds = %3497
  call void @__cxa_free_exception(ptr %3485) #8
  br label %3500

3500:                                             ; preds = %3499, %3497
  br label %5945

3501:                                             ; preds = %3451
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503
  call void @llvm.lifetime.start.p0(i64 88, ptr %271) #8
  %3505 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %271, ptr noundef nonnull align 8 dereferenceable(176) %3505)
          to label %3506 unwind label %3532

3506:                                             ; preds = %3504
  %3507 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %271)
          to label %3508 unwind label %3536

3508:                                             ; preds = %3506
  %3509 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3507)
          to label %3510 unwind label %3536

3510:                                             ; preds = %3508
  %3511 = icmp ne i32 %3509, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %271) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %271) #8
  br i1 %3511, label %3512, label %3560

3512:                                             ; preds = %3510
  br label %3513

3513:                                             ; preds = %3512
  %3514 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3515 unwind label %877

3515:                                             ; preds = %3513
  br i1 %3514, label %3516, label %3541

3516:                                             ; preds = %3515
  %3517 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3518 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3517, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3519 unwind label %877

3519:                                             ; preds = %3516
  %3520 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3518, ptr noundef @.str.1)
          to label %3521 unwind label %877

3521:                                             ; preds = %3519
  %3522 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3520, ptr noundef @.str.2)
          to label %3523 unwind label %877

3523:                                             ; preds = %3521
  %3524 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3522, ptr noundef @.str.3)
          to label %3525 unwind label %877

3525:                                             ; preds = %3523
  %3526 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3524, i32 noundef 2079)
          to label %3527 unwind label %877

3527:                                             ; preds = %3525
  %3528 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3526, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3529 unwind label %877

3529:                                             ; preds = %3527
  %3530 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3528, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3531 unwind label %877

3531:                                             ; preds = %3529
  br label %3541

3532:                                             ; preds = %3504
  %3533 = landingpad { ptr, i32 }
          cleanup
  %3534 = extractvalue { ptr, i32 } %3533, 0
  store ptr %3534, ptr %14, align 8
  %3535 = extractvalue { ptr, i32 } %3533, 1
  store i32 %3535, ptr %15, align 4
  br label %3540

3536:                                             ; preds = %3508, %3506
  %3537 = landingpad { ptr, i32 }
          cleanup
  %3538 = extractvalue { ptr, i32 } %3537, 0
  store ptr %3538, ptr %14, align 8
  %3539 = extractvalue { ptr, i32 } %3537, 1
  store i32 %3539, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %271) #8
  br label %3540

3540:                                             ; preds = %3536, %3532
  call void @llvm.lifetime.end.p0(i64 88, ptr %271) #8
  br label %5945

3541:                                             ; preds = %3531, %3515
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542
  store i1 true, ptr %273, align 1
  %3544 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3545 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %272, i32 noundef 14)
          to label %3546 unwind label %3548

3546:                                             ; preds = %3543
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3544, ptr noundef nonnull align 8 dereferenceable(176) %3545, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %272)
          to label %3547 unwind label %3552

3547:                                             ; preds = %3546
  store i1 false, ptr %273, align 1
  invoke void @__cxa_throw(ptr %3544, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3552

3548:                                             ; preds = %3543
  %3549 = landingpad { ptr, i32 }
          cleanup
  %3550 = extractvalue { ptr, i32 } %3549, 0
  store ptr %3550, ptr %14, align 8
  %3551 = extractvalue { ptr, i32 } %3549, 1
  store i32 %3551, ptr %15, align 4
  br label %3556

3552:                                             ; preds = %3547, %3546
  %3553 = landingpad { ptr, i32 }
          cleanup
  %3554 = extractvalue { ptr, i32 } %3553, 0
  store ptr %3554, ptr %14, align 8
  %3555 = extractvalue { ptr, i32 } %3553, 1
  store i32 %3555, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %272) #8
  br label %3556

3556:                                             ; preds = %3552, %3548
  %3557 = load i1, ptr %273, align 1
  br i1 %3557, label %3558, label %3559

3558:                                             ; preds = %3556
  call void @__cxa_free_exception(ptr %3544) #8
  br label %3559

3559:                                             ; preds = %3558, %3556
  br label %5945

3560:                                             ; preds = %3510
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  %3563 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3564 unwind label %877

3564:                                             ; preds = %3562
  %3565 = getelementptr inbounds %struct.Ident, ptr %3563, i32 0, i32 1
  %3566 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3565)
          to label %3567 unwind label %877

3567:                                             ; preds = %3564
  call void @llvm.lifetime.start.p0(i64 488, ptr %274) #8
  %3568 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %277) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %276, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %277)
          to label %3569 unwind label %3578

3569:                                             ; preds = %3567
  call void @llvm.lifetime.start.p0(i64 3, ptr %279) #8
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %279)
          to label %3570 unwind label %3582

3570:                                             ; preds = %3569
  %3571 = invoke i24 @_ZNK3AST8Function5Flags9set_asyncEv(ptr noundef nonnull align 1 dereferenceable(3) %279)
          to label %3572 unwind label %3582

3572:                                             ; preds = %3570
  store i24 %3571, ptr %278, align 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %280, ptr align 1 %278, i64 3, i1 false)
  %3573 = load i24, ptr %280, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %275, ptr noundef nonnull align 8 dereferenceable(176) %3568, i1 noundef zeroext false, ptr noundef %276, i24 %3573)
          to label %3574 unwind label %3582

3574:                                             ; preds = %3572
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %274, ptr noundef %275)
          to label %3575 unwind label %3586

3575:                                             ; preds = %3574
  %3576 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %274)
          to label %3577 unwind label %3590

3577:                                             ; preds = %3575
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %274) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %275) #8
  call void @llvm.lifetime.end.p0(i64 3, ptr %279) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %274) #8
  br label %5924

3578:                                             ; preds = %3567
  %3579 = landingpad { ptr, i32 }
          cleanup
  %3580 = extractvalue { ptr, i32 } %3579, 0
  store ptr %3580, ptr %14, align 8
  %3581 = extractvalue { ptr, i32 } %3579, 1
  store i32 %3581, ptr %15, align 4
  br label %3596

3582:                                             ; preds = %3572, %3570, %3569
  %3583 = landingpad { ptr, i32 }
          cleanup
  %3584 = extractvalue { ptr, i32 } %3583, 0
  store ptr %3584, ptr %14, align 8
  %3585 = extractvalue { ptr, i32 } %3583, 1
  store i32 %3585, ptr %15, align 4
  br label %3595

3586:                                             ; preds = %3574
  %3587 = landingpad { ptr, i32 }
          cleanup
  %3588 = extractvalue { ptr, i32 } %3587, 0
  store ptr %3588, ptr %14, align 8
  %3589 = extractvalue { ptr, i32 } %3587, 1
  store i32 %3589, ptr %15, align 4
  br label %3594

3590:                                             ; preds = %3575
  %3591 = landingpad { ptr, i32 }
          cleanup
  %3592 = extractvalue { ptr, i32 } %3591, 0
  store ptr %3592, ptr %14, align 8
  %3593 = extractvalue { ptr, i32 } %3591, 1
  store i32 %3593, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %274) #8
  br label %3594

3594:                                             ; preds = %3590, %3586
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %275) #8
  br label %3595

3595:                                             ; preds = %3594, %3582
  call void @llvm.lifetime.end.p0(i64 3, ptr %279) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %276) #8
  br label %3596

3596:                                             ; preds = %3595, %3578
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %277) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %277) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %274) #8
  br label %5945

3597:                                             ; preds = %796
  br label %3598

3598:                                             ; preds = %3597
  call void @llvm.lifetime.start.p0(i64 88, ptr %281) #8
  %3599 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %281, ptr noundef nonnull align 8 dereferenceable(176) %3599)
          to label %3600 unwind label %3626

3600:                                             ; preds = %3598
  %3601 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %281)
          to label %3602 unwind label %3630

3602:                                             ; preds = %3600
  %3603 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3601)
          to label %3604 unwind label %3630

3604:                                             ; preds = %3602
  %3605 = icmp ne i32 %3603, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %281) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %281) #8
  br i1 %3605, label %3606, label %3654

3606:                                             ; preds = %3604
  br label %3607

3607:                                             ; preds = %3606
  %3608 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3609 unwind label %877

3609:                                             ; preds = %3607
  br i1 %3608, label %3610, label %3635

3610:                                             ; preds = %3609
  %3611 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3611, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3613 unwind label %877

3613:                                             ; preds = %3610
  %3614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3612, ptr noundef @.str.1)
          to label %3615 unwind label %877

3615:                                             ; preds = %3613
  %3616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3614, ptr noundef @.str.2)
          to label %3617 unwind label %877

3617:                                             ; preds = %3615
  %3618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3616, ptr noundef @.str.3)
          to label %3619 unwind label %877

3619:                                             ; preds = %3617
  %3620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3618, i32 noundef 2086)
          to label %3621 unwind label %877

3621:                                             ; preds = %3619
  %3622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3620, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3623 unwind label %877

3623:                                             ; preds = %3621
  %3624 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3622, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3625 unwind label %877

3625:                                             ; preds = %3623
  br label %3635

3626:                                             ; preds = %3598
  %3627 = landingpad { ptr, i32 }
          cleanup
  %3628 = extractvalue { ptr, i32 } %3627, 0
  store ptr %3628, ptr %14, align 8
  %3629 = extractvalue { ptr, i32 } %3627, 1
  store i32 %3629, ptr %15, align 4
  br label %3634

3630:                                             ; preds = %3602, %3600
  %3631 = landingpad { ptr, i32 }
          cleanup
  %3632 = extractvalue { ptr, i32 } %3631, 0
  store ptr %3632, ptr %14, align 8
  %3633 = extractvalue { ptr, i32 } %3631, 1
  store i32 %3633, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %281) #8
  br label %3634

3634:                                             ; preds = %3630, %3626
  call void @llvm.lifetime.end.p0(i64 88, ptr %281) #8
  br label %5945

3635:                                             ; preds = %3625, %3609
  br label %3636

3636:                                             ; preds = %3635
  br label %3637

3637:                                             ; preds = %3636
  store i1 true, ptr %283, align 1
  %3638 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3639 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %282, i32 noundef 14)
          to label %3640 unwind label %3642

3640:                                             ; preds = %3637
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3638, ptr noundef nonnull align 8 dereferenceable(176) %3639, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %282)
          to label %3641 unwind label %3646

3641:                                             ; preds = %3640
  store i1 false, ptr %283, align 1
  invoke void @__cxa_throw(ptr %3638, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3646

3642:                                             ; preds = %3637
  %3643 = landingpad { ptr, i32 }
          cleanup
  %3644 = extractvalue { ptr, i32 } %3643, 0
  store ptr %3644, ptr %14, align 8
  %3645 = extractvalue { ptr, i32 } %3643, 1
  store i32 %3645, ptr %15, align 4
  br label %3650

3646:                                             ; preds = %3641, %3640
  %3647 = landingpad { ptr, i32 }
          cleanup
  %3648 = extractvalue { ptr, i32 } %3647, 0
  store ptr %3648, ptr %14, align 8
  %3649 = extractvalue { ptr, i32 } %3647, 1
  store i32 %3649, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %282) #8
  br label %3650

3650:                                             ; preds = %3646, %3642
  %3651 = load i1, ptr %283, align 1
  br i1 %3651, label %3652, label %3653

3652:                                             ; preds = %3650
  call void @__cxa_free_exception(ptr %3638) #8
  br label %3653

3653:                                             ; preds = %3652, %3650
  br label %5945

3654:                                             ; preds = %3604
  br label %3655

3655:                                             ; preds = %3654
  br label %3656

3656:                                             ; preds = %3655
  %3657 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3658 unwind label %877

3658:                                             ; preds = %3656
  %3659 = getelementptr inbounds %struct.Ident, ptr %3657, i32 0, i32 1
  %3660 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3659)
          to label %3661 unwind label %877

3661:                                             ; preds = %3658
  call void @llvm.lifetime.start.p0(i64 488, ptr %284) #8
  %3662 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %287) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %286, ptr noundef @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %287)
          to label %3663 unwind label %3670

3663:                                             ; preds = %3661
  invoke void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %288)
          to label %3664 unwind label %3674

3664:                                             ; preds = %3663
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %289, ptr align 1 %288, i64 3, i1 false)
  %3665 = load i24, ptr %289, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind writable sret(%"class.AST::Function") align 8 %285, ptr noundef nonnull align 8 dereferenceable(176) %3662, i1 noundef zeroext false, ptr noundef %286, i24 %3665)
          to label %3666 unwind label %3674

3666:                                             ; preds = %3664
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %284, ptr noundef %285)
          to label %3667 unwind label %3678

3667:                                             ; preds = %3666
  %3668 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %284)
          to label %3669 unwind label %3682

3669:                                             ; preds = %3667
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %284) #8
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %285) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %284) #8
  br label %5924

3670:                                             ; preds = %3661
  %3671 = landingpad { ptr, i32 }
          cleanup
  %3672 = extractvalue { ptr, i32 } %3671, 0
  store ptr %3672, ptr %14, align 8
  %3673 = extractvalue { ptr, i32 } %3671, 1
  store i32 %3673, ptr %15, align 4
  br label %3688

3674:                                             ; preds = %3664, %3663
  %3675 = landingpad { ptr, i32 }
          cleanup
  %3676 = extractvalue { ptr, i32 } %3675, 0
  store ptr %3676, ptr %14, align 8
  %3677 = extractvalue { ptr, i32 } %3675, 1
  store i32 %3677, ptr %15, align 4
  br label %3687

3678:                                             ; preds = %3666
  %3679 = landingpad { ptr, i32 }
          cleanup
  %3680 = extractvalue { ptr, i32 } %3679, 0
  store ptr %3680, ptr %14, align 8
  %3681 = extractvalue { ptr, i32 } %3679, 1
  store i32 %3681, ptr %15, align 4
  br label %3686

3682:                                             ; preds = %3667
  %3683 = landingpad { ptr, i32 }
          cleanup
  %3684 = extractvalue { ptr, i32 } %3683, 0
  store ptr %3684, ptr %14, align 8
  %3685 = extractvalue { ptr, i32 } %3683, 1
  store i32 %3685, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %284) #8
  br label %3686

3686:                                             ; preds = %3682, %3678
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %285) #8
  br label %3687

3687:                                             ; preds = %3686, %3674
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %286) #8
  br label %3688

3688:                                             ; preds = %3687, %3670
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %287) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %287) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %284) #8
  br label %5945

3689:                                             ; preds = %796
  br label %3690

3690:                                             ; preds = %3689
  call void @llvm.lifetime.start.p0(i64 88, ptr %290) #8
  %3691 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %290, ptr noundef nonnull align 8 dereferenceable(176) %3691)
          to label %3692 unwind label %3718

3692:                                             ; preds = %3690
  %3693 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %290)
          to label %3694 unwind label %3722

3694:                                             ; preds = %3692
  %3695 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3693)
          to label %3696 unwind label %3722

3696:                                             ; preds = %3694
  %3697 = icmp ne i32 %3695, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %290) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %290) #8
  br i1 %3697, label %3698, label %3746

3698:                                             ; preds = %3696
  br label %3699

3699:                                             ; preds = %3698
  %3700 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3701 unwind label %877

3701:                                             ; preds = %3699
  br i1 %3700, label %3702, label %3727

3702:                                             ; preds = %3701
  %3703 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3704 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3703, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3705 unwind label %877

3705:                                             ; preds = %3702
  %3706 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3704, ptr noundef @.str.1)
          to label %3707 unwind label %877

3707:                                             ; preds = %3705
  %3708 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3706, ptr noundef @.str.2)
          to label %3709 unwind label %877

3709:                                             ; preds = %3707
  %3710 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3708, ptr noundef @.str.3)
          to label %3711 unwind label %877

3711:                                             ; preds = %3709
  %3712 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3710, i32 noundef 2093)
          to label %3713 unwind label %877

3713:                                             ; preds = %3711
  %3714 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3712, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3715 unwind label %877

3715:                                             ; preds = %3713
  %3716 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3714, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3717 unwind label %877

3717:                                             ; preds = %3715
  br label %3727

3718:                                             ; preds = %3690
  %3719 = landingpad { ptr, i32 }
          cleanup
  %3720 = extractvalue { ptr, i32 } %3719, 0
  store ptr %3720, ptr %14, align 8
  %3721 = extractvalue { ptr, i32 } %3719, 1
  store i32 %3721, ptr %15, align 4
  br label %3726

3722:                                             ; preds = %3694, %3692
  %3723 = landingpad { ptr, i32 }
          cleanup
  %3724 = extractvalue { ptr, i32 } %3723, 0
  store ptr %3724, ptr %14, align 8
  %3725 = extractvalue { ptr, i32 } %3723, 1
  store i32 %3725, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %290) #8
  br label %3726

3726:                                             ; preds = %3722, %3718
  call void @llvm.lifetime.end.p0(i64 88, ptr %290) #8
  br label %5945

3727:                                             ; preds = %3717, %3701
  br label %3728

3728:                                             ; preds = %3727
  br label %3729

3729:                                             ; preds = %3728
  store i1 true, ptr %292, align 1
  %3730 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3731 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %291, i32 noundef 14)
          to label %3732 unwind label %3734

3732:                                             ; preds = %3729
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3730, ptr noundef nonnull align 8 dereferenceable(176) %3731, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %291)
          to label %3733 unwind label %3738

3733:                                             ; preds = %3732
  store i1 false, ptr %292, align 1
  invoke void @__cxa_throw(ptr %3730, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3738

3734:                                             ; preds = %3729
  %3735 = landingpad { ptr, i32 }
          cleanup
  %3736 = extractvalue { ptr, i32 } %3735, 0
  store ptr %3736, ptr %14, align 8
  %3737 = extractvalue { ptr, i32 } %3735, 1
  store i32 %3737, ptr %15, align 4
  br label %3742

3738:                                             ; preds = %3733, %3732
  %3739 = landingpad { ptr, i32 }
          cleanup
  %3740 = extractvalue { ptr, i32 } %3739, 0
  store ptr %3740, ptr %14, align 8
  %3741 = extractvalue { ptr, i32 } %3739, 1
  store i32 %3741, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %291) #8
  br label %3742

3742:                                             ; preds = %3738, %3734
  %3743 = load i1, ptr %292, align 1
  br i1 %3743, label %3744, label %3745

3744:                                             ; preds = %3742
  call void @__cxa_free_exception(ptr %3730) #8
  br label %3745

3745:                                             ; preds = %3744, %3742
  br label %5945

3746:                                             ; preds = %3696
  br label %3747

3747:                                             ; preds = %3746
  br label %3748

3748:                                             ; preds = %3747
  %3749 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3750 unwind label %877

3750:                                             ; preds = %3748
  %3751 = getelementptr inbounds %struct.Ident, ptr %3749, i32 0, i32 1
  %3752 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3751)
          to label %3753 unwind label %877

3753:                                             ; preds = %3750
  call void @llvm.lifetime.start.p0(i64 488, ptr %293) #8
  %3754 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z15Parse_TypeAliasR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::TypeAlias") align 8 %294, ptr noundef nonnull align 8 dereferenceable(176) %3754)
          to label %3755 unwind label %3759

3755:                                             ; preds = %3753
  invoke void @_ZN3AST4ItemC2ENS_9TypeAliasE(ptr noundef nonnull align 8 dereferenceable(488) %293, ptr noundef %294)
          to label %3756 unwind label %3763

3756:                                             ; preds = %3755
  %3757 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %293)
          to label %3758 unwind label %3767

3758:                                             ; preds = %3756
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %293) #8
  call void @_ZN3AST9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %294) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %293) #8
  br label %5924

3759:                                             ; preds = %3753
  %3760 = landingpad { ptr, i32 }
          cleanup
  %3761 = extractvalue { ptr, i32 } %3760, 0
  store ptr %3761, ptr %14, align 8
  %3762 = extractvalue { ptr, i32 } %3760, 1
  store i32 %3762, ptr %15, align 4
  br label %3772

3763:                                             ; preds = %3755
  %3764 = landingpad { ptr, i32 }
          cleanup
  %3765 = extractvalue { ptr, i32 } %3764, 0
  store ptr %3765, ptr %14, align 8
  %3766 = extractvalue { ptr, i32 } %3764, 1
  store i32 %3766, ptr %15, align 4
  br label %3771

3767:                                             ; preds = %3756
  %3768 = landingpad { ptr, i32 }
          cleanup
  %3769 = extractvalue { ptr, i32 } %3768, 0
  store ptr %3769, ptr %14, align 8
  %3770 = extractvalue { ptr, i32 } %3768, 1
  store i32 %3770, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %293) #8
  br label %3771

3771:                                             ; preds = %3767, %3763
  call void @_ZN3AST9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %294) #8
  br label %3772

3772:                                             ; preds = %3771, %3759
  call void @llvm.lifetime.end.p0(i64 488, ptr %293) #8
  br label %5945

3773:                                             ; preds = %796
  br label %3774

3774:                                             ; preds = %3773
  call void @llvm.lifetime.start.p0(i64 88, ptr %295) #8
  %3775 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %295, ptr noundef nonnull align 8 dereferenceable(176) %3775)
          to label %3776 unwind label %3802

3776:                                             ; preds = %3774
  %3777 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %295)
          to label %3778 unwind label %3806

3778:                                             ; preds = %3776
  %3779 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3777)
          to label %3780 unwind label %3806

3780:                                             ; preds = %3778
  %3781 = icmp ne i32 %3779, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %295) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %295) #8
  br i1 %3781, label %3782, label %3830

3782:                                             ; preds = %3780
  br label %3783

3783:                                             ; preds = %3782
  %3784 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3785 unwind label %877

3785:                                             ; preds = %3783
  br i1 %3784, label %3786, label %3811

3786:                                             ; preds = %3785
  %3787 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3788 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3787, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3789 unwind label %877

3789:                                             ; preds = %3786
  %3790 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3788, ptr noundef @.str.1)
          to label %3791 unwind label %877

3791:                                             ; preds = %3789
  %3792 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3790, ptr noundef @.str.2)
          to label %3793 unwind label %877

3793:                                             ; preds = %3791
  %3794 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3792, ptr noundef @.str.3)
          to label %3795 unwind label %877

3795:                                             ; preds = %3793
  %3796 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3794, i32 noundef 2099)
          to label %3797 unwind label %877

3797:                                             ; preds = %3795
  %3798 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3796, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3799 unwind label %877

3799:                                             ; preds = %3797
  %3800 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3798, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3801 unwind label %877

3801:                                             ; preds = %3799
  br label %3811

3802:                                             ; preds = %3774
  %3803 = landingpad { ptr, i32 }
          cleanup
  %3804 = extractvalue { ptr, i32 } %3803, 0
  store ptr %3804, ptr %14, align 8
  %3805 = extractvalue { ptr, i32 } %3803, 1
  store i32 %3805, ptr %15, align 4
  br label %3810

3806:                                             ; preds = %3778, %3776
  %3807 = landingpad { ptr, i32 }
          cleanup
  %3808 = extractvalue { ptr, i32 } %3807, 0
  store ptr %3808, ptr %14, align 8
  %3809 = extractvalue { ptr, i32 } %3807, 1
  store i32 %3809, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %295) #8
  br label %3810

3810:                                             ; preds = %3806, %3802
  call void @llvm.lifetime.end.p0(i64 88, ptr %295) #8
  br label %5945

3811:                                             ; preds = %3801, %3785
  br label %3812

3812:                                             ; preds = %3811
  br label %3813

3813:                                             ; preds = %3812
  store i1 true, ptr %297, align 1
  %3814 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3815 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %296, i32 noundef 14)
          to label %3816 unwind label %3818

3816:                                             ; preds = %3813
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3814, ptr noundef nonnull align 8 dereferenceable(176) %3815, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %296)
          to label %3817 unwind label %3822

3817:                                             ; preds = %3816
  store i1 false, ptr %297, align 1
  invoke void @__cxa_throw(ptr %3814, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3822

3818:                                             ; preds = %3813
  %3819 = landingpad { ptr, i32 }
          cleanup
  %3820 = extractvalue { ptr, i32 } %3819, 0
  store ptr %3820, ptr %14, align 8
  %3821 = extractvalue { ptr, i32 } %3819, 1
  store i32 %3821, ptr %15, align 4
  br label %3826

3822:                                             ; preds = %3817, %3816
  %3823 = landingpad { ptr, i32 }
          cleanup
  %3824 = extractvalue { ptr, i32 } %3823, 0
  store ptr %3824, ptr %14, align 8
  %3825 = extractvalue { ptr, i32 } %3823, 1
  store i32 %3825, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %296) #8
  br label %3826

3826:                                             ; preds = %3822, %3818
  %3827 = load i1, ptr %297, align 1
  br i1 %3827, label %3828, label %3829

3828:                                             ; preds = %3826
  call void @__cxa_free_exception(ptr %3814) #8
  br label %3829

3829:                                             ; preds = %3828, %3826
  br label %5945

3830:                                             ; preds = %3780
  br label %3831

3831:                                             ; preds = %3830
  br label %3832

3832:                                             ; preds = %3831
  %3833 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3834 unwind label %877

3834:                                             ; preds = %3832
  %3835 = getelementptr inbounds %struct.Ident, ptr %3833, i32 0, i32 1
  %3836 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3835)
          to label %3837 unwind label %877

3837:                                             ; preds = %3834
  call void @llvm.lifetime.start.p0(i64 488, ptr %298) #8
  %3838 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z12Parse_StructR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind writable sret(%"class.AST::Struct") align 8 %299, ptr noundef nonnull align 8 dereferenceable(176) %3838, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %3839 unwind label %3843

3839:                                             ; preds = %3837
  invoke void @_ZN3AST4ItemC2ENS_6StructE(ptr noundef nonnull align 8 dereferenceable(488) %298, ptr noundef %299)
          to label %3840 unwind label %3847

3840:                                             ; preds = %3839
  %3841 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %298)
          to label %3842 unwind label %3851

3842:                                             ; preds = %3840
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %298) #8
  call void @_ZN3AST6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %299) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %298) #8
  br label %5924

3843:                                             ; preds = %3837
  %3844 = landingpad { ptr, i32 }
          cleanup
  %3845 = extractvalue { ptr, i32 } %3844, 0
  store ptr %3845, ptr %14, align 8
  %3846 = extractvalue { ptr, i32 } %3844, 1
  store i32 %3846, ptr %15, align 4
  br label %3856

3847:                                             ; preds = %3839
  %3848 = landingpad { ptr, i32 }
          cleanup
  %3849 = extractvalue { ptr, i32 } %3848, 0
  store ptr %3849, ptr %14, align 8
  %3850 = extractvalue { ptr, i32 } %3848, 1
  store i32 %3850, ptr %15, align 4
  br label %3855

3851:                                             ; preds = %3840
  %3852 = landingpad { ptr, i32 }
          cleanup
  %3853 = extractvalue { ptr, i32 } %3852, 0
  store ptr %3853, ptr %14, align 8
  %3854 = extractvalue { ptr, i32 } %3852, 1
  store i32 %3854, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %298) #8
  br label %3855

3855:                                             ; preds = %3851, %3847
  call void @_ZN3AST6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %299) #8
  br label %3856

3856:                                             ; preds = %3855, %3843
  call void @llvm.lifetime.end.p0(i64 488, ptr %298) #8
  br label %5945

3857:                                             ; preds = %796
  br label %3858

3858:                                             ; preds = %3857
  call void @llvm.lifetime.start.p0(i64 88, ptr %300) #8
  %3859 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %300, ptr noundef nonnull align 8 dereferenceable(176) %3859)
          to label %3860 unwind label %3886

3860:                                             ; preds = %3858
  %3861 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %300)
          to label %3862 unwind label %3890

3862:                                             ; preds = %3860
  %3863 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3861)
          to label %3864 unwind label %3890

3864:                                             ; preds = %3862
  %3865 = icmp ne i32 %3863, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %300) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %300) #8
  br i1 %3865, label %3866, label %3914

3866:                                             ; preds = %3864
  br label %3867

3867:                                             ; preds = %3866
  %3868 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3869 unwind label %877

3869:                                             ; preds = %3867
  br i1 %3868, label %3870, label %3895

3870:                                             ; preds = %3869
  %3871 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3872 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3871, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3873 unwind label %877

3873:                                             ; preds = %3870
  %3874 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3872, ptr noundef @.str.1)
          to label %3875 unwind label %877

3875:                                             ; preds = %3873
  %3876 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3874, ptr noundef @.str.2)
          to label %3877 unwind label %877

3877:                                             ; preds = %3875
  %3878 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3876, ptr noundef @.str.3)
          to label %3879 unwind label %877

3879:                                             ; preds = %3877
  %3880 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3878, i32 noundef 2105)
          to label %3881 unwind label %877

3881:                                             ; preds = %3879
  %3882 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3880, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3883 unwind label %877

3883:                                             ; preds = %3881
  %3884 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3882, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3885 unwind label %877

3885:                                             ; preds = %3883
  br label %3895

3886:                                             ; preds = %3858
  %3887 = landingpad { ptr, i32 }
          cleanup
  %3888 = extractvalue { ptr, i32 } %3887, 0
  store ptr %3888, ptr %14, align 8
  %3889 = extractvalue { ptr, i32 } %3887, 1
  store i32 %3889, ptr %15, align 4
  br label %3894

3890:                                             ; preds = %3862, %3860
  %3891 = landingpad { ptr, i32 }
          cleanup
  %3892 = extractvalue { ptr, i32 } %3891, 0
  store ptr %3892, ptr %14, align 8
  %3893 = extractvalue { ptr, i32 } %3891, 1
  store i32 %3893, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %300) #8
  br label %3894

3894:                                             ; preds = %3890, %3886
  call void @llvm.lifetime.end.p0(i64 88, ptr %300) #8
  br label %5945

3895:                                             ; preds = %3885, %3869
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

3897:                                             ; preds = %3896
  store i1 true, ptr %302, align 1
  %3898 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3899 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %301, i32 noundef 14)
          to label %3900 unwind label %3902

3900:                                             ; preds = %3897
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3898, ptr noundef nonnull align 8 dereferenceable(176) %3899, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %301)
          to label %3901 unwind label %3906

3901:                                             ; preds = %3900
  store i1 false, ptr %302, align 1
  invoke void @__cxa_throw(ptr %3898, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3906

3902:                                             ; preds = %3897
  %3903 = landingpad { ptr, i32 }
          cleanup
  %3904 = extractvalue { ptr, i32 } %3903, 0
  store ptr %3904, ptr %14, align 8
  %3905 = extractvalue { ptr, i32 } %3903, 1
  store i32 %3905, ptr %15, align 4
  br label %3910

3906:                                             ; preds = %3901, %3900
  %3907 = landingpad { ptr, i32 }
          cleanup
  %3908 = extractvalue { ptr, i32 } %3907, 0
  store ptr %3908, ptr %14, align 8
  %3909 = extractvalue { ptr, i32 } %3907, 1
  store i32 %3909, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %301) #8
  br label %3910

3910:                                             ; preds = %3906, %3902
  %3911 = load i1, ptr %302, align 1
  br i1 %3911, label %3912, label %3913

3912:                                             ; preds = %3910
  call void @__cxa_free_exception(ptr %3898) #8
  br label %3913

3913:                                             ; preds = %3912, %3910
  br label %5945

3914:                                             ; preds = %3864
  br label %3915

3915:                                             ; preds = %3914
  br label %3916

3916:                                             ; preds = %3915
  %3917 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3918 unwind label %877

3918:                                             ; preds = %3916
  %3919 = getelementptr inbounds %struct.Ident, ptr %3917, i32 0, i32 1
  %3920 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %3919)
          to label %3921 unwind label %877

3921:                                             ; preds = %3918
  call void @llvm.lifetime.start.p0(i64 488, ptr %303) #8
  %3922 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z13Parse_EnumDefR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind writable sret(%"class.AST::Enum") align 8 %304, ptr noundef nonnull align 8 dereferenceable(176) %3922, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %3923 unwind label %3927

3923:                                             ; preds = %3921
  invoke void @_ZN3AST4ItemC2ENS_4EnumE(ptr noundef nonnull align 8 dereferenceable(488) %303, ptr noundef %304)
          to label %3924 unwind label %3931

3924:                                             ; preds = %3923
  %3925 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %303)
          to label %3926 unwind label %3935

3926:                                             ; preds = %3924
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %303) #8
  call void @_ZN3AST4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %304) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %303) #8
  br label %5924

3927:                                             ; preds = %3921
  %3928 = landingpad { ptr, i32 }
          cleanup
  %3929 = extractvalue { ptr, i32 } %3928, 0
  store ptr %3929, ptr %14, align 8
  %3930 = extractvalue { ptr, i32 } %3928, 1
  store i32 %3930, ptr %15, align 4
  br label %3940

3931:                                             ; preds = %3923
  %3932 = landingpad { ptr, i32 }
          cleanup
  %3933 = extractvalue { ptr, i32 } %3932, 0
  store ptr %3933, ptr %14, align 8
  %3934 = extractvalue { ptr, i32 } %3932, 1
  store i32 %3934, ptr %15, align 4
  br label %3939

3935:                                             ; preds = %3924
  %3936 = landingpad { ptr, i32 }
          cleanup
  %3937 = extractvalue { ptr, i32 } %3936, 0
  store ptr %3937, ptr %14, align 8
  %3938 = extractvalue { ptr, i32 } %3936, 1
  store i32 %3938, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %303) #8
  br label %3939

3939:                                             ; preds = %3935, %3931
  call void @_ZN3AST4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %304) #8
  br label %3940

3940:                                             ; preds = %3939, %3927
  call void @llvm.lifetime.end.p0(i64 488, ptr %303) #8
  br label %5945

3941:                                             ; preds = %796
  %3942 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %3943 unwind label %877

3943:                                             ; preds = %3941
  %3944 = getelementptr inbounds %struct.Ident, ptr %3942, i32 0, i32 1
  %3945 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %3944, ptr noundef @.str.23)
          to label %3946 unwind label %877

3946:                                             ; preds = %3943
  br i1 %3945, label %3947, label %4031

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  call void @llvm.lifetime.start.p0(i64 88, ptr %305) #8
  %3949 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %305, ptr noundef nonnull align 8 dereferenceable(176) %3949)
          to label %3950 unwind label %3976

3950:                                             ; preds = %3948
  %3951 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %305)
          to label %3952 unwind label %3980

3952:                                             ; preds = %3950
  %3953 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3951)
          to label %3954 unwind label %3980

3954:                                             ; preds = %3952
  %3955 = icmp ne i32 %3953, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %305) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %305) #8
  br i1 %3955, label %3956, label %4004

3956:                                             ; preds = %3954
  br label %3957

3957:                                             ; preds = %3956
  %3958 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3959 unwind label %877

3959:                                             ; preds = %3957
  br i1 %3958, label %3960, label %3985

3960:                                             ; preds = %3959
  %3961 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3962 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3961, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3963 unwind label %877

3963:                                             ; preds = %3960
  %3964 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3962, ptr noundef @.str.1)
          to label %3965 unwind label %877

3965:                                             ; preds = %3963
  %3966 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3964, ptr noundef @.str.2)
          to label %3967 unwind label %877

3967:                                             ; preds = %3965
  %3968 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3966, ptr noundef @.str.3)
          to label %3969 unwind label %877

3969:                                             ; preds = %3967
  %3970 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3968, i32 noundef 2113)
          to label %3971 unwind label %877

3971:                                             ; preds = %3969
  %3972 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3970, ptr noundef @_ZSt3decRSt8ios_base)
          to label %3973 unwind label %877

3973:                                             ; preds = %3971
  %3974 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3972, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3975 unwind label %877

3975:                                             ; preds = %3973
  br label %3985

3976:                                             ; preds = %3948
  %3977 = landingpad { ptr, i32 }
          cleanup
  %3978 = extractvalue { ptr, i32 } %3977, 0
  store ptr %3978, ptr %14, align 8
  %3979 = extractvalue { ptr, i32 } %3977, 1
  store i32 %3979, ptr %15, align 4
  br label %3984

3980:                                             ; preds = %3952, %3950
  %3981 = landingpad { ptr, i32 }
          cleanup
  %3982 = extractvalue { ptr, i32 } %3981, 0
  store ptr %3982, ptr %14, align 8
  %3983 = extractvalue { ptr, i32 } %3981, 1
  store i32 %3983, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %305) #8
  br label %3984

3984:                                             ; preds = %3980, %3976
  call void @llvm.lifetime.end.p0(i64 88, ptr %305) #8
  br label %5945

3985:                                             ; preds = %3975, %3959
  br label %3986

3986:                                             ; preds = %3985
  br label %3987

3987:                                             ; preds = %3986
  store i1 true, ptr %307, align 1
  %3988 = call ptr @__cxa_allocate_exception(i64 96) #8
  %3989 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %306, i32 noundef 14)
          to label %3990 unwind label %3992

3990:                                             ; preds = %3987
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3988, ptr noundef nonnull align 8 dereferenceable(176) %3989, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %306)
          to label %3991 unwind label %3996

3991:                                             ; preds = %3990
  store i1 false, ptr %307, align 1
  invoke void @__cxa_throw(ptr %3988, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %3996

3992:                                             ; preds = %3987
  %3993 = landingpad { ptr, i32 }
          cleanup
  %3994 = extractvalue { ptr, i32 } %3993, 0
  store ptr %3994, ptr %14, align 8
  %3995 = extractvalue { ptr, i32 } %3993, 1
  store i32 %3995, ptr %15, align 4
  br label %4000

3996:                                             ; preds = %3991, %3990
  %3997 = landingpad { ptr, i32 }
          cleanup
  %3998 = extractvalue { ptr, i32 } %3997, 0
  store ptr %3998, ptr %14, align 8
  %3999 = extractvalue { ptr, i32 } %3997, 1
  store i32 %3999, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %306) #8
  br label %4000

4000:                                             ; preds = %3996, %3992
  %4001 = load i1, ptr %307, align 1
  br i1 %4001, label %4002, label %4003

4002:                                             ; preds = %4000
  call void @__cxa_free_exception(ptr %3988) #8
  br label %4003

4003:                                             ; preds = %4002, %4000
  br label %5945

4004:                                             ; preds = %3954
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

4006:                                             ; preds = %4005
  %4007 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4008 unwind label %877

4008:                                             ; preds = %4006
  %4009 = getelementptr inbounds %struct.Ident, ptr %4007, i32 0, i32 1
  %4010 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %4009)
          to label %4011 unwind label %877

4011:                                             ; preds = %4008
  call void @llvm.lifetime.start.p0(i64 488, ptr %308) #8
  %4012 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z11Parse_UnionR11TokenStreamRN3AST13AttributeListE(ptr dead_on_unwind writable sret(%"class.AST::Union") align 8 %309, ptr noundef nonnull align 8 dereferenceable(176) %4012, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %4013 unwind label %4017

4013:                                             ; preds = %4011
  invoke void @_ZN3AST4ItemC2ENS_5UnionE(ptr noundef nonnull align 8 dereferenceable(488) %308, ptr noundef %309)
          to label %4014 unwind label %4021

4014:                                             ; preds = %4013
  %4015 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %308)
          to label %4016 unwind label %4025

4016:                                             ; preds = %4014
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %308) #8
  call void @_ZN3AST5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(76) %309) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %308) #8
  br label %4204

4017:                                             ; preds = %4011
  %4018 = landingpad { ptr, i32 }
          cleanup
  %4019 = extractvalue { ptr, i32 } %4018, 0
  store ptr %4019, ptr %14, align 8
  %4020 = extractvalue { ptr, i32 } %4018, 1
  store i32 %4020, ptr %15, align 4
  br label %4030

4021:                                             ; preds = %4013
  %4022 = landingpad { ptr, i32 }
          cleanup
  %4023 = extractvalue { ptr, i32 } %4022, 0
  store ptr %4023, ptr %14, align 8
  %4024 = extractvalue { ptr, i32 } %4022, 1
  store i32 %4024, ptr %15, align 4
  br label %4029

4025:                                             ; preds = %4014
  %4026 = landingpad { ptr, i32 }
          cleanup
  %4027 = extractvalue { ptr, i32 } %4026, 0
  store ptr %4027, ptr %14, align 8
  %4028 = extractvalue { ptr, i32 } %4026, 1
  store i32 %4028, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %308) #8
  br label %4029

4029:                                             ; preds = %4025, %4021
  call void @_ZN3AST5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(76) %309) #8
  br label %4030

4030:                                             ; preds = %4029, %4017
  call void @llvm.lifetime.end.p0(i64 488, ptr %308) #8
  br label %5945

4031:                                             ; preds = %3946
  %4032 = load i32, ptr @gTargetVersion, align 4, !tbaa !23
  %4033 = icmp sge i32 %4032, 1
  br i1 %4033, label %4034, label %4195

4034:                                             ; preds = %4031
  %4035 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4036 unwind label %877

4036:                                             ; preds = %4034
  %4037 = getelementptr inbounds %struct.Ident, ptr %4035, i32 0, i32 1
  %4038 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %4037, ptr noundef @.str.22)
          to label %4039 unwind label %877

4039:                                             ; preds = %4036
  br i1 %4038, label %4040, label %4195

4040:                                             ; preds = %4039
  br label %4041

4041:                                             ; preds = %4040
  call void @llvm.lifetime.start.p0(i64 88, ptr %310) #8
  %4042 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %310, ptr noundef nonnull align 8 dereferenceable(176) %4042)
          to label %4043 unwind label %4069

4043:                                             ; preds = %4041
  %4044 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %310)
          to label %4045 unwind label %4073

4045:                                             ; preds = %4043
  %4046 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4044)
          to label %4047 unwind label %4073

4047:                                             ; preds = %4045
  %4048 = icmp ne i32 %4046, 87
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %310) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %310) #8
  br i1 %4048, label %4049, label %4097

4049:                                             ; preds = %4047
  br label %4050

4050:                                             ; preds = %4049
  %4051 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4052 unwind label %877

4052:                                             ; preds = %4050
  br i1 %4051, label %4053, label %4078

4053:                                             ; preds = %4052
  %4054 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4055 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4054, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4056 unwind label %877

4056:                                             ; preds = %4053
  %4057 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4055, ptr noundef @.str.1)
          to label %4058 unwind label %877

4058:                                             ; preds = %4056
  %4059 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4057, ptr noundef @.str.2)
          to label %4060 unwind label %877

4060:                                             ; preds = %4058
  %4061 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4059, ptr noundef @.str.3)
          to label %4062 unwind label %877

4062:                                             ; preds = %4060
  %4063 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %4061, i32 noundef 2119)
          to label %4064 unwind label %877

4064:                                             ; preds = %4062
  %4065 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4063, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4066 unwind label %877

4066:                                             ; preds = %4064
  %4067 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4065, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4068 unwind label %877

4068:                                             ; preds = %4066
  br label %4078

4069:                                             ; preds = %4041
  %4070 = landingpad { ptr, i32 }
          cleanup
  %4071 = extractvalue { ptr, i32 } %4070, 0
  store ptr %4071, ptr %14, align 8
  %4072 = extractvalue { ptr, i32 } %4070, 1
  store i32 %4072, ptr %15, align 4
  br label %4077

4073:                                             ; preds = %4045, %4043
  %4074 = landingpad { ptr, i32 }
          cleanup
  %4075 = extractvalue { ptr, i32 } %4074, 0
  store ptr %4075, ptr %14, align 8
  %4076 = extractvalue { ptr, i32 } %4074, 1
  store i32 %4076, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %310) #8
  br label %4077

4077:                                             ; preds = %4073, %4069
  call void @llvm.lifetime.end.p0(i64 88, ptr %310) #8
  br label %5945

4078:                                             ; preds = %4068, %4052
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079
  store i1 true, ptr %312, align 1
  %4081 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4082 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %311, i32 noundef 87)
          to label %4083 unwind label %4085

4083:                                             ; preds = %4080
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %4081, ptr noundef nonnull align 8 dereferenceable(176) %4082, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %311)
          to label %4084 unwind label %4089

4084:                                             ; preds = %4083
  store i1 false, ptr %312, align 1
  invoke void @__cxa_throw(ptr %4081, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4089

4085:                                             ; preds = %4080
  %4086 = landingpad { ptr, i32 }
          cleanup
  %4087 = extractvalue { ptr, i32 } %4086, 0
  store ptr %4087, ptr %14, align 8
  %4088 = extractvalue { ptr, i32 } %4086, 1
  store i32 %4088, ptr %15, align 4
  br label %4093

4089:                                             ; preds = %4084, %4083
  %4090 = landingpad { ptr, i32 }
          cleanup
  %4091 = extractvalue { ptr, i32 } %4090, 0
  store ptr %4091, ptr %14, align 8
  %4092 = extractvalue { ptr, i32 } %4090, 1
  store i32 %4092, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %311) #8
  br label %4093

4093:                                             ; preds = %4089, %4085
  %4094 = load i1, ptr %312, align 1
  br i1 %4094, label %4095, label %4096

4095:                                             ; preds = %4093
  call void @__cxa_free_exception(ptr %4081) #8
  br label %4096

4096:                                             ; preds = %4095, %4093
  br label %5945

4097:                                             ; preds = %4047
  br label %4098

4098:                                             ; preds = %4097
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099
  call void @llvm.lifetime.start.p0(i64 88, ptr %313) #8
  %4101 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %313, ptr noundef nonnull align 8 dereferenceable(176) %4101)
          to label %4102 unwind label %4128

4102:                                             ; preds = %4100
  %4103 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %313)
          to label %4104 unwind label %4132

4104:                                             ; preds = %4102
  %4105 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4103)
          to label %4106 unwind label %4132

4106:                                             ; preds = %4104
  %4107 = icmp ne i32 %4105, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %313) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %313) #8
  br i1 %4107, label %4108, label %4156

4108:                                             ; preds = %4106
  br label %4109

4109:                                             ; preds = %4108
  %4110 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4111 unwind label %877

4111:                                             ; preds = %4109
  br i1 %4110, label %4112, label %4137

4112:                                             ; preds = %4111
  %4113 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4114 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4113, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4115 unwind label %877

4115:                                             ; preds = %4112
  %4116 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4114, ptr noundef @.str.1)
          to label %4117 unwind label %877

4117:                                             ; preds = %4115
  %4118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4116, ptr noundef @.str.2)
          to label %4119 unwind label %877

4119:                                             ; preds = %4117
  %4120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4118, ptr noundef @.str.3)
          to label %4121 unwind label %877

4121:                                             ; preds = %4119
  %4122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %4120, i32 noundef 2120)
          to label %4123 unwind label %877

4123:                                             ; preds = %4121
  %4124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4122, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4125 unwind label %877

4125:                                             ; preds = %4123
  %4126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4124, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4127 unwind label %877

4127:                                             ; preds = %4125
  br label %4137

4128:                                             ; preds = %4100
  %4129 = landingpad { ptr, i32 }
          cleanup
  %4130 = extractvalue { ptr, i32 } %4129, 0
  store ptr %4130, ptr %14, align 8
  %4131 = extractvalue { ptr, i32 } %4129, 1
  store i32 %4131, ptr %15, align 4
  br label %4136

4132:                                             ; preds = %4104, %4102
  %4133 = landingpad { ptr, i32 }
          cleanup
  %4134 = extractvalue { ptr, i32 } %4133, 0
  store ptr %4134, ptr %14, align 8
  %4135 = extractvalue { ptr, i32 } %4133, 1
  store i32 %4135, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %313) #8
  br label %4136

4136:                                             ; preds = %4132, %4128
  call void @llvm.lifetime.end.p0(i64 88, ptr %313) #8
  br label %5945

4137:                                             ; preds = %4127, %4111
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  store i1 true, ptr %315, align 1
  %4140 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4141 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %314, i32 noundef 14)
          to label %4142 unwind label %4144

4142:                                             ; preds = %4139
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %4140, ptr noundef nonnull align 8 dereferenceable(176) %4141, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %314)
          to label %4143 unwind label %4148

4143:                                             ; preds = %4142
  store i1 false, ptr %315, align 1
  invoke void @__cxa_throw(ptr %4140, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4148

4144:                                             ; preds = %4139
  %4145 = landingpad { ptr, i32 }
          cleanup
  %4146 = extractvalue { ptr, i32 } %4145, 0
  store ptr %4146, ptr %14, align 8
  %4147 = extractvalue { ptr, i32 } %4145, 1
  store i32 %4147, ptr %15, align 4
  br label %4152

4148:                                             ; preds = %4143, %4142
  %4149 = landingpad { ptr, i32 }
          cleanup
  %4150 = extractvalue { ptr, i32 } %4149, 0
  store ptr %4150, ptr %14, align 8
  %4151 = extractvalue { ptr, i32 } %4149, 1
  store i32 %4151, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %314) #8
  br label %4152

4152:                                             ; preds = %4148, %4144
  %4153 = load i1, ptr %315, align 1
  br i1 %4153, label %4154, label %4155

4154:                                             ; preds = %4152
  call void @__cxa_free_exception(ptr %4140) #8
  br label %4155

4155:                                             ; preds = %4154, %4152
  br label %5945

4156:                                             ; preds = %4106
  br label %4157

4157:                                             ; preds = %4156
  br label %4158

4158:                                             ; preds = %4157
  %4159 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4160 unwind label %877

4160:                                             ; preds = %4158
  %4161 = getelementptr inbounds %struct.Ident, ptr %4159, i32 0, i32 1
  %4162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %4161)
          to label %4163 unwind label %877

4163:                                             ; preds = %4160
  call void @llvm.lifetime.start.p0(i64 128, ptr %316) #8
  %4164 = load ptr, ptr %7, align 8, !tbaa !5
  %4165 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::GenericParams") align 8 %317, ptr noundef nonnull align 8 dereferenceable(176) %4165)
          to label %4166 unwind label %4172

4166:                                             ; preds = %4163
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.AST::Trait") align 8 %316, ptr noundef nonnull align 8 dereferenceable(176) %4164, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef %317)
          to label %4167 unwind label %4176

4167:                                             ; preds = %4166
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %317) #8
  invoke void @_ZN3AST5Trait13set_is_markerEv(ptr noundef nonnull align 8 dereferenceable(128) %316)
          to label %4168 unwind label %4180

4168:                                             ; preds = %4167
  call void @llvm.lifetime.start.p0(i64 488, ptr %318) #8
  call void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128) %319, ptr noundef nonnull align 8 dereferenceable(128) %316) #8
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %318, ptr noundef %319)
          to label %4169 unwind label %4184

4169:                                             ; preds = %4168
  %4170 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %318)
          to label %4171 unwind label %4188

4171:                                             ; preds = %4169
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %318) #8
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %319) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %318) #8
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %316) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr %316) #8
  br label %4203

4172:                                             ; preds = %4163
  %4173 = landingpad { ptr, i32 }
          cleanup
  %4174 = extractvalue { ptr, i32 } %4173, 0
  store ptr %4174, ptr %14, align 8
  %4175 = extractvalue { ptr, i32 } %4173, 1
  store i32 %4175, ptr %15, align 4
  br label %4194

4176:                                             ; preds = %4166
  %4177 = landingpad { ptr, i32 }
          cleanup
  %4178 = extractvalue { ptr, i32 } %4177, 0
  store ptr %4178, ptr %14, align 8
  %4179 = extractvalue { ptr, i32 } %4177, 1
  store i32 %4179, ptr %15, align 4
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %317) #8
  br label %4194

4180:                                             ; preds = %4167
  %4181 = landingpad { ptr, i32 }
          cleanup
  %4182 = extractvalue { ptr, i32 } %4181, 0
  store ptr %4182, ptr %14, align 8
  %4183 = extractvalue { ptr, i32 } %4181, 1
  store i32 %4183, ptr %15, align 4
  br label %4193

4184:                                             ; preds = %4168
  %4185 = landingpad { ptr, i32 }
          cleanup
  %4186 = extractvalue { ptr, i32 } %4185, 0
  store ptr %4186, ptr %14, align 8
  %4187 = extractvalue { ptr, i32 } %4185, 1
  store i32 %4187, ptr %15, align 4
  br label %4192

4188:                                             ; preds = %4169
  %4189 = landingpad { ptr, i32 }
          cleanup
  %4190 = extractvalue { ptr, i32 } %4189, 0
  store ptr %4190, ptr %14, align 8
  %4191 = extractvalue { ptr, i32 } %4189, 1
  store i32 %4191, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %318) #8
  br label %4192

4192:                                             ; preds = %4188, %4184
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %319) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %318) #8
  br label %4193

4193:                                             ; preds = %4192, %4180
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %316) #8
  br label %4194

4194:                                             ; preds = %4193, %4176, %4172
  call void @llvm.lifetime.end.p0(i64 128, ptr %316) #8
  br label %5945

4195:                                             ; preds = %4039, %4031
  %4196 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4197 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %4196, ptr noundef nonnull align 8 dereferenceable(176) %4197, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4198 unwind label %4199

4198:                                             ; preds = %4195
  invoke void @__cxa_throw(ptr %4196, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %877

4199:                                             ; preds = %4195
  %4200 = landingpad { ptr, i32 }
          cleanup
  %4201 = extractvalue { ptr, i32 } %4200, 0
  store ptr %4201, ptr %14, align 8
  %4202 = extractvalue { ptr, i32 } %4200, 1
  store i32 %4202, ptr %15, align 4
  call void @__cxa_free_exception(ptr %4196) #8
  br label %5945

4203:                                             ; preds = %4171
  br label %4204

4204:                                             ; preds = %4203, %4016
  br label %5924

4205:                                             ; preds = %796
  invoke void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %320)
          to label %4206 unwind label %877

4206:                                             ; preds = %4205
  invoke void @_ZN3AST13AttributeListC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %321)
          to label %4207 unwind label %4213

4207:                                             ; preds = %4206
  invoke void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind writable sret(%"class.AST::Visibility") align 8 %322)
          to label %4208 unwind label %4217

4208:                                             ; preds = %4207
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %323, ptr noundef @.str)
          to label %4209 unwind label %4221

4209:                                             ; preds = %4208
  %4210 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %325, ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  invoke void @_Z10Parse_ImplR11TokenStreamN3AST13AttributeListEb(ptr dead_on_unwind writable sret(%"class.AST::Item") align 8 %324, ptr noundef nonnull align 8 dereferenceable(176) %4210, ptr noundef %325, i1 noundef zeroext false)
          to label %4211 unwind label %4225

4211:                                             ; preds = %4209
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef %320, ptr noundef %321, ptr noundef %322, ptr noundef %323, ptr noundef %324)
          to label %4212 unwind label %4229

4212:                                             ; preds = %4211
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %324) #8
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %325) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %323) #8
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %322) #8
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %321) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %320) #8
  store i32 1, ptr %33, align 4
  br label %5944

4213:                                             ; preds = %4206
  %4214 = landingpad { ptr, i32 }
          cleanup
  %4215 = extractvalue { ptr, i32 } %4214, 0
  store ptr %4215, ptr %14, align 8
  %4216 = extractvalue { ptr, i32 } %4214, 1
  store i32 %4216, ptr %15, align 4
  br label %4236

4217:                                             ; preds = %4207
  %4218 = landingpad { ptr, i32 }
          cleanup
  %4219 = extractvalue { ptr, i32 } %4218, 0
  store ptr %4219, ptr %14, align 8
  %4220 = extractvalue { ptr, i32 } %4218, 1
  store i32 %4220, ptr %15, align 4
  br label %4235

4221:                                             ; preds = %4208
  %4222 = landingpad { ptr, i32 }
          cleanup
  %4223 = extractvalue { ptr, i32 } %4222, 0
  store ptr %4223, ptr %14, align 8
  %4224 = extractvalue { ptr, i32 } %4222, 1
  store i32 %4224, ptr %15, align 4
  br label %4234

4225:                                             ; preds = %4209
  %4226 = landingpad { ptr, i32 }
          cleanup
  %4227 = extractvalue { ptr, i32 } %4226, 0
  store ptr %4227, ptr %14, align 8
  %4228 = extractvalue { ptr, i32 } %4226, 1
  store i32 %4228, ptr %15, align 4
  br label %4233

4229:                                             ; preds = %4211
  %4230 = landingpad { ptr, i32 }
          cleanup
  %4231 = extractvalue { ptr, i32 } %4230, 0
  store ptr %4231, ptr %14, align 8
  %4232 = extractvalue { ptr, i32 } %4230, 1
  store i32 %4232, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %324) #8
  br label %4233

4233:                                             ; preds = %4229, %4225
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %325) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %323) #8
  br label %4234

4234:                                             ; preds = %4233, %4221
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %322) #8
  br label %4235

4235:                                             ; preds = %4234, %4217
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %321) #8
  br label %4236

4236:                                             ; preds = %4235, %4213
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %320) #8
  br label %5945

4237:                                             ; preds = %796
  br label %4238

4238:                                             ; preds = %4237
  call void @llvm.lifetime.start.p0(i64 88, ptr %326) #8
  %4239 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %326, ptr noundef nonnull align 8 dereferenceable(176) %4239)
          to label %4240 unwind label %4266

4240:                                             ; preds = %4238
  %4241 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %326)
          to label %4242 unwind label %4270

4242:                                             ; preds = %4240
  %4243 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4241)
          to label %4244 unwind label %4270

4244:                                             ; preds = %4242
  %4245 = icmp ne i32 %4243, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %326) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %326) #8
  br i1 %4245, label %4246, label %4294

4246:                                             ; preds = %4244
  br label %4247

4247:                                             ; preds = %4246
  %4248 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4249 unwind label %877

4249:                                             ; preds = %4247
  br i1 %4248, label %4250, label %4275

4250:                                             ; preds = %4249
  %4251 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4251, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4253 unwind label %877

4253:                                             ; preds = %4250
  %4254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4252, ptr noundef @.str.1)
          to label %4255 unwind label %877

4255:                                             ; preds = %4253
  %4256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4254, ptr noundef @.str.2)
          to label %4257 unwind label %877

4257:                                             ; preds = %4255
  %4258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4256, ptr noundef @.str.3)
          to label %4259 unwind label %877

4259:                                             ; preds = %4257
  %4260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %4258, i32 noundef 2136)
          to label %4261 unwind label %877

4261:                                             ; preds = %4259
  %4262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4260, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4263 unwind label %877

4263:                                             ; preds = %4261
  %4264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4262, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4265 unwind label %877

4265:                                             ; preds = %4263
  br label %4275

4266:                                             ; preds = %4238
  %4267 = landingpad { ptr, i32 }
          cleanup
  %4268 = extractvalue { ptr, i32 } %4267, 0
  store ptr %4268, ptr %14, align 8
  %4269 = extractvalue { ptr, i32 } %4267, 1
  store i32 %4269, ptr %15, align 4
  br label %4274

4270:                                             ; preds = %4242, %4240
  %4271 = landingpad { ptr, i32 }
          cleanup
  %4272 = extractvalue { ptr, i32 } %4271, 0
  store ptr %4272, ptr %14, align 8
  %4273 = extractvalue { ptr, i32 } %4271, 1
  store i32 %4273, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %326) #8
  br label %4274

4274:                                             ; preds = %4270, %4266
  call void @llvm.lifetime.end.p0(i64 88, ptr %326) #8
  br label %5945

4275:                                             ; preds = %4265, %4249
  br label %4276

4276:                                             ; preds = %4275
  br label %4277

4277:                                             ; preds = %4276
  store i1 true, ptr %328, align 1
  %4278 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4279 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %327, i32 noundef 14)
          to label %4280 unwind label %4282

4280:                                             ; preds = %4277
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %4278, ptr noundef nonnull align 8 dereferenceable(176) %4279, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %327)
          to label %4281 unwind label %4286

4281:                                             ; preds = %4280
  store i1 false, ptr %328, align 1
  invoke void @__cxa_throw(ptr %4278, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4286

4282:                                             ; preds = %4277
  %4283 = landingpad { ptr, i32 }
          cleanup
  %4284 = extractvalue { ptr, i32 } %4283, 0
  store ptr %4284, ptr %14, align 8
  %4285 = extractvalue { ptr, i32 } %4283, 1
  store i32 %4285, ptr %15, align 4
  br label %4290

4286:                                             ; preds = %4281, %4280
  %4287 = landingpad { ptr, i32 }
          cleanup
  %4288 = extractvalue { ptr, i32 } %4287, 0
  store ptr %4288, ptr %14, align 8
  %4289 = extractvalue { ptr, i32 } %4287, 1
  store i32 %4289, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %327) #8
  br label %4290

4290:                                             ; preds = %4286, %4282
  %4291 = load i1, ptr %328, align 1
  br i1 %4291, label %4292, label %4293

4292:                                             ; preds = %4290
  call void @__cxa_free_exception(ptr %4278) #8
  br label %4293

4293:                                             ; preds = %4292, %4290
  br label %5945

4294:                                             ; preds = %4244
  br label %4295

4295:                                             ; preds = %4294
  br label %4296

4296:                                             ; preds = %4295
  %4297 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4298 unwind label %877

4298:                                             ; preds = %4296
  %4299 = getelementptr inbounds %struct.Ident, ptr %4297, i32 0, i32 1
  %4300 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %4299)
          to label %4301 unwind label %877

4301:                                             ; preds = %4298
  call void @llvm.lifetime.start.p0(i64 48, ptr %329) #8
  %4302 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::GenericParams") align 8 %329, ptr noundef nonnull align 8 dereferenceable(176) %4302)
          to label %4303 unwind label %4360

4303:                                             ; preds = %4301
  %4304 = load ptr, ptr %7, align 8, !tbaa !5
  %4305 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %4304, i32 noundef 0)
          to label %4306 unwind label %4364

4306:                                             ; preds = %4303
  %4307 = icmp eq i32 %4305, 50
  br i1 %4307, label %4308, label %4440

4308:                                             ; preds = %4306
  call void @llvm.lifetime.start.p0(i64 72, ptr %330) #8
  invoke void @_ZN3AST10TraitAliasC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %330)
          to label %4309 unwind label %4368

4309:                                             ; preds = %4308
  %4310 = getelementptr inbounds %"class.AST::TraitAlias", ptr %330, i32 0, i32 0
  %4311 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN3AST13GenericParamsaSEOS0_(ptr noundef nonnull align 8 dereferenceable(48) %4310, ptr noundef nonnull align 8 dereferenceable(48) %329) #8
  br label %4312

4312:                                             ; preds = %4329, %4309
  %4313 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %331, ptr noundef nonnull align 8 dereferenceable(176) %4313)
          to label %4314 unwind label %4372

4314:                                             ; preds = %4312
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %331) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %332) #8
  %4315 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10start_spanEv(ptr dead_on_unwind writable sret(%struct.ProtoSpan) align 8 %332, ptr noundef nonnull align 8 dereferenceable(176) %4315)
          to label %4316 unwind label %4376

4316:                                             ; preds = %4314
  call void @llvm.lifetime.start.p0(i64 24, ptr %333) #8
  %4317 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z13Parse_HRB_OptR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::HigherRankedBounds") align 8 %333, ptr noundef nonnull align 8 dereferenceable(176) %4317)
          to label %4318 unwind label %4380

4318:                                             ; preds = %4316
  %4319 = getelementptr inbounds %"class.AST::TraitAlias", ptr %330, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 40, ptr %334) #8
  %4320 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %336) #8
  %4321 = getelementptr inbounds %class.anon.248, ptr %336, i32 0, i32 0
  store ptr %333, ptr %4321, align 8, !tbaa !5
  %4322 = getelementptr inbounds %class.anon.248, ptr %336, i32 0, i32 1
  %4323 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %4323, ptr %4322, align 8, !tbaa !5
  call void @"_ZNSt8functionIF14Type_TraitPathvEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %335, ptr noundef nonnull align 8 dereferenceable(16) %336) #8
  invoke void @_Z11get_spannedI14Type_TraitPathE7SpannedIT_ER11TokenStreamSt8functionIFS2_vEE(ptr dead_on_unwind writable sret(%struct.Spanned.226) align 8 %334, ptr noundef nonnull align 8 dereferenceable(176) %4320, ptr noundef %335)
          to label %4324 unwind label %4384

4324:                                             ; preds = %4318
  invoke void @_ZNSt6vectorI7SpannedI14Type_TraitPathESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %4319, ptr noundef nonnull align 8 dereferenceable(40) %334)
          to label %4325 unwind label %4388

4325:                                             ; preds = %4324
  call void @_ZN7SpannedI14Type_TraitPathED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %334) #8
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %336) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %334) #8
  call void @_ZN3AST18HigherRankedBoundsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %333) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %333) #8
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %332) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %332) #8
  br label %4326

4326:                                             ; preds = %4325
  %4327 = load ptr, ptr %7, align 8, !tbaa !5
  %4328 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %4327, i32 noundef 0)
          to label %4329 unwind label %4372

4329:                                             ; preds = %4326
  %4330 = icmp eq i32 %4328, 41
  br i1 %4330, label %4312, label %4331, !llvm.loop !25

4331:                                             ; preds = %4329
  br label %4332

4332:                                             ; preds = %4331
  call void @llvm.lifetime.start.p0(i64 88, ptr %337) #8
  %4333 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %337, ptr noundef nonnull align 8 dereferenceable(176) %4333)
          to label %4334 unwind label %4395

4334:                                             ; preds = %4332
  %4335 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %337)
          to label %4336 unwind label %4399

4336:                                             ; preds = %4334
  %4337 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4335)
          to label %4338 unwind label %4399

4338:                                             ; preds = %4336
  %4339 = icmp ne i32 %4337, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %337) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %337) #8
  br i1 %4339, label %4340, label %4423

4340:                                             ; preds = %4338
  br label %4341

4341:                                             ; preds = %4340
  %4342 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4343 unwind label %4372

4343:                                             ; preds = %4341
  br i1 %4342, label %4344, label %4404

4344:                                             ; preds = %4343
  %4345 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4345, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4347 unwind label %4372

4347:                                             ; preds = %4344
  %4348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4346, ptr noundef @.str.1)
          to label %4349 unwind label %4372

4349:                                             ; preds = %4347
  %4350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4348, ptr noundef @.str.2)
          to label %4351 unwind label %4372

4351:                                             ; preds = %4349
  %4352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4350, ptr noundef @.str.3)
          to label %4353 unwind label %4372

4353:                                             ; preds = %4351
  %4354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %4352, i32 noundef 2152)
          to label %4355 unwind label %4372

4355:                                             ; preds = %4353
  %4356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4354, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4357 unwind label %4372

4357:                                             ; preds = %4355
  %4358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4356, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4359 unwind label %4372

4359:                                             ; preds = %4357
  br label %4404

4360:                                             ; preds = %4301
  %4361 = landingpad { ptr, i32 }
          cleanup
  %4362 = extractvalue { ptr, i32 } %4361, 0
  store ptr %4362, ptr %14, align 8
  %4363 = extractvalue { ptr, i32 } %4361, 1
  store i32 %4363, ptr %15, align 4
  br label %4462

4364:                                             ; preds = %4303
  %4365 = landingpad { ptr, i32 }
          cleanup
  %4366 = extractvalue { ptr, i32 } %4365, 0
  store ptr %4366, ptr %14, align 8
  %4367 = extractvalue { ptr, i32 } %4365, 1
  store i32 %4367, ptr %15, align 4
  br label %4461

4368:                                             ; preds = %4308
  %4369 = landingpad { ptr, i32 }
          cleanup
  %4370 = extractvalue { ptr, i32 } %4369, 0
  store ptr %4370, ptr %14, align 8
  %4371 = extractvalue { ptr, i32 } %4369, 1
  store i32 %4371, ptr %15, align 4
  br label %4439

4372:                                             ; preds = %4357, %4355, %4353, %4351, %4349, %4347, %4344, %4341, %4326, %4312
  %4373 = landingpad { ptr, i32 }
          cleanup
  %4374 = extractvalue { ptr, i32 } %4373, 0
  store ptr %4374, ptr %14, align 8
  %4375 = extractvalue { ptr, i32 } %4373, 1
  store i32 %4375, ptr %15, align 4
  br label %4438

4376:                                             ; preds = %4314
  %4377 = landingpad { ptr, i32 }
          cleanup
  %4378 = extractvalue { ptr, i32 } %4377, 0
  store ptr %4378, ptr %14, align 8
  %4379 = extractvalue { ptr, i32 } %4377, 1
  store i32 %4379, ptr %15, align 4
  br label %4394

4380:                                             ; preds = %4316
  %4381 = landingpad { ptr, i32 }
          cleanup
  %4382 = extractvalue { ptr, i32 } %4381, 0
  store ptr %4382, ptr %14, align 8
  %4383 = extractvalue { ptr, i32 } %4381, 1
  store i32 %4383, ptr %15, align 4
  br label %4393

4384:                                             ; preds = %4318
  %4385 = landingpad { ptr, i32 }
          cleanup
  %4386 = extractvalue { ptr, i32 } %4385, 0
  store ptr %4386, ptr %14, align 8
  %4387 = extractvalue { ptr, i32 } %4385, 1
  store i32 %4387, ptr %15, align 4
  br label %4392

4388:                                             ; preds = %4324
  %4389 = landingpad { ptr, i32 }
          cleanup
  %4390 = extractvalue { ptr, i32 } %4389, 0
  store ptr %4390, ptr %14, align 8
  %4391 = extractvalue { ptr, i32 } %4389, 1
  store i32 %4391, ptr %15, align 4
  call void @_ZN7SpannedI14Type_TraitPathED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %334) #8
  br label %4392

4392:                                             ; preds = %4388, %4384
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %335) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %336) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %334) #8
  call void @_ZN3AST18HigherRankedBoundsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %333) #8
  br label %4393

4393:                                             ; preds = %4392, %4380
  call void @llvm.lifetime.end.p0(i64 24, ptr %333) #8
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %332) #8
  br label %4394

4394:                                             ; preds = %4393, %4376
  call void @llvm.lifetime.end.p0(i64 24, ptr %332) #8
  br label %4438

4395:                                             ; preds = %4332
  %4396 = landingpad { ptr, i32 }
          cleanup
  %4397 = extractvalue { ptr, i32 } %4396, 0
  store ptr %4397, ptr %14, align 8
  %4398 = extractvalue { ptr, i32 } %4396, 1
  store i32 %4398, ptr %15, align 4
  br label %4403

4399:                                             ; preds = %4336, %4334
  %4400 = landingpad { ptr, i32 }
          cleanup
  %4401 = extractvalue { ptr, i32 } %4400, 0
  store ptr %4401, ptr %14, align 8
  %4402 = extractvalue { ptr, i32 } %4400, 1
  store i32 %4402, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %337) #8
  br label %4403

4403:                                             ; preds = %4399, %4395
  call void @llvm.lifetime.end.p0(i64 88, ptr %337) #8
  br label %4438

4404:                                             ; preds = %4359, %4343
  br label %4405

4405:                                             ; preds = %4404
  br label %4406

4406:                                             ; preds = %4405
  store i1 true, ptr %339, align 1
  %4407 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4408 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %338, i32 noundef 32)
          to label %4409 unwind label %4411

4409:                                             ; preds = %4406
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %4407, ptr noundef nonnull align 8 dereferenceable(176) %4408, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %338)
          to label %4410 unwind label %4415

4410:                                             ; preds = %4409
  store i1 false, ptr %339, align 1
  invoke void @__cxa_throw(ptr %4407, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4415

4411:                                             ; preds = %4406
  %4412 = landingpad { ptr, i32 }
          cleanup
  %4413 = extractvalue { ptr, i32 } %4412, 0
  store ptr %4413, ptr %14, align 8
  %4414 = extractvalue { ptr, i32 } %4412, 1
  store i32 %4414, ptr %15, align 4
  br label %4419

4415:                                             ; preds = %4410, %4409
  %4416 = landingpad { ptr, i32 }
          cleanup
  %4417 = extractvalue { ptr, i32 } %4416, 0
  store ptr %4417, ptr %14, align 8
  %4418 = extractvalue { ptr, i32 } %4416, 1
  store i32 %4418, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %338) #8
  br label %4419

4419:                                             ; preds = %4415, %4411
  %4420 = load i1, ptr %339, align 1
  br i1 %4420, label %4421, label %4422

4421:                                             ; preds = %4419
  call void @__cxa_free_exception(ptr %4407) #8
  br label %4422

4422:                                             ; preds = %4421, %4419
  br label %4438

4423:                                             ; preds = %4338
  br label %4424

4424:                                             ; preds = %4423
  br label %4425

4425:                                             ; preds = %4424
  call void @llvm.lifetime.start.p0(i64 488, ptr %340) #8
  call void @_ZN3AST10TraitAliasC2EOS0_(ptr noundef nonnull align 8 dereferenceable(72) %341, ptr noundef nonnull align 8 dereferenceable(72) %330) #8
  invoke void @_ZN3AST4ItemC2ENS_10TraitAliasE(ptr noundef nonnull align 8 dereferenceable(488) %340, ptr noundef %341)
          to label %4426 unwind label %4429

4426:                                             ; preds = %4425
  %4427 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %340)
          to label %4428 unwind label %4433

4428:                                             ; preds = %4426
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %340) #8
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %341) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %340) #8
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %330) #8
  call void @llvm.lifetime.end.p0(i64 72, ptr %330) #8
  br label %4460

4429:                                             ; preds = %4425
  %4430 = landingpad { ptr, i32 }
          cleanup
  %4431 = extractvalue { ptr, i32 } %4430, 0
  store ptr %4431, ptr %14, align 8
  %4432 = extractvalue { ptr, i32 } %4430, 1
  store i32 %4432, ptr %15, align 4
  br label %4437

4433:                                             ; preds = %4426
  %4434 = landingpad { ptr, i32 }
          cleanup
  %4435 = extractvalue { ptr, i32 } %4434, 0
  store ptr %4435, ptr %14, align 8
  %4436 = extractvalue { ptr, i32 } %4434, 1
  store i32 %4436, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %340) #8
  br label %4437

4437:                                             ; preds = %4433, %4429
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %341) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %340) #8
  br label %4438

4438:                                             ; preds = %4437, %4422, %4403, %4394, %4372
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %330) #8
  br label %4439

4439:                                             ; preds = %4438, %4368
  call void @llvm.lifetime.end.p0(i64 72, ptr %330) #8
  br label %4461

4440:                                             ; preds = %4306
  call void @llvm.lifetime.start.p0(i64 488, ptr %342) #8
  %4441 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN3AST13GenericParamsC2EOS0_(ptr noundef nonnull align 8 dereferenceable(48) %344, ptr noundef nonnull align 8 dereferenceable(48) %329) #8
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind writable sret(%"class.AST::Trait") align 8 %343, ptr noundef nonnull align 8 dereferenceable(176) %4441, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef %344)
          to label %4442 unwind label %4446

4442:                                             ; preds = %4440
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %342, ptr noundef %343)
          to label %4443 unwind label %4450

4443:                                             ; preds = %4442
  %4444 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %342)
          to label %4445 unwind label %4454

4445:                                             ; preds = %4443
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %342) #8
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %343) #8
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %344) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %342) #8
  br label %4460

4446:                                             ; preds = %4440
  %4447 = landingpad { ptr, i32 }
          cleanup
  %4448 = extractvalue { ptr, i32 } %4447, 0
  store ptr %4448, ptr %14, align 8
  %4449 = extractvalue { ptr, i32 } %4447, 1
  store i32 %4449, ptr %15, align 4
  br label %4459

4450:                                             ; preds = %4442
  %4451 = landingpad { ptr, i32 }
          cleanup
  %4452 = extractvalue { ptr, i32 } %4451, 0
  store ptr %4452, ptr %14, align 8
  %4453 = extractvalue { ptr, i32 } %4451, 1
  store i32 %4453, ptr %15, align 4
  br label %4458

4454:                                             ; preds = %4443
  %4455 = landingpad { ptr, i32 }
          cleanup
  %4456 = extractvalue { ptr, i32 } %4455, 0
  store ptr %4456, ptr %14, align 8
  %4457 = extractvalue { ptr, i32 } %4455, 1
  store i32 %4457, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %342) #8
  br label %4458

4458:                                             ; preds = %4454, %4450
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %343) #8
  br label %4459

4459:                                             ; preds = %4458, %4446
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %344) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %342) #8
  br label %4461

4460:                                             ; preds = %4445, %4428
  store i32 18, ptr %33, align 4
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %329) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %329) #8
  br label %5924

4461:                                             ; preds = %4459, %4439, %4364
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %329) #8
  br label %4462

4462:                                             ; preds = %4461, %4360
  call void @llvm.lifetime.end.p0(i64 48, ptr %329) #8
  br label %5945

4463:                                             ; preds = %796
  %4464 = load i32, ptr @gTargetVersion, align 4, !tbaa !23
  %4465 = icmp sge i32 %4464, 1
  br i1 %4465, label %4466, label %4707

4466:                                             ; preds = %4463
  br label %4467

4467:                                             ; preds = %4466
  call void @llvm.lifetime.start.p0(i64 88, ptr %345) #8
  %4468 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %345, ptr noundef nonnull align 8 dereferenceable(176) %4468)
          to label %4469 unwind label %4495

4469:                                             ; preds = %4467
  %4470 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %345)
          to label %4471 unwind label %4499

4471:                                             ; preds = %4469
  %4472 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4470)
          to label %4473 unwind label %4499

4473:                                             ; preds = %4471
  %4474 = icmp ne i32 %4472, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %345) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %345) #8
  br i1 %4474, label %4475, label %4523

4475:                                             ; preds = %4473
  br label %4476

4476:                                             ; preds = %4475
  %4477 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4478 unwind label %877

4478:                                             ; preds = %4476
  br i1 %4477, label %4479, label %4504

4479:                                             ; preds = %4478
  %4480 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4480, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4482 unwind label %877

4482:                                             ; preds = %4479
  %4483 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4481, ptr noundef @.str.1)
          to label %4484 unwind label %877

4484:                                             ; preds = %4482
  %4485 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4483, ptr noundef @.str.2)
          to label %4486 unwind label %877

4486:                                             ; preds = %4484
  %4487 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4485, ptr noundef @.str.3)
          to label %4488 unwind label %877

4488:                                             ; preds = %4486
  %4489 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %4487, i32 noundef 2164)
          to label %4490 unwind label %877

4490:                                             ; preds = %4488
  %4491 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4489, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4492 unwind label %877

4492:                                             ; preds = %4490
  %4493 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4491, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4494 unwind label %877

4494:                                             ; preds = %4492
  br label %4504

4495:                                             ; preds = %4467
  %4496 = landingpad { ptr, i32 }
          cleanup
  %4497 = extractvalue { ptr, i32 } %4496, 0
  store ptr %4497, ptr %14, align 8
  %4498 = extractvalue { ptr, i32 } %4496, 1
  store i32 %4498, ptr %15, align 4
  br label %4503

4499:                                             ; preds = %4471, %4469
  %4500 = landingpad { ptr, i32 }
          cleanup
  %4501 = extractvalue { ptr, i32 } %4500, 0
  store ptr %4501, ptr %14, align 8
  %4502 = extractvalue { ptr, i32 } %4500, 1
  store i32 %4502, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %345) #8
  br label %4503

4503:                                             ; preds = %4499, %4495
  call void @llvm.lifetime.end.p0(i64 88, ptr %345) #8
  br label %5945

4504:                                             ; preds = %4494, %4478
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

4506:                                             ; preds = %4505
  store i1 true, ptr %347, align 1
  %4507 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4508 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %346, i32 noundef 14)
          to label %4509 unwind label %4511

4509:                                             ; preds = %4506
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %4507, ptr noundef nonnull align 8 dereferenceable(176) %4508, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %346)
          to label %4510 unwind label %4515

4510:                                             ; preds = %4509
  store i1 false, ptr %347, align 1
  invoke void @__cxa_throw(ptr %4507, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4515

4511:                                             ; preds = %4506
  %4512 = landingpad { ptr, i32 }
          cleanup
  %4513 = extractvalue { ptr, i32 } %4512, 0
  store ptr %4513, ptr %14, align 8
  %4514 = extractvalue { ptr, i32 } %4512, 1
  store i32 %4514, ptr %15, align 4
  br label %4519

4515:                                             ; preds = %4510, %4509
  %4516 = landingpad { ptr, i32 }
          cleanup
  %4517 = extractvalue { ptr, i32 } %4516, 0
  store ptr %4517, ptr %14, align 8
  %4518 = extractvalue { ptr, i32 } %4516, 1
  store i32 %4518, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %346) #8
  br label %4519

4519:                                             ; preds = %4515, %4511
  %4520 = load i1, ptr %347, align 1
  br i1 %4520, label %4521, label %4522

4521:                                             ; preds = %4519
  call void @__cxa_free_exception(ptr %4507) #8
  br label %4522

4522:                                             ; preds = %4521, %4519
  br label %5945

4523:                                             ; preds = %4473
  br label %4524

4524:                                             ; preds = %4523
  br label %4525

4525:                                             ; preds = %4524
  call void @llvm.lifetime.start.p0(i64 8, ptr %348) #8
  %4526 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4527 unwind label %4545

4527:                                             ; preds = %4525
  %4528 = getelementptr inbounds %struct.Ident, ptr %4526, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %348, ptr noundef nonnull align 8 dereferenceable(8) %4528)
          to label %4529 unwind label %4545

4529:                                             ; preds = %4527
  br label %4530

4530:                                             ; preds = %4529
  %4531 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4532 unwind label %4549

4532:                                             ; preds = %4530
  br i1 %4531, label %4533, label %4553

4533:                                             ; preds = %4532
  %4534 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4534, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4536 unwind label %4549

4536:                                             ; preds = %4533
  %4537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4535, ptr noundef @.str.24)
          to label %4538 unwind label %4549

4538:                                             ; preds = %4536
  %4539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %4537, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %4540 unwind label %4549

4540:                                             ; preds = %4538
  %4541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4539, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4542 unwind label %4549

4542:                                             ; preds = %4540
  %4543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4541, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4544 unwind label %4549

4544:                                             ; preds = %4542
  br label %4553

4545:                                             ; preds = %4527, %4525
  %4546 = landingpad { ptr, i32 }
          cleanup
  %4547 = extractvalue { ptr, i32 } %4546, 0
  store ptr %4547, ptr %14, align 8
  %4548 = extractvalue { ptr, i32 } %4546, 1
  store i32 %4548, ptr %15, align 4
  br label %4706

4549:                                             ; preds = %4542, %4540, %4538, %4536, %4533, %4530
  %4550 = landingpad { ptr, i32 }
          cleanup
  %4551 = extractvalue { ptr, i32 } %4550, 0
  store ptr %4551, ptr %14, align 8
  %4552 = extractvalue { ptr, i32 } %4550, 1
  store i32 %4552, ptr %15, align 4
  br label %4705

4553:                                             ; preds = %4544, %4532
  br label %4554

4554:                                             ; preds = %4553
  br label %4555

4555:                                             ; preds = %4554
  call void @llvm.lifetime.start.p0(i64 8, ptr %349) #8
  invoke void @_ZN13MacroRulesPtrC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %349)
          to label %4556 unwind label %4572

4556:                                             ; preds = %4555
  %4557 = load ptr, ptr %7, align 8, !tbaa !5
  %4558 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %4557, i32 noundef 0)
          to label %4559 unwind label %4576

4559:                                             ; preds = %4556
  %4560 = icmp eq i32 %4558, 25
  br i1 %4560, label %4561, label %4598

4561:                                             ; preds = %4559
  call void @llvm.lifetime.start.p0(i64 88, ptr %350) #8
  %4562 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %350, ptr noundef nonnull align 8 dereferenceable(176) %4562)
          to label %4563 unwind label %4580

4563:                                             ; preds = %4561
  %4564 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %350)
          to label %4565 unwind label %4584

4565:                                             ; preds = %4563
  %4566 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4564)
          to label %4567 unwind label %4584

4567:                                             ; preds = %4565
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %350) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %350) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %351) #8
  %4568 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z16Parse_MacroRulesR11TokenStream(ptr dead_on_unwind writable sret(%class.MacroRulesPtr) align 8 %351, ptr noundef nonnull align 8 dereferenceable(176) %4568)
          to label %4569 unwind label %4589

4569:                                             ; preds = %4567
  %4570 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN13MacroRulesPtraSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull align 8 dereferenceable(8) %351)
          to label %4571 unwind label %4593

4571:                                             ; preds = %4569
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %351) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #8
  br label %4641

4572:                                             ; preds = %4555
  %4573 = landingpad { ptr, i32 }
          cleanup
  %4574 = extractvalue { ptr, i32 } %4573, 0
  store ptr %4574, ptr %14, align 8
  %4575 = extractvalue { ptr, i32 } %4573, 1
  store i32 %4575, ptr %15, align 4
  br label %4704

4576:                                             ; preds = %4658, %4626, %4598, %4556
  %4577 = landingpad { ptr, i32 }
          cleanup
  %4578 = extractvalue { ptr, i32 } %4577, 0
  store ptr %4578, ptr %14, align 8
  %4579 = extractvalue { ptr, i32 } %4577, 1
  store i32 %4579, ptr %15, align 4
  br label %4703

4580:                                             ; preds = %4561
  %4581 = landingpad { ptr, i32 }
          cleanup
  %4582 = extractvalue { ptr, i32 } %4581, 0
  store ptr %4582, ptr %14, align 8
  %4583 = extractvalue { ptr, i32 } %4581, 1
  store i32 %4583, ptr %15, align 4
  br label %4588

4584:                                             ; preds = %4565, %4563
  %4585 = landingpad { ptr, i32 }
          cleanup
  %4586 = extractvalue { ptr, i32 } %4585, 0
  store ptr %4586, ptr %14, align 8
  %4587 = extractvalue { ptr, i32 } %4585, 1
  store i32 %4587, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %350) #8
  br label %4588

4588:                                             ; preds = %4584, %4580
  call void @llvm.lifetime.end.p0(i64 88, ptr %350) #8
  br label %4703

4589:                                             ; preds = %4567
  %4590 = landingpad { ptr, i32 }
          cleanup
  %4591 = extractvalue { ptr, i32 } %4590, 0
  store ptr %4591, ptr %14, align 8
  %4592 = extractvalue { ptr, i32 } %4590, 1
  store i32 %4592, ptr %15, align 4
  br label %4597

4593:                                             ; preds = %4569
  %4594 = landingpad { ptr, i32 }
          cleanup
  %4595 = extractvalue { ptr, i32 } %4594, 0
  store ptr %4595, ptr %14, align 8
  %4596 = extractvalue { ptr, i32 } %4594, 1
  store i32 %4596, ptr %15, align 4
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %351) #8
  br label %4597

4597:                                             ; preds = %4593, %4589
  call void @llvm.lifetime.end.p0(i64 8, ptr %351) #8
  br label %4703

4598:                                             ; preds = %4559
  %4599 = load ptr, ptr %7, align 8, !tbaa !5
  %4600 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %4599, i32 noundef 0)
          to label %4601 unwind label %4576

4601:                                             ; preds = %4598
  %4602 = icmp eq i32 %4600, 23
  br i1 %4602, label %4603, label %4617

4603:                                             ; preds = %4601
  call void @llvm.lifetime.start.p0(i64 8, ptr %352) #8
  %4604 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z25Parse_MacroRulesSingleArmR11TokenStream(ptr dead_on_unwind writable sret(%class.MacroRulesPtr) align 8 %352, ptr noundef nonnull align 8 dereferenceable(176) %4604)
          to label %4605 unwind label %4608

4605:                                             ; preds = %4603
  %4606 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN13MacroRulesPtraSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef nonnull align 8 dereferenceable(8) %352)
          to label %4607 unwind label %4612

4607:                                             ; preds = %4605
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %352) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #8
  br label %4640

4608:                                             ; preds = %4603
  %4609 = landingpad { ptr, i32 }
          cleanup
  %4610 = extractvalue { ptr, i32 } %4609, 0
  store ptr %4610, ptr %14, align 8
  %4611 = extractvalue { ptr, i32 } %4609, 1
  store i32 %4611, ptr %15, align 4
  br label %4616

4612:                                             ; preds = %4605
  %4613 = landingpad { ptr, i32 }
          cleanup
  %4614 = extractvalue { ptr, i32 } %4613, 0
  store ptr %4614, ptr %14, align 8
  %4615 = extractvalue { ptr, i32 } %4613, 1
  store i32 %4615, ptr %15, align 4
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %352) #8
  br label %4616

4616:                                             ; preds = %4612, %4608
  call void @llvm.lifetime.end.p0(i64 8, ptr %352) #8
  br label %4703

4617:                                             ; preds = %4601
  call void @llvm.lifetime.start.p0(i64 88, ptr %353) #8
  %4618 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %353, ptr noundef nonnull align 8 dereferenceable(176) %4618)
          to label %4619 unwind label %4627

4619:                                             ; preds = %4617
  %4620 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %353)
          to label %4621 unwind label %4631

4621:                                             ; preds = %4619
  %4622 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4620)
          to label %4623 unwind label %4631

4623:                                             ; preds = %4621
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %353) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %353) #8
  %4624 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4625 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %4624, ptr noundef nonnull align 8 dereferenceable(176) %4625, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4626 unwind label %4636

4626:                                             ; preds = %4623
  invoke void @__cxa_throw(ptr %4624, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4576

4627:                                             ; preds = %4617
  %4628 = landingpad { ptr, i32 }
          cleanup
  %4629 = extractvalue { ptr, i32 } %4628, 0
  store ptr %4629, ptr %14, align 8
  %4630 = extractvalue { ptr, i32 } %4628, 1
  store i32 %4630, ptr %15, align 4
  br label %4635

4631:                                             ; preds = %4621, %4619
  %4632 = landingpad { ptr, i32 }
          cleanup
  %4633 = extractvalue { ptr, i32 } %4632, 0
  store ptr %4633, ptr %14, align 8
  %4634 = extractvalue { ptr, i32 } %4632, 1
  store i32 %4634, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %353) #8
  br label %4635

4635:                                             ; preds = %4631, %4627
  call void @llvm.lifetime.end.p0(i64 88, ptr %353) #8
  br label %4703

4636:                                             ; preds = %4623
  %4637 = landingpad { ptr, i32 }
          cleanup
  %4638 = extractvalue { ptr, i32 } %4637, 0
  store ptr %4638, ptr %14, align 8
  %4639 = extractvalue { ptr, i32 } %4637, 1
  store i32 %4639, ptr %15, align 4
  call void @__cxa_free_exception(ptr %4624) #8
  br label %4703

4640:                                             ; preds = %4607
  br label %4641

4641:                                             ; preds = %4640, %4571
  call void @llvm.lifetime.start.p0(i64 32, ptr %354) #8
  invoke void @_ZN5Ident7ModPathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354)
          to label %4642 unwind label %4666

4642:                                             ; preds = %4641
  call void @llvm.lifetime.start.p0(i64 8, ptr %355) #8
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef @.str)
          to label %4643 unwind label %4670

4643:                                             ; preds = %4642
  %4644 = getelementptr inbounds %"struct.Ident::ModPath", ptr %354, i32 0, i32 0
  %4645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %4644, ptr noundef nonnull align 8 dereferenceable(8) %355)
          to label %4646 unwind label %4674

4646:                                             ; preds = %4643
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %355) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %355) #8
  %4647 = load ptr, ptr %9, align 8, !tbaa !5
  %4648 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %4647, i32 0, i32 1
  %4649 = getelementptr inbounds %"struct.Ident::ModPath", ptr %354, i32 0, i32 1
  %4650 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %4649, ptr noundef nonnull align 8 dereferenceable(24) %4648)
          to label %4651 unwind label %4679

4651:                                             ; preds = %4646
  %4652 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %349)
          to label %4653 unwind label %4679

4653:                                             ; preds = %4651
  %4654 = getelementptr inbounds %class.MacroRules, ptr %4652, i32 0, i32 5
  invoke void @_ZN5Ident7ModPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %356, ptr noundef nonnull align 8 dereferenceable(32) %354)
          to label %4655 unwind label %4679

4655:                                             ; preds = %4653
  invoke void @_ZN5Ident7Hygiene12set_mod_pathENS_7ModPathE(ptr noundef nonnull align 8 dereferenceable(8) %4654, ptr noundef %356)
          to label %4656 unwind label %4683

4656:                                             ; preds = %4655
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #8
  %4657 = invoke noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %349)
          to label %4658 unwind label %4679

4658:                                             ; preds = %4656
  %4659 = getelementptr inbounds %class.MacroRules, ptr %4657, i32 0, i32 2
  store i8 1, ptr %4659, align 1, !tbaa !26
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #8
  %4660 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %4661 unwind label %4576

4661:                                             ; preds = %4658
  call void @llvm.lifetime.start.p0(i64 488, ptr %357) #8
  invoke void @_ZN13MacroRulesPtrC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull align 8 dereferenceable(8) %349)
          to label %4662 unwind label %4689

4662:                                             ; preds = %4661
  invoke void @_ZN3AST4ItemC2E13MacroRulesPtr(ptr noundef nonnull align 8 dereferenceable(488) %357, ptr noundef %358)
          to label %4663 unwind label %4693

4663:                                             ; preds = %4662
  %4664 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %357)
          to label %4665 unwind label %4697

4665:                                             ; preds = %4663
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %357) #8
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %357) #8
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #8
  br label %4715

4666:                                             ; preds = %4641
  %4667 = landingpad { ptr, i32 }
          cleanup
  %4668 = extractvalue { ptr, i32 } %4667, 0
  store ptr %4668, ptr %14, align 8
  %4669 = extractvalue { ptr, i32 } %4667, 1
  store i32 %4669, ptr %15, align 4
  br label %4688

4670:                                             ; preds = %4642
  %4671 = landingpad { ptr, i32 }
          cleanup
  %4672 = extractvalue { ptr, i32 } %4671, 0
  store ptr %4672, ptr %14, align 8
  %4673 = extractvalue { ptr, i32 } %4671, 1
  store i32 %4673, ptr %15, align 4
  br label %4678

4674:                                             ; preds = %4643
  %4675 = landingpad { ptr, i32 }
          cleanup
  %4676 = extractvalue { ptr, i32 } %4675, 0
  store ptr %4676, ptr %14, align 8
  %4677 = extractvalue { ptr, i32 } %4675, 1
  store i32 %4677, ptr %15, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %355) #8
  br label %4678

4678:                                             ; preds = %4674, %4670
  call void @llvm.lifetime.end.p0(i64 8, ptr %355) #8
  br label %4687

4679:                                             ; preds = %4656, %4653, %4651, %4646
  %4680 = landingpad { ptr, i32 }
          cleanup
  %4681 = extractvalue { ptr, i32 } %4680, 0
  store ptr %4681, ptr %14, align 8
  %4682 = extractvalue { ptr, i32 } %4680, 1
  store i32 %4682, ptr %15, align 4
  br label %4687

4683:                                             ; preds = %4655
  %4684 = landingpad { ptr, i32 }
          cleanup
  %4685 = extractvalue { ptr, i32 } %4684, 0
  store ptr %4685, ptr %14, align 8
  %4686 = extractvalue { ptr, i32 } %4684, 1
  store i32 %4686, ptr %15, align 4
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %356) #8
  br label %4687

4687:                                             ; preds = %4683, %4679, %4678
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %354) #8
  br label %4688

4688:                                             ; preds = %4687, %4666
  call void @llvm.lifetime.end.p0(i64 32, ptr %354) #8
  br label %4703

4689:                                             ; preds = %4661
  %4690 = landingpad { ptr, i32 }
          cleanup
  %4691 = extractvalue { ptr, i32 } %4690, 0
  store ptr %4691, ptr %14, align 8
  %4692 = extractvalue { ptr, i32 } %4690, 1
  store i32 %4692, ptr %15, align 4
  br label %4702

4693:                                             ; preds = %4662
  %4694 = landingpad { ptr, i32 }
          cleanup
  %4695 = extractvalue { ptr, i32 } %4694, 0
  store ptr %4695, ptr %14, align 8
  %4696 = extractvalue { ptr, i32 } %4694, 1
  store i32 %4696, ptr %15, align 4
  br label %4701

4697:                                             ; preds = %4663
  %4698 = landingpad { ptr, i32 }
          cleanup
  %4699 = extractvalue { ptr, i32 } %4698, 0
  store ptr %4699, ptr %14, align 8
  %4700 = extractvalue { ptr, i32 } %4698, 1
  store i32 %4700, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %357) #8
  br label %4701

4701:                                             ; preds = %4697, %4693
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %358) #8
  br label %4702

4702:                                             ; preds = %4701, %4689
  call void @llvm.lifetime.end.p0(i64 488, ptr %357) #8
  br label %4703

4703:                                             ; preds = %4702, %4688, %4636, %4635, %4616, %4597, %4588, %4576
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %349) #8
  br label %4704

4704:                                             ; preds = %4703, %4572
  call void @llvm.lifetime.end.p0(i64 8, ptr %349) #8
  br label %4705

4705:                                             ; preds = %4704, %4549
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #8
  br label %4706

4706:                                             ; preds = %4705, %4545
  call void @llvm.lifetime.end.p0(i64 8, ptr %348) #8
  br label %5945

4707:                                             ; preds = %4463
  %4708 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4709 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %4708, ptr noundef nonnull align 8 dereferenceable(176) %4709, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4710 unwind label %4711

4710:                                             ; preds = %4707
  invoke void @__cxa_throw(ptr %4708, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %877

4711:                                             ; preds = %4707
  %4712 = landingpad { ptr, i32 }
          cleanup
  %4713 = extractvalue { ptr, i32 } %4712, 0
  store ptr %4713, ptr %14, align 8
  %4714 = extractvalue { ptr, i32 } %4712, 1
  store i32 %4714, ptr %15, align 4
  call void @__cxa_free_exception(ptr %4708) #8
  br label %5945

4715:                                             ; preds = %4665
  br label %5924

4716:                                             ; preds = %796
  br label %4717

4717:                                             ; preds = %4716
  call void @llvm.lifetime.start.p0(i64 88, ptr %359) #8
  %4718 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %359, ptr noundef nonnull align 8 dereferenceable(176) %4718)
          to label %4719 unwind label %4745

4719:                                             ; preds = %4717
  %4720 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %359)
          to label %4721 unwind label %4749

4721:                                             ; preds = %4719
  %4722 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %4720)
          to label %4723 unwind label %4749

4723:                                             ; preds = %4721
  %4724 = icmp ne i32 %4722, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %359) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %359) #8
  br i1 %4724, label %4725, label %4773

4725:                                             ; preds = %4723
  br label %4726

4726:                                             ; preds = %4725
  %4727 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4728 unwind label %877

4728:                                             ; preds = %4726
  br i1 %4727, label %4729, label %4754

4729:                                             ; preds = %4728
  %4730 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4731 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4730, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4732 unwind label %877

4732:                                             ; preds = %4729
  %4733 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4731, ptr noundef @.str.1)
          to label %4734 unwind label %877

4734:                                             ; preds = %4732
  %4735 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4733, ptr noundef @.str.2)
          to label %4736 unwind label %877

4736:                                             ; preds = %4734
  %4737 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4735, ptr noundef @.str.3)
          to label %4738 unwind label %877

4738:                                             ; preds = %4736
  %4739 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %4737, i32 noundef 2201)
          to label %4740 unwind label %877

4740:                                             ; preds = %4738
  %4741 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4739, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4742 unwind label %877

4742:                                             ; preds = %4740
  %4743 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4741, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4744 unwind label %877

4744:                                             ; preds = %4742
  br label %4754

4745:                                             ; preds = %4717
  %4746 = landingpad { ptr, i32 }
          cleanup
  %4747 = extractvalue { ptr, i32 } %4746, 0
  store ptr %4747, ptr %14, align 8
  %4748 = extractvalue { ptr, i32 } %4746, 1
  store i32 %4748, ptr %15, align 4
  br label %4753

4749:                                             ; preds = %4721, %4719
  %4750 = landingpad { ptr, i32 }
          cleanup
  %4751 = extractvalue { ptr, i32 } %4750, 0
  store ptr %4751, ptr %14, align 8
  %4752 = extractvalue { ptr, i32 } %4750, 1
  store i32 %4752, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %359) #8
  br label %4753

4753:                                             ; preds = %4749, %4745
  call void @llvm.lifetime.end.p0(i64 88, ptr %359) #8
  br label %5945

4754:                                             ; preds = %4744, %4728
  br label %4755

4755:                                             ; preds = %4754
  br label %4756

4756:                                             ; preds = %4755
  store i1 true, ptr %361, align 1
  %4757 = call ptr @__cxa_allocate_exception(i64 96) #8
  %4758 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %360, i32 noundef 14)
          to label %4759 unwind label %4761

4759:                                             ; preds = %4756
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %4757, ptr noundef nonnull align 8 dereferenceable(176) %4758, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %360)
          to label %4760 unwind label %4765

4760:                                             ; preds = %4759
  store i1 false, ptr %361, align 1
  invoke void @__cxa_throw(ptr %4757, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %4765

4761:                                             ; preds = %4756
  %4762 = landingpad { ptr, i32 }
          cleanup
  %4763 = extractvalue { ptr, i32 } %4762, 0
  store ptr %4763, ptr %14, align 8
  %4764 = extractvalue { ptr, i32 } %4762, 1
  store i32 %4764, ptr %15, align 4
  br label %4769

4765:                                             ; preds = %4760, %4759
  %4766 = landingpad { ptr, i32 }
          cleanup
  %4767 = extractvalue { ptr, i32 } %4766, 0
  store ptr %4767, ptr %14, align 8
  %4768 = extractvalue { ptr, i32 } %4766, 1
  store i32 %4768, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %360) #8
  br label %4769

4769:                                             ; preds = %4765, %4761
  %4770 = load i1, ptr %361, align 1
  br i1 %4770, label %4771, label %4772

4771:                                             ; preds = %4769
  call void @__cxa_free_exception(ptr %4757) #8
  br label %4772

4772:                                             ; preds = %4771, %4769
  br label %5945

4773:                                             ; preds = %4723
  br label %4774

4774:                                             ; preds = %4773
  br label %4775

4775:                                             ; preds = %4774
  call void @llvm.lifetime.start.p0(i64 8, ptr %362) #8
  %4776 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %4777 unwind label %4797

4777:                                             ; preds = %4775
  %4778 = getelementptr inbounds %struct.Ident, ptr %4776, i32 0, i32 1
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull align 8 dereferenceable(8) %4778)
          to label %4779 unwind label %4797

4779:                                             ; preds = %4777
  br label %4780

4780:                                             ; preds = %4779
  %4781 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %4782 unwind label %4801

4782:                                             ; preds = %4780
  br i1 %4781, label %4783, label %4805

4783:                                             ; preds = %4782
  %4784 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %4785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %4784, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %4786 unwind label %4801

4786:                                             ; preds = %4783
  %4787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4785, ptr noundef @.str.25)
          to label %4788 unwind label %4801

4788:                                             ; preds = %4786
  %4789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %4787, ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %4790 unwind label %4801

4790:                                             ; preds = %4788
  %4791 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4789, ptr noundef @.str.26)
          to label %4792 unwind label %4801

4792:                                             ; preds = %4790
  %4793 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %4791, ptr noundef @_ZSt3decRSt8ios_base)
          to label %4794 unwind label %4801

4794:                                             ; preds = %4792
  %4795 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %4793, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %4796 unwind label %4801

4796:                                             ; preds = %4794
  br label %4805

4797:                                             ; preds = %4777, %4775
  %4798 = landingpad { ptr, i32 }
          cleanup
  %4799 = extractvalue { ptr, i32 } %4798, 0
  store ptr %4799, ptr %14, align 8
  %4800 = extractvalue { ptr, i32 } %4798, 1
  store i32 %4800, ptr %15, align 4
  br label %5915

4801:                                             ; preds = %4794, %4792, %4790, %4788, %4786, %4783, %4780
  %4802 = landingpad { ptr, i32 }
          cleanup
  %4803 = extractvalue { ptr, i32 } %4802, 0
  store ptr %4803, ptr %14, align 8
  %4804 = extractvalue { ptr, i32 } %4802, 1
  store i32 %4804, ptr %15, align 4
  br label %5914

4805:                                             ; preds = %4796, %4782
  br label %4806

4806:                                             ; preds = %4805
  br label %4807

4807:                                             ; preds = %4806
  call void @llvm.lifetime.start.p0(i64 480, ptr %363) #8
  %4808 = load ptr, ptr %9, align 8, !tbaa !5
  invoke void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %365, ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %4809 unwind label %4822

4809:                                             ; preds = %4807
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind writable sret(%"struct.AST::AbsolutePath") align 8 %364, ptr noundef nonnull align 8 dereferenceable(32) %4808, ptr noundef %365)
          to label %4810 unwind label %4826

4810:                                             ; preds = %4809
  invoke void @_ZN3AST6ModuleC2ENS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(480) %363, ptr noundef %364)
          to label %4811 unwind label %4830

4811:                                             ; preds = %4810
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %365) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %366) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %367) #8
  %4812 = getelementptr inbounds %"class.AST::AttributeList", ptr %4, i32 0, i32 0
  store ptr %4812, ptr %367, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %368) #8
  %4813 = load ptr, ptr %367, align 8, !tbaa !5
  %4814 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4813) #8
  %4815 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %368, i32 0, i32 0
  store ptr %4814, ptr %4815, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %369) #8
  %4816 = load ptr, ptr %367, align 8, !tbaa !5
  %4817 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4816) #8
  %4818 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %369, i32 0, i32 0
  store ptr %4817, ptr %4818, align 8
  br label %4819

4819:                                             ; preds = %4924, %4811
  %4820 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %368, ptr noundef nonnull align 8 dereferenceable(8) %369) #8
  br i1 %4820, label %4835, label %4821

4821:                                             ; preds = %4819
  store i32 184, ptr %33, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %367) #8
  br label %4927

4822:                                             ; preds = %4807
  %4823 = landingpad { ptr, i32 }
          cleanup
  %4824 = extractvalue { ptr, i32 } %4823, 0
  store ptr %4824, ptr %14, align 8
  %4825 = extractvalue { ptr, i32 } %4823, 1
  store i32 %4825, ptr %15, align 4
  br label %5913

4826:                                             ; preds = %4809
  %4827 = landingpad { ptr, i32 }
          cleanup
  %4828 = extractvalue { ptr, i32 } %4827, 0
  store ptr %4828, ptr %14, align 8
  %4829 = extractvalue { ptr, i32 } %4827, 1
  store i32 %4829, ptr %15, align 4
  br label %4834

4830:                                             ; preds = %4810
  %4831 = landingpad { ptr, i32 }
          cleanup
  %4832 = extractvalue { ptr, i32 } %4831, 0
  store ptr %4832, ptr %14, align 8
  %4833 = extractvalue { ptr, i32 } %4831, 1
  store i32 %4833, ptr %15, align 4
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %364) #8
  br label %4834

4834:                                             ; preds = %4830, %4826
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %365) #8
  br label %5913

4835:                                             ; preds = %4819
  call void @llvm.lifetime.start.p0(i64 8, ptr %370) #8
  %4836 = call noundef nonnull align 8 dereferenceable(169) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %368) #8
  store ptr %4836, ptr %370, align 8, !tbaa !5
  %4837 = load ptr, ptr %370, align 8, !tbaa !5
  %4838 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST9Attribute4nameEv(ptr noundef nonnull align 8 dereferenceable(169) %4837)
          to label %4839 unwind label %4856

4839:                                             ; preds = %4835
  %4840 = invoke noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24) %4838, ptr noundef @.str.27)
          to label %4841 unwind label %4856

4841:                                             ; preds = %4839
  br i1 %4840, label %4842, label %4864

4842:                                             ; preds = %4841
  call void @llvm.lifetime.start.p0(i64 32, ptr %371) #8
  %4843 = load ptr, ptr %370, align 8, !tbaa !5
  %4844 = load ptr, ptr %7, align 8, !tbaa !5
  %4845 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %4844)
          to label %4846 unwind label %4860

4846:                                             ; preds = %4842
  %4847 = getelementptr inbounds %struct.ParseState, ptr %4845, i32 0, i32 3
  %4848 = load ptr, ptr %4847, align 8, !tbaa !41
  %4849 = load ptr, ptr %7, align 8, !tbaa !5
  %4850 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %4849)
          to label %4851 unwind label %4860

4851:                                             ; preds = %4846
  %4852 = getelementptr inbounds %struct.ParseState, ptr %4850, i32 0, i32 4
  %4853 = load ptr, ptr %4852, align 8, !tbaa !43
  invoke void @_ZNK3AST9Attribute19parse_equals_stringB5cxx11ERKNS_5CrateERKNS_6ModuleE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %371, ptr noundef nonnull align 8 dereferenceable(169) %4843, ptr noundef nonnull align 8 dereferenceable(1112) %4848, ptr noundef nonnull align 8 dereferenceable(480) %4853)
          to label %4854 unwind label %4860

4854:                                             ; preds = %4851
  %4855 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef nonnull align 8 dereferenceable(32) %371) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %371) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #8
  br label %4923

4856:                                             ; preds = %4867, %4864, %4839, %4835
  %4857 = landingpad { ptr, i32 }
          cleanup
  %4858 = extractvalue { ptr, i32 } %4857, 0
  store ptr %4858, ptr %14, align 8
  %4859 = extractvalue { ptr, i32 } %4857, 1
  store i32 %4859, ptr %15, align 4
  br label %4926

4860:                                             ; preds = %4851, %4846, %4842
  %4861 = landingpad { ptr, i32 }
          cleanup
  %4862 = extractvalue { ptr, i32 } %4861, 0
  store ptr %4862, ptr %14, align 8
  %4863 = extractvalue { ptr, i32 } %4861, 1
  store i32 %4863, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %371) #8
  br label %4926

4864:                                             ; preds = %4841
  %4865 = load ptr, ptr %370, align 8, !tbaa !5
  %4866 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST9Attribute4nameEv(ptr noundef nonnull align 8 dereferenceable(169) %4865)
          to label %4867 unwind label %4856

4867:                                             ; preds = %4864
  %4868 = invoke noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24) %4866, ptr noundef @.str.28)
          to label %4869 unwind label %4856

4869:                                             ; preds = %4867
  br i1 %4868, label %4870, label %4921

4870:                                             ; preds = %4869
  call void @llvm.lifetime.start.p0(i64 8, ptr %372) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr %373) #8
  %4871 = load ptr, ptr %370, align 8, !tbaa !5
  invoke void @_Z14check_cfg_attrRKN3AST9AttributeE(ptr dead_on_unwind writable sret(%"class.std::vector.81") align 8 %373, ptr noundef nonnull align 8 dereferenceable(169) %4871)
          to label %4872 unwind label %4882

4872:                                             ; preds = %4870
  store ptr %373, ptr %372, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %374) #8
  %4873 = load ptr, ptr %372, align 8, !tbaa !5
  %4874 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4873) #8
  %4875 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %374, i32 0, i32 0
  store ptr %4874, ptr %4875, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %375) #8
  %4876 = load ptr, ptr %372, align 8, !tbaa !5
  %4877 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4876) #8
  %4878 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %375, i32 0, i32 0
  store ptr %4877, ptr %4878, align 8
  br label %4879

4879:                                             ; preds = %4916, %4872
  %4880 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %374, ptr noundef nonnull align 8 dereferenceable(8) %375) #8
  br i1 %4880, label %4886, label %4881

4881:                                             ; preds = %4879
  store i32 186, ptr %33, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %374) #8
  call void @_ZNSt6vectorIN3AST9AttributeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %373) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %373) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %372) #8
  br label %4920

4882:                                             ; preds = %4870
  %4883 = landingpad { ptr, i32 }
          cleanup
  %4884 = extractvalue { ptr, i32 } %4883, 0
  store ptr %4884, ptr %14, align 8
  %4885 = extractvalue { ptr, i32 } %4883, 1
  store i32 %4885, ptr %15, align 4
  br label %4919

4886:                                             ; preds = %4879
  call void @llvm.lifetime.start.p0(i64 8, ptr %376) #8
  %4887 = call noundef nonnull align 8 dereferenceable(169) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %374) #8
  store ptr %4887, ptr %376, align 8, !tbaa !5
  %4888 = load ptr, ptr %376, align 8, !tbaa !5
  %4889 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST9Attribute4nameEv(ptr noundef nonnull align 8 dereferenceable(169) %4888)
          to label %4890 unwind label %4907

4890:                                             ; preds = %4886
  %4891 = invoke noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24) %4889, ptr noundef @.str.27)
          to label %4892 unwind label %4907

4892:                                             ; preds = %4890
  br i1 %4891, label %4893, label %4915

4893:                                             ; preds = %4892
  call void @llvm.lifetime.start.p0(i64 32, ptr %377) #8
  %4894 = load ptr, ptr %376, align 8, !tbaa !5
  %4895 = load ptr, ptr %7, align 8, !tbaa !5
  %4896 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %4895)
          to label %4897 unwind label %4911

4897:                                             ; preds = %4893
  %4898 = getelementptr inbounds %struct.ParseState, ptr %4896, i32 0, i32 3
  %4899 = load ptr, ptr %4898, align 8, !tbaa !41
  %4900 = load ptr, ptr %7, align 8, !tbaa !5
  %4901 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %4900)
          to label %4902 unwind label %4911

4902:                                             ; preds = %4897
  %4903 = getelementptr inbounds %struct.ParseState, ptr %4901, i32 0, i32 4
  %4904 = load ptr, ptr %4903, align 8, !tbaa !43
  invoke void @_ZNK3AST9Attribute19parse_equals_stringB5cxx11ERKNS_5CrateERKNS_6ModuleE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %377, ptr noundef nonnull align 8 dereferenceable(169) %4894, ptr noundef nonnull align 8 dereferenceable(1112) %4899, ptr noundef nonnull align 8 dereferenceable(480) %4904)
          to label %4905 unwind label %4911

4905:                                             ; preds = %4902
  %4906 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef nonnull align 8 dereferenceable(32) %377) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %377) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #8
  br label %4915

4907:                                             ; preds = %4890, %4886
  %4908 = landingpad { ptr, i32 }
          cleanup
  %4909 = extractvalue { ptr, i32 } %4908, 0
  store ptr %4909, ptr %14, align 8
  %4910 = extractvalue { ptr, i32 } %4908, 1
  store i32 %4910, ptr %15, align 4
  br label %4918

4911:                                             ; preds = %4902, %4897, %4893
  %4912 = landingpad { ptr, i32 }
          cleanup
  %4913 = extractvalue { ptr, i32 } %4912, 0
  store ptr %4913, ptr %14, align 8
  %4914 = extractvalue { ptr, i32 } %4912, 1
  store i32 %4914, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %377) #8
  br label %4918

4915:                                             ; preds = %4905, %4892
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #8
  br label %4916

4916:                                             ; preds = %4915
  %4917 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %374) #8
  br label %4879

4918:                                             ; preds = %4911, %4907
  call void @llvm.lifetime.end.p0(i64 8, ptr %376) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %375) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %374) #8
  call void @_ZNSt6vectorIN3AST9AttributeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %373) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %373) #8
  br label %4919

4919:                                             ; preds = %4918, %4882
  call void @llvm.lifetime.end.p0(i64 8, ptr %372) #8
  br label %4926

4920:                                             ; preds = %4881
  br label %4922

4921:                                             ; preds = %4869
  br label %4922

4922:                                             ; preds = %4921, %4920
  br label %4923

4923:                                             ; preds = %4922, %4854
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #8
  br label %4924

4924:                                             ; preds = %4923
  %4925 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %368) #8
  br label %4819

4926:                                             ; preds = %4919, %4860, %4856
  call void @llvm.lifetime.end.p0(i64 8, ptr %370) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %369) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %368) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %367) #8
  br label %5912

4927:                                             ; preds = %4821
  call void @llvm.lifetime.start.p0(i64 32, ptr %378) #8
  invoke void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %4928 unwind label %4943

4928:                                             ; preds = %4927
  call void @llvm.lifetime.start.p0(i64 1, ptr %379) #8
  store i8 1, ptr %379, align 1, !tbaa !19
  %4929 = load ptr, ptr %8, align 8, !tbaa !5
  %4930 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %4929, i32 0, i32 2
  %4931 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %4930, ptr noundef @.str.29)
          to label %4932 unwind label %4947

4932:                                             ; preds = %4928
  br i1 %4931, label %4933, label %4973

4933:                                             ; preds = %4932
  %4934 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  %4935 = icmp ne i64 %4934, 0
  br i1 %4935, label %4936, label %4966

4936:                                             ; preds = %4933
  br label %4937

4937:                                             ; preds = %4936
  call void @llvm.lifetime.start.p0(i64 8, ptr %380) #8
  %4938 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %380, ptr noundef nonnull align 8 dereferenceable(176) %4938)
          to label %4939 unwind label %4951

4939:                                             ; preds = %4937
  call void @llvm.lifetime.start.p0(i64 1, ptr %382) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %381, ptr noundef nonnull align 1 dereferenceable(1) %382) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %380, i32 noundef 0, ptr noundef %381)
          to label %4940 unwind label %4955

4940:                                             ; preds = %4939
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %380) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %380) #8
  %4941 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %4941, ptr noundef @.str.7)
          to label %4942 unwind label %4960

4942:                                             ; preds = %4940
  invoke void @__cxa_throw(ptr %4941, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %4947

4943:                                             ; preds = %4927
  %4944 = landingpad { ptr, i32 }
          cleanup
  %4945 = extractvalue { ptr, i32 } %4944, 0
  store ptr %4945, ptr %14, align 8
  %4946 = extractvalue { ptr, i32 } %4944, 1
  store i32 %4946, ptr %15, align 4
  br label %5911

4947:                                             ; preds = %5889, %5249, %5215, %5212, %5196, %5187, %5185, %5147, %5145, %5143, %5141, %5139, %5137, %5134, %5131, %5116, %5079, %5077, %5075, %5073, %5071, %5069, %5066, %5063, %4942, %4928
  %4948 = landingpad { ptr, i32 }
          cleanup
  %4949 = extractvalue { ptr, i32 } %4948, 0
  store ptr %4949, ptr %14, align 8
  %4950 = extractvalue { ptr, i32 } %4948, 1
  store i32 %4950, ptr %15, align 4
  br label %5910

4951:                                             ; preds = %4937
  %4952 = landingpad { ptr, i32 }
          cleanup
  %4953 = extractvalue { ptr, i32 } %4952, 0
  store ptr %4953, ptr %14, align 8
  %4954 = extractvalue { ptr, i32 } %4952, 1
  store i32 %4954, ptr %15, align 4
  br label %4959

4955:                                             ; preds = %4939
  %4956 = landingpad { ptr, i32 }
          cleanup
  %4957 = extractvalue { ptr, i32 } %4956, 0
  store ptr %4957, ptr %14, align 8
  %4958 = extractvalue { ptr, i32 } %4956, 1
  store i32 %4958, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %381) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %382) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %380) #8
  br label %4959

4959:                                             ; preds = %4955, %4951
  call void @llvm.lifetime.end.p0(i64 8, ptr %380) #8
  br label %5910

4960:                                             ; preds = %4940
  %4961 = landingpad { ptr, i32 }
          cleanup
  %4962 = extractvalue { ptr, i32 } %4961, 0
  store ptr %4962, ptr %14, align 8
  %4963 = extractvalue { ptr, i32 } %4961, 1
  store i32 %4963, ptr %15, align 4
  call void @__cxa_free_exception(ptr %4941) #8
  br label %5910

4964:                                             ; No predecessors!
  br label %4965

4965:                                             ; preds = %4964
  br label %4966

4966:                                             ; preds = %4965, %4933
  call void @llvm.lifetime.start.p0(i64 32, ptr %383) #8
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %383, ptr noundef @.str.29)
          to label %4967 unwind label %4969

4967:                                             ; preds = %4966
  %4968 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %383) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %383) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %383) #8
  br label %5062

4969:                                             ; preds = %4966
  %4970 = landingpad { ptr, i32 }
          cleanup
  %4971 = extractvalue { ptr, i32 } %4970, 0
  store ptr %4971, ptr %14, align 8
  %4972 = extractvalue { ptr, i32 } %4970, 1
  store i32 %4972, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %383) #8
  br label %5910

4973:                                             ; preds = %4932
  %4974 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  %4975 = icmp ugt i64 %4974, 0
  br i1 %4975, label %4976, label %4998

4976:                                             ; preds = %4973
  call void @llvm.lifetime.start.p0(i64 32, ptr %384) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %385) #8
  %4977 = load ptr, ptr %8, align 8, !tbaa !5
  %4978 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %4977, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %386, ptr noundef nonnull align 8 dereferenceable(32) %4978)
          to label %4979 unwind label %4984

4979:                                             ; preds = %4976
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %385, ptr noundef %386)
          to label %4980 unwind label %4988

4980:                                             ; preds = %4979
  %4981 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %384, ptr noundef nonnull align 8 dereferenceable(32) %385, ptr noundef %4981)
          to label %4982 unwind label %4992

4982:                                             ; preds = %4980
  %4983 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %384) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %384) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #8
  br label %5061

4984:                                             ; preds = %4976
  %4985 = landingpad { ptr, i32 }
          cleanup
  %4986 = extractvalue { ptr, i32 } %4985, 0
  store ptr %4986, ptr %14, align 8
  %4987 = extractvalue { ptr, i32 } %4985, 1
  store i32 %4987, ptr %15, align 4
  br label %4997

4988:                                             ; preds = %4979
  %4989 = landingpad { ptr, i32 }
          cleanup
  %4990 = extractvalue { ptr, i32 } %4989, 0
  store ptr %4990, ptr %14, align 8
  %4991 = extractvalue { ptr, i32 } %4989, 1
  store i32 %4991, ptr %15, align 4
  br label %4996

4992:                                             ; preds = %4980
  %4993 = landingpad { ptr, i32 }
          cleanup
  %4994 = extractvalue { ptr, i32 } %4993, 0
  store ptr %4994, ptr %14, align 8
  %4995 = extractvalue { ptr, i32 } %4993, 1
  store i32 %4995, ptr %15, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %385) #8
  br label %4996

4996:                                             ; preds = %4992, %4988
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %386) #8
  br label %4997

4997:                                             ; preds = %4996, %4984
  call void @llvm.lifetime.end.p0(i64 32, ptr %385) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %384) #8
  br label %5910

4998:                                             ; preds = %4973
  %4999 = load ptr, ptr %8, align 8, !tbaa !5
  %5000 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %4999, i32 0, i32 0
  %5001 = load i8, ptr %5000, align 8, !tbaa !44, !range !21, !noundef !22
  %5002 = trunc i8 %5001 to i1
  br i1 %5002, label %5003, label %5026

5003:                                             ; preds = %4998
  call void @llvm.lifetime.start.p0(i64 32, ptr %387) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %388) #8
  %5004 = load ptr, ptr %8, align 8, !tbaa !5
  %5005 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5004, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %389, ptr noundef nonnull align 8 dereferenceable(32) %5005)
          to label %5006 unwind label %5012

5006:                                             ; preds = %5003
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %388, ptr noundef %389)
          to label %5007 unwind label %5016

5007:                                             ; preds = %5006
  %5008 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5009 unwind label %5020

5009:                                             ; preds = %5007
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %387, ptr noundef nonnull align 8 dereferenceable(32) %388, ptr noundef %5008)
          to label %5010 unwind label %5020

5010:                                             ; preds = %5009
  %5011 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %387) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %387) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #8
  br label %5060

5012:                                             ; preds = %5003
  %5013 = landingpad { ptr, i32 }
          cleanup
  %5014 = extractvalue { ptr, i32 } %5013, 0
  store ptr %5014, ptr %14, align 8
  %5015 = extractvalue { ptr, i32 } %5013, 1
  store i32 %5015, ptr %15, align 4
  br label %5025

5016:                                             ; preds = %5006
  %5017 = landingpad { ptr, i32 }
          cleanup
  %5018 = extractvalue { ptr, i32 } %5017, 0
  store ptr %5018, ptr %14, align 8
  %5019 = extractvalue { ptr, i32 } %5017, 1
  store i32 %5019, ptr %15, align 4
  br label %5024

5020:                                             ; preds = %5009, %5007
  %5021 = landingpad { ptr, i32 }
          cleanup
  %5022 = extractvalue { ptr, i32 } %5021, 0
  store ptr %5022, ptr %14, align 8
  %5023 = extractvalue { ptr, i32 } %5021, 1
  store i32 %5023, ptr %15, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %388) #8
  br label %5024

5024:                                             ; preds = %5020, %5016
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %389) #8
  br label %5025

5025:                                             ; preds = %5024, %5012
  call void @llvm.lifetime.end.p0(i64 32, ptr %388) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %387) #8
  br label %5910

5026:                                             ; preds = %4998
  call void @llvm.lifetime.start.p0(i64 32, ptr %390) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %391) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %392) #8
  %5027 = load ptr, ptr %8, align 8, !tbaa !5
  %5028 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5027, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %393, ptr noundef nonnull align 8 dereferenceable(32) %5028)
          to label %5029 unwind label %5041

5029:                                             ; preds = %5026
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %392, ptr noundef %393)
          to label %5030 unwind label %5045

5030:                                             ; preds = %5029
  %5031 = load ptr, ptr %9, align 8, !tbaa !5
  %5032 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %5031, i32 0, i32 1
  %5033 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %5032) #8
  %5034 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %5033)
          to label %5035 unwind label %5049

5035:                                             ; preds = %5030
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %391, ptr noundef nonnull align 8 dereferenceable(32) %392, ptr noundef %5034)
          to label %5036 unwind label %5049

5036:                                             ; preds = %5035
  %5037 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5038 unwind label %5053

5038:                                             ; preds = %5036
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %390, ptr noundef nonnull align 8 dereferenceable(32) %391, ptr noundef %5037)
          to label %5039 unwind label %5053

5039:                                             ; preds = %5038
  %5040 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef nonnull align 8 dereferenceable(32) %390) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %390) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %392) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %390) #8
  store i8 0, ptr %379, align 1, !tbaa !19
  br label %5060

5041:                                             ; preds = %5026
  %5042 = landingpad { ptr, i32 }
          cleanup
  %5043 = extractvalue { ptr, i32 } %5042, 0
  store ptr %5043, ptr %14, align 8
  %5044 = extractvalue { ptr, i32 } %5042, 1
  store i32 %5044, ptr %15, align 4
  br label %5059

5045:                                             ; preds = %5029
  %5046 = landingpad { ptr, i32 }
          cleanup
  %5047 = extractvalue { ptr, i32 } %5046, 0
  store ptr %5047, ptr %14, align 8
  %5048 = extractvalue { ptr, i32 } %5046, 1
  store i32 %5048, ptr %15, align 4
  br label %5058

5049:                                             ; preds = %5035, %5030
  %5050 = landingpad { ptr, i32 }
          cleanup
  %5051 = extractvalue { ptr, i32 } %5050, 0
  store ptr %5051, ptr %14, align 8
  %5052 = extractvalue { ptr, i32 } %5050, 1
  store i32 %5052, ptr %15, align 4
  br label %5057

5053:                                             ; preds = %5038, %5036
  %5054 = landingpad { ptr, i32 }
          cleanup
  %5055 = extractvalue { ptr, i32 } %5054, 0
  store ptr %5055, ptr %14, align 8
  %5056 = extractvalue { ptr, i32 } %5054, 1
  store i32 %5056, ptr %15, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %391) #8
  br label %5057

5057:                                             ; preds = %5053, %5049
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %392) #8
  br label %5058

5058:                                             ; preds = %5057, %5045
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %393) #8
  br label %5059

5059:                                             ; preds = %5058, %5041
  call void @llvm.lifetime.end.p0(i64 32, ptr %392) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %391) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %390) #8
  br label %5910

5060:                                             ; preds = %5039, %5010
  br label %5061

5061:                                             ; preds = %5060, %4982
  br label %5062

5062:                                             ; preds = %5061, %4967
  br label %5063

5063:                                             ; preds = %5062
  %5064 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5065 unwind label %4947

5065:                                             ; preds = %5063
  br i1 %5064, label %5066, label %5082

5066:                                             ; preds = %5065
  %5067 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5068 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5067, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5069 unwind label %4947

5069:                                             ; preds = %5066
  %5070 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5068, ptr noundef @.str.30)
          to label %5071 unwind label %4947

5071:                                             ; preds = %5069
  %5072 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %5070, ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5073 unwind label %4947

5073:                                             ; preds = %5071
  %5074 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5072, ptr noundef @.str.31)
          to label %5075 unwind label %4947

5075:                                             ; preds = %5073
  %5076 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN7helperslsERSoRKNS_4pathE(ptr noundef nonnull align 8 dereferenceable(8) %5074, ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %5077 unwind label %4947

5077:                                             ; preds = %5075
  %5078 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5076, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5079 unwind label %4947

5079:                                             ; preds = %5077
  %5080 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5078, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5081 unwind label %4947

5081:                                             ; preds = %5079
  br label %5082

5082:                                             ; preds = %5081, %5065
  br label %5083

5083:                                             ; preds = %5082
  br label %5084

5084:                                             ; preds = %5083
  call void @llvm.lifetime.start.p0(i64 32, ptr %394) #8
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %394, ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %5085 unwind label %5100

5085:                                             ; preds = %5084
  %5086 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5087 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5086, i32 0, i32 2
  %5088 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5087, ptr noundef nonnull align 8 dereferenceable(32) %394) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %394) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #8
  %5089 = load i8, ptr %379, align 1, !tbaa !19, !range !21, !noundef !22
  %5090 = trunc i8 %5089 to i1
  %5091 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5092 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5091, i32 0, i32 0
  %5093 = zext i1 %5090 to i8
  store i8 %5093, ptr %5092, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 88, ptr %395) #8
  %5094 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %395, ptr noundef nonnull align 8 dereferenceable(176) %5094)
          to label %5095 unwind label %5104

5095:                                             ; preds = %5085
  %5096 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %395)
          to label %5097 unwind label %5108

5097:                                             ; preds = %5095
  %5098 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %5096)
          to label %5099 unwind label %5108

5099:                                             ; preds = %5097
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %395) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %395) #8
  switch i32 %5098, label %5873 [
    i32 25, label %5113
    i32 32, label %5185
  ]

5100:                                             ; preds = %5084
  %5101 = landingpad { ptr, i32 }
          cleanup
  %5102 = extractvalue { ptr, i32 } %5101, 0
  store ptr %5102, ptr %14, align 8
  %5103 = extractvalue { ptr, i32 } %5101, 1
  store i32 %5103, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %394) #8
  br label %5910

5104:                                             ; preds = %5085
  %5105 = landingpad { ptr, i32 }
          cleanup
  %5106 = extractvalue { ptr, i32 } %5105, 0
  store ptr %5106, ptr %14, align 8
  %5107 = extractvalue { ptr, i32 } %5105, 1
  store i32 %5107, ptr %15, align 4
  br label %5112

5108:                                             ; preds = %5097, %5095
  %5109 = landingpad { ptr, i32 }
          cleanup
  %5110 = extractvalue { ptr, i32 } %5109, 0
  store ptr %5110, ptr %14, align 8
  %5111 = extractvalue { ptr, i32 } %5109, 1
  store i32 %5111, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %395) #8
  br label %5112

5112:                                             ; preds = %5108, %5104
  call void @llvm.lifetime.end.p0(i64 88, ptr %395) #8
  br label %5910

5113:                                             ; preds = %5099
  call void @llvm.lifetime.start.p0(i64 32, ptr %396) #8
  %5114 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %5115 unwind label %5150

5115:                                             ; preds = %5113
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %396, ptr noundef nonnull align 8 dereferenceable(32) %5114, ptr noundef @.str.32)
          to label %5116 unwind label %5150

5116:                                             ; preds = %5115
  %5117 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5118 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5117, i32 0, i32 2
  %5119 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5118, ptr noundef nonnull align 8 dereferenceable(32) %396) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %396) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %396) #8
  %5120 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176) %5120, ptr noundef nonnull align 8 dereferenceable(480) %363, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %5121 unwind label %4947

5121:                                             ; preds = %5116
  br label %5122

5122:                                             ; preds = %5121
  call void @llvm.lifetime.start.p0(i64 88, ptr %397) #8
  %5123 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %397, ptr noundef nonnull align 8 dereferenceable(176) %5123)
          to label %5124 unwind label %5154

5124:                                             ; preds = %5122
  %5125 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %397)
          to label %5126 unwind label %5158

5126:                                             ; preds = %5124
  %5127 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %5125)
          to label %5128 unwind label %5158

5128:                                             ; preds = %5126
  %5129 = icmp ne i32 %5127, 26
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %397) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %397) #8
  br i1 %5129, label %5130, label %5182

5130:                                             ; preds = %5128
  br label %5131

5131:                                             ; preds = %5130
  %5132 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5133 unwind label %4947

5133:                                             ; preds = %5131
  br i1 %5132, label %5134, label %5163

5134:                                             ; preds = %5133
  %5135 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5135, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5137 unwind label %4947

5137:                                             ; preds = %5134
  %5138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5136, ptr noundef @.str.1)
          to label %5139 unwind label %4947

5139:                                             ; preds = %5137
  %5140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5138, ptr noundef @.str.2)
          to label %5141 unwind label %4947

5141:                                             ; preds = %5139
  %5142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5140, ptr noundef @.str.3)
          to label %5143 unwind label %4947

5143:                                             ; preds = %5141
  %5144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %5142, i32 noundef 2278)
          to label %5145 unwind label %4947

5145:                                             ; preds = %5143
  %5146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5144, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5147 unwind label %4947

5147:                                             ; preds = %5145
  %5148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5146, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5149 unwind label %4947

5149:                                             ; preds = %5147
  br label %5163

5150:                                             ; preds = %5115, %5113
  %5151 = landingpad { ptr, i32 }
          cleanup
  %5152 = extractvalue { ptr, i32 } %5151, 0
  store ptr %5152, ptr %14, align 8
  %5153 = extractvalue { ptr, i32 } %5151, 1
  store i32 %5153, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %396) #8
  br label %5910

5154:                                             ; preds = %5122
  %5155 = landingpad { ptr, i32 }
          cleanup
  %5156 = extractvalue { ptr, i32 } %5155, 0
  store ptr %5156, ptr %14, align 8
  %5157 = extractvalue { ptr, i32 } %5155, 1
  store i32 %5157, ptr %15, align 4
  br label %5162

5158:                                             ; preds = %5126, %5124
  %5159 = landingpad { ptr, i32 }
          cleanup
  %5160 = extractvalue { ptr, i32 } %5159, 0
  store ptr %5160, ptr %14, align 8
  %5161 = extractvalue { ptr, i32 } %5159, 1
  store i32 %5161, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %397) #8
  br label %5162

5162:                                             ; preds = %5158, %5154
  call void @llvm.lifetime.end.p0(i64 88, ptr %397) #8
  br label %5910

5163:                                             ; preds = %5149, %5133
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164
  store i1 true, ptr %399, align 1
  %5166 = call ptr @__cxa_allocate_exception(i64 96) #8
  %5167 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %398, i32 noundef 26)
          to label %5168 unwind label %5170

5168:                                             ; preds = %5165
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %5166, ptr noundef nonnull align 8 dereferenceable(176) %5167, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %398)
          to label %5169 unwind label %5174

5169:                                             ; preds = %5168
  store i1 false, ptr %399, align 1
  invoke void @__cxa_throw(ptr %5166, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %5174

5170:                                             ; preds = %5165
  %5171 = landingpad { ptr, i32 }
          cleanup
  %5172 = extractvalue { ptr, i32 } %5171, 0
  store ptr %5172, ptr %14, align 8
  %5173 = extractvalue { ptr, i32 } %5171, 1
  store i32 %5173, ptr %15, align 4
  br label %5178

5174:                                             ; preds = %5169, %5168
  %5175 = landingpad { ptr, i32 }
          cleanup
  %5176 = extractvalue { ptr, i32 } %5175, 0
  store ptr %5176, ptr %14, align 8
  %5177 = extractvalue { ptr, i32 } %5175, 1
  store i32 %5177, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %398) #8
  br label %5178

5178:                                             ; preds = %5174, %5170
  %5179 = load i1, ptr %399, align 1
  br i1 %5179, label %5180, label %5181

5180:                                             ; preds = %5178
  call void @__cxa_free_exception(ptr %5166) #8
  br label %5181

5181:                                             ; preds = %5180, %5178
  br label %5910

5182:                                             ; preds = %5128
  br label %5183

5183:                                             ; preds = %5182
  br label %5184

5184:                                             ; preds = %5183
  br label %5889

5185:                                             ; preds = %5099
  %5186 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %5187 unwind label %4947

5187:                                             ; preds = %5185
  %5188 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %5186, ptr noundef @.str.29)
          to label %5189 unwind label %4947

5189:                                             ; preds = %5187
  br i1 %5188, label %5190, label %5212

5190:                                             ; preds = %5189
  br label %5191

5191:                                             ; preds = %5190
  call void @llvm.lifetime.start.p0(i64 8, ptr %400) #8
  %5192 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %400, ptr noundef nonnull align 8 dereferenceable(176) %5192)
          to label %5193 unwind label %5197

5193:                                             ; preds = %5191
  call void @llvm.lifetime.start.p0(i64 1, ptr %402) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %401, ptr noundef nonnull align 1 dereferenceable(1) %402) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %400, i32 noundef 0, ptr noundef %401)
          to label %5194 unwind label %5201

5194:                                             ; preds = %5193
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %400) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #8
  %5195 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5195, ptr noundef @.str.7)
          to label %5196 unwind label %5206

5196:                                             ; preds = %5194
  invoke void @__cxa_throw(ptr %5195, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %4947

5197:                                             ; preds = %5191
  %5198 = landingpad { ptr, i32 }
          cleanup
  %5199 = extractvalue { ptr, i32 } %5198, 0
  store ptr %5199, ptr %14, align 8
  %5200 = extractvalue { ptr, i32 } %5198, 1
  store i32 %5200, ptr %15, align 4
  br label %5205

5201:                                             ; preds = %5193
  %5202 = landingpad { ptr, i32 }
          cleanup
  %5203 = extractvalue { ptr, i32 } %5202, 0
  store ptr %5203, ptr %14, align 8
  %5204 = extractvalue { ptr, i32 } %5202, 1
  store i32 %5204, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %401) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %402) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %400) #8
  br label %5205

5205:                                             ; preds = %5201, %5197
  call void @llvm.lifetime.end.p0(i64 8, ptr %400) #8
  br label %5910

5206:                                             ; preds = %5194
  %5207 = landingpad { ptr, i32 }
          cleanup
  %5208 = extractvalue { ptr, i32 } %5207, 0
  store ptr %5208, ptr %14, align 8
  %5209 = extractvalue { ptr, i32 } %5207, 1
  store i32 %5209, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5195) #8
  br label %5910

5210:                                             ; No predecessors!
  br label %5211

5211:                                             ; preds = %5210
  br label %5872

5212:                                             ; preds = %5189
  %5213 = invoke noundef zeroext i1 @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H14check_item_cfgE_0RKS9_(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %5214 unwind label %4947

5214:                                             ; preds = %5212
  br i1 %5213, label %5230, label %5215

5215:                                             ; preds = %5214
  %5216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5217 unwind label %4947

5217:                                             ; preds = %5215
  call void @llvm.lifetime.start.p0(i64 488, ptr %403) #8
  invoke void @_ZN3AST4ItemC2Ev(ptr noundef nonnull align 8 dereferenceable(488) %403)
          to label %5218 unwind label %5221

5218:                                             ; preds = %5217
  %5219 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %403)
          to label %5220 unwind label %5225

5220:                                             ; preds = %5218
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %403) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %403) #8
  br label %5889

5221:                                             ; preds = %5217
  %5222 = landingpad { ptr, i32 }
          cleanup
  %5223 = extractvalue { ptr, i32 } %5222, 0
  store ptr %5223, ptr %14, align 8
  %5224 = extractvalue { ptr, i32 } %5222, 1
  store i32 %5224, ptr %15, align 4
  br label %5229

5225:                                             ; preds = %5218
  %5226 = landingpad { ptr, i32 }
          cleanup
  %5227 = extractvalue { ptr, i32 } %5226, 0
  store ptr %5227, ptr %14, align 8
  %5228 = extractvalue { ptr, i32 } %5226, 1
  store i32 %5228, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %403) #8
  br label %5229

5229:                                             ; preds = %5225, %5221
  call void @llvm.lifetime.end.p0(i64 488, ptr %403) #8
  br label %5910

5230:                                             ; preds = %5214
  %5231 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  %5232 = icmp eq i64 %5231, 0
  br i1 %5232, label %5233, label %5613

5233:                                             ; preds = %5230
  %5234 = load ptr, ptr %8, align 8, !tbaa !5
  %5235 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5234, i32 0, i32 0
  %5236 = load i8, ptr %5235, align 8, !tbaa !44, !range !21, !noundef !22
  %5237 = trunc i8 %5236 to i1
  br i1 %5237, label %5613, label %5238

5238:                                             ; preds = %5233
  br label %5239

5239:                                             ; preds = %5238
  %5240 = load ptr, ptr %9, align 8, !tbaa !5
  %5241 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %5240, i32 0, i32 1
  %5242 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5241) #8
  %5243 = icmp uge i64 %5242, 1
  br i1 %5243, label %5263, label %5244

5244:                                             ; preds = %5239
  call void @llvm.lifetime.start.p0(i64 8, ptr %404) #8
  %5245 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %404, ptr noundef nonnull align 8 dereferenceable(176) %5245)
          to label %5246 unwind label %5250

5246:                                             ; preds = %5244
  call void @llvm.lifetime.start.p0(i64 1, ptr %406) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %405, ptr noundef nonnull align 1 dereferenceable(1) %406) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %404, ptr noundef %405)
          to label %5247 unwind label %5254

5247:                                             ; preds = %5246
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %404) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #8
  %5248 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5248, ptr noundef @.str.16)
          to label %5249 unwind label %5259

5249:                                             ; preds = %5247
  invoke void @__cxa_throw(ptr %5248, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %4947

5250:                                             ; preds = %5244
  %5251 = landingpad { ptr, i32 }
          cleanup
  %5252 = extractvalue { ptr, i32 } %5251, 0
  store ptr %5252, ptr %14, align 8
  %5253 = extractvalue { ptr, i32 } %5251, 1
  store i32 %5253, ptr %15, align 4
  br label %5258

5254:                                             ; preds = %5246
  %5255 = landingpad { ptr, i32 }
          cleanup
  %5256 = extractvalue { ptr, i32 } %5255, 0
  store ptr %5256, ptr %14, align 8
  %5257 = extractvalue { ptr, i32 } %5255, 1
  store i32 %5257, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %405) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %406) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %404) #8
  br label %5258

5258:                                             ; preds = %5254, %5250
  call void @llvm.lifetime.end.p0(i64 8, ptr %404) #8
  br label %5910

5259:                                             ; preds = %5247
  %5260 = landingpad { ptr, i32 }
          cleanup
  %5261 = extractvalue { ptr, i32 } %5260, 0
  store ptr %5261, ptr %14, align 8
  %5262 = extractvalue { ptr, i32 } %5260, 1
  store i32 %5262, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5248) #8
  br label %5910

5263:                                             ; preds = %5239
  br label %5264

5264:                                             ; preds = %5263
  br label %5265

5265:                                             ; preds = %5264
  call void @llvm.lifetime.start.p0(i64 32, ptr %407) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %408) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %409) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %410) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %411) #8
  %5266 = load ptr, ptr %8, align 8, !tbaa !5
  %5267 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5266, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %412, ptr noundef nonnull align 8 dereferenceable(32) %5267)
          to label %5268 unwind label %5316

5268:                                             ; preds = %5265
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %411, ptr noundef %412)
          to label %5269 unwind label %5320

5269:                                             ; preds = %5268
  %5270 = load ptr, ptr %9, align 8, !tbaa !5
  %5271 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %5270, i32 0, i32 1
  %5272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %5271) #8
  %5273 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %5272)
          to label %5274 unwind label %5324

5274:                                             ; preds = %5269
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %410, ptr noundef nonnull align 8 dereferenceable(32) %411, ptr noundef %5273)
          to label %5275 unwind label %5324

5275:                                             ; preds = %5274
  %5276 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5277 unwind label %5328

5277:                                             ; preds = %5275
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %409, ptr noundef nonnull align 8 dereferenceable(32) %410, ptr noundef %5276)
          to label %5278 unwind label %5328

5278:                                             ; preds = %5277
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %408, ptr noundef nonnull align 8 dereferenceable(32) %409, ptr noundef @.str.33)
          to label %5279 unwind label %5332

5279:                                             ; preds = %5278
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %407, ptr noundef nonnull align 8 dereferenceable(32) %408)
          to label %5280 unwind label %5336

5280:                                             ; preds = %5279
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %410) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %413) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %414) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %415) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %416) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %417) #8
  %5281 = load ptr, ptr %8, align 8, !tbaa !5
  %5282 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5281, i32 0, i32 2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %418, ptr noundef nonnull align 8 dereferenceable(32) %5282)
          to label %5283 unwind label %5345

5283:                                             ; preds = %5280
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %417, ptr noundef %418)
          to label %5284 unwind label %5349

5284:                                             ; preds = %5283
  %5285 = load ptr, ptr %9, align 8, !tbaa !5
  %5286 = getelementptr inbounds %"struct.AST::AbsolutePath", ptr %5285, i32 0, i32 1
  %5287 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %5286) #8
  %5288 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %5287)
          to label %5289 unwind label %5353

5289:                                             ; preds = %5284
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %416, ptr noundef nonnull align 8 dereferenceable(32) %417, ptr noundef %5288)
          to label %5290 unwind label %5353

5290:                                             ; preds = %5289
  %5291 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5292 unwind label %5357

5292:                                             ; preds = %5290
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %415, ptr noundef nonnull align 8 dereferenceable(32) %416, ptr noundef %5291)
          to label %5293 unwind label %5357

5293:                                             ; preds = %5292
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %414, ptr noundef nonnull align 8 dereferenceable(32) %415, ptr noundef @.str.34)
          to label %5294 unwind label %5361

5294:                                             ; preds = %5293
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %413, ptr noundef nonnull align 8 dereferenceable(32) %414)
          to label %5295 unwind label %5365

5295:                                             ; preds = %5294
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %416) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %418) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %416) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %414) #8
  br label %5296

5296:                                             ; preds = %5295
  %5297 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5298 unwind label %5374

5298:                                             ; preds = %5296
  br i1 %5297, label %5299, label %5378

5299:                                             ; preds = %5298
  %5300 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5300, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5302 unwind label %5374

5302:                                             ; preds = %5299
  %5303 = load ptr, ptr %8, align 8, !tbaa !5
  %5304 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5303, i32 0, i32 2
  %5305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5301, ptr noundef nonnull align 8 dereferenceable(32) %5304)
          to label %5306 unwind label %5374

5306:                                             ; preds = %5302
  %5307 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5305, ptr noundef @.str.14)
          to label %5308 unwind label %5374

5308:                                             ; preds = %5306
  %5309 = load ptr, ptr %9, align 8, !tbaa !5
  %5310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %5307, ptr noundef nonnull align 8 dereferenceable(32) %5309)
          to label %5311 unwind label %5374

5311:                                             ; preds = %5308
  %5312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5310, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5313 unwind label %5374

5313:                                             ; preds = %5311
  %5314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5312, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5315 unwind label %5374

5315:                                             ; preds = %5313
  br label %5378

5316:                                             ; preds = %5265
  %5317 = landingpad { ptr, i32 }
          cleanup
  %5318 = extractvalue { ptr, i32 } %5317, 0
  store ptr %5318, ptr %14, align 8
  %5319 = extractvalue { ptr, i32 } %5317, 1
  store i32 %5319, ptr %15, align 4
  br label %5344

5320:                                             ; preds = %5268
  %5321 = landingpad { ptr, i32 }
          cleanup
  %5322 = extractvalue { ptr, i32 } %5321, 0
  store ptr %5322, ptr %14, align 8
  %5323 = extractvalue { ptr, i32 } %5321, 1
  store i32 %5323, ptr %15, align 4
  br label %5343

5324:                                             ; preds = %5274, %5269
  %5325 = landingpad { ptr, i32 }
          cleanup
  %5326 = extractvalue { ptr, i32 } %5325, 0
  store ptr %5326, ptr %14, align 8
  %5327 = extractvalue { ptr, i32 } %5325, 1
  store i32 %5327, ptr %15, align 4
  br label %5342

5328:                                             ; preds = %5277, %5275
  %5329 = landingpad { ptr, i32 }
          cleanup
  %5330 = extractvalue { ptr, i32 } %5329, 0
  store ptr %5330, ptr %14, align 8
  %5331 = extractvalue { ptr, i32 } %5329, 1
  store i32 %5331, ptr %15, align 4
  br label %5341

5332:                                             ; preds = %5278
  %5333 = landingpad { ptr, i32 }
          cleanup
  %5334 = extractvalue { ptr, i32 } %5333, 0
  store ptr %5334, ptr %14, align 8
  %5335 = extractvalue { ptr, i32 } %5333, 1
  store i32 %5335, ptr %15, align 4
  br label %5340

5336:                                             ; preds = %5279
  %5337 = landingpad { ptr, i32 }
          cleanup
  %5338 = extractvalue { ptr, i32 } %5337, 0
  store ptr %5338, ptr %14, align 8
  %5339 = extractvalue { ptr, i32 } %5337, 1
  store i32 %5339, ptr %15, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %408) #8
  br label %5340

5340:                                             ; preds = %5336, %5332
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %409) #8
  br label %5341

5341:                                             ; preds = %5340, %5328
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %410) #8
  br label %5342

5342:                                             ; preds = %5341, %5324
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %411) #8
  br label %5343

5343:                                             ; preds = %5342, %5320
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %412) #8
  br label %5344

5344:                                             ; preds = %5343, %5316
  call void @llvm.lifetime.end.p0(i64 32, ptr %411) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %410) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %409) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %408) #8
  br label %5612

5345:                                             ; preds = %5280
  %5346 = landingpad { ptr, i32 }
          cleanup
  %5347 = extractvalue { ptr, i32 } %5346, 0
  store ptr %5347, ptr %14, align 8
  %5348 = extractvalue { ptr, i32 } %5346, 1
  store i32 %5348, ptr %15, align 4
  br label %5373

5349:                                             ; preds = %5283
  %5350 = landingpad { ptr, i32 }
          cleanup
  %5351 = extractvalue { ptr, i32 } %5350, 0
  store ptr %5351, ptr %14, align 8
  %5352 = extractvalue { ptr, i32 } %5350, 1
  store i32 %5352, ptr %15, align 4
  br label %5372

5353:                                             ; preds = %5289, %5284
  %5354 = landingpad { ptr, i32 }
          cleanup
  %5355 = extractvalue { ptr, i32 } %5354, 0
  store ptr %5355, ptr %14, align 8
  %5356 = extractvalue { ptr, i32 } %5354, 1
  store i32 %5356, ptr %15, align 4
  br label %5371

5357:                                             ; preds = %5292, %5290
  %5358 = landingpad { ptr, i32 }
          cleanup
  %5359 = extractvalue { ptr, i32 } %5358, 0
  store ptr %5359, ptr %14, align 8
  %5360 = extractvalue { ptr, i32 } %5358, 1
  store i32 %5360, ptr %15, align 4
  br label %5370

5361:                                             ; preds = %5293
  %5362 = landingpad { ptr, i32 }
          cleanup
  %5363 = extractvalue { ptr, i32 } %5362, 0
  store ptr %5363, ptr %14, align 8
  %5364 = extractvalue { ptr, i32 } %5362, 1
  store i32 %5364, ptr %15, align 4
  br label %5369

5365:                                             ; preds = %5294
  %5366 = landingpad { ptr, i32 }
          cleanup
  %5367 = extractvalue { ptr, i32 } %5366, 0
  store ptr %5367, ptr %14, align 8
  %5368 = extractvalue { ptr, i32 } %5366, 1
  store i32 %5368, ptr %15, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %414) #8
  br label %5369

5369:                                             ; preds = %5365, %5361
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %415) #8
  br label %5370

5370:                                             ; preds = %5369, %5357
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %416) #8
  br label %5371

5371:                                             ; preds = %5370, %5353
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %417) #8
  br label %5372

5372:                                             ; preds = %5371, %5349
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %418) #8
  br label %5373

5373:                                             ; preds = %5372, %5345
  call void @llvm.lifetime.end.p0(i64 32, ptr %417) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %416) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %415) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %414) #8
  br label %5611

5374:                                             ; preds = %5415, %5413, %5411, %5409, %5407, %5404, %5401, %5395, %5393, %5391, %5389, %5387, %5384, %5381, %5313, %5311, %5308, %5306, %5302, %5299, %5296
  %5375 = landingpad { ptr, i32 }
          cleanup
  %5376 = extractvalue { ptr, i32 } %5375, 0
  store ptr %5376, ptr %14, align 8
  %5377 = extractvalue { ptr, i32 } %5375, 1
  store i32 %5377, ptr %15, align 4
  br label %5610

5378:                                             ; preds = %5315, %5298
  br label %5379

5379:                                             ; preds = %5378
  br label %5380

5380:                                             ; preds = %5379
  br label %5381

5381:                                             ; preds = %5380
  %5382 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5383 unwind label %5374

5383:                                             ; preds = %5381
  br i1 %5382, label %5384, label %5398

5384:                                             ; preds = %5383
  %5385 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5386 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5385, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5387 unwind label %5374

5387:                                             ; preds = %5384
  %5388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5386, ptr noundef @.str.35)
          to label %5389 unwind label %5374

5389:                                             ; preds = %5387
  %5390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5388, ptr noundef nonnull align 8 dereferenceable(32) %407)
          to label %5391 unwind label %5374

5391:                                             ; preds = %5389
  %5392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5390, ptr noundef @.str.26)
          to label %5393 unwind label %5374

5393:                                             ; preds = %5391
  %5394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5392, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5395 unwind label %5374

5395:                                             ; preds = %5393
  %5396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5394, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5397 unwind label %5374

5397:                                             ; preds = %5395
  br label %5398

5398:                                             ; preds = %5397, %5383
  br label %5399

5399:                                             ; preds = %5398
  br label %5400

5400:                                             ; preds = %5399
  br label %5401

5401:                                             ; preds = %5400
  %5402 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5403 unwind label %5374

5403:                                             ; preds = %5401
  br i1 %5402, label %5404, label %5418

5404:                                             ; preds = %5403
  %5405 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5405, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5407 unwind label %5374

5407:                                             ; preds = %5404
  %5408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5406, ptr noundef @.str.36)
          to label %5409 unwind label %5374

5409:                                             ; preds = %5407
  %5410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5408, ptr noundef nonnull align 8 dereferenceable(32) %413)
          to label %5411 unwind label %5374

5411:                                             ; preds = %5409
  %5412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5410, ptr noundef @.str.26)
          to label %5413 unwind label %5374

5413:                                             ; preds = %5411
  %5414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5412, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5415 unwind label %5374

5415:                                             ; preds = %5413
  %5416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5414, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5417 unwind label %5374

5417:                                             ; preds = %5415
  br label %5418

5418:                                             ; preds = %5417, %5403
  br label %5419

5419:                                             ; preds = %5418
  br label %5420

5420:                                             ; preds = %5419
  call void @llvm.lifetime.start.p0(i64 520, ptr %419) #8
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %419, ptr noundef nonnull align 8 dereferenceable(32) %407, i32 noundef 8)
          to label %5421 unwind label %5435

5421:                                             ; preds = %5420
  call void @llvm.lifetime.start.p0(i64 520, ptr %420) #8
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %420, ptr noundef nonnull align 8 dereferenceable(32) %413, i32 noundef 8)
          to label %5422 unwind label %5439

5422:                                             ; preds = %5421
  %5423 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %420)
          to label %5424 unwind label %5443

5424:                                             ; preds = %5422
  br i1 %5423, label %5425, label %5462

5425:                                             ; preds = %5424
  %5426 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %419)
          to label %5427 unwind label %5443

5427:                                             ; preds = %5425
  br i1 %5426, label %5428, label %5462

5428:                                             ; preds = %5427
  br label %5429

5429:                                             ; preds = %5428
  call void @llvm.lifetime.start.p0(i64 8, ptr %421) #8
  %5430 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %421, ptr noundef nonnull align 8 dereferenceable(176) %5430)
          to label %5431 unwind label %5447

5431:                                             ; preds = %5429
  call void @llvm.lifetime.start.p0(i64 1, ptr %423) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %422, ptr noundef nonnull align 1 dereferenceable(1) %423) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %421, i32 noundef 0, ptr noundef %422)
          to label %5432 unwind label %5451

5432:                                             ; preds = %5431
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %421) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %421) #8
  %5433 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5433, ptr noundef @.str.7)
          to label %5434 unwind label %5456

5434:                                             ; preds = %5432
  invoke void @__cxa_throw(ptr %5433, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %5443

5435:                                             ; preds = %5420
  %5436 = landingpad { ptr, i32 }
          cleanup
  %5437 = extractvalue { ptr, i32 } %5436, 0
  store ptr %5437, ptr %14, align 8
  %5438 = extractvalue { ptr, i32 } %5436, 1
  store i32 %5438, ptr %15, align 4
  br label %5609

5439:                                             ; preds = %5421
  %5440 = landingpad { ptr, i32 }
          cleanup
  %5441 = extractvalue { ptr, i32 } %5440, 0
  store ptr %5441, ptr %14, align 8
  %5442 = extractvalue { ptr, i32 } %5440, 1
  store i32 %5442, ptr %15, align 4
  br label %5608

5443:                                             ; preds = %5524, %5522, %5518, %5516, %5513, %5510, %5491, %5475, %5472, %5465, %5462, %5434, %5425, %5422
  %5444 = landingpad { ptr, i32 }
          cleanup
  %5445 = extractvalue { ptr, i32 } %5444, 0
  store ptr %5445, ptr %14, align 8
  %5446 = extractvalue { ptr, i32 } %5444, 1
  store i32 %5446, ptr %15, align 4
  br label %5607

5447:                                             ; preds = %5429
  %5448 = landingpad { ptr, i32 }
          cleanup
  %5449 = extractvalue { ptr, i32 } %5448, 0
  store ptr %5449, ptr %14, align 8
  %5450 = extractvalue { ptr, i32 } %5448, 1
  store i32 %5450, ptr %15, align 4
  br label %5455

5451:                                             ; preds = %5431
  %5452 = landingpad { ptr, i32 }
          cleanup
  %5453 = extractvalue { ptr, i32 } %5452, 0
  store ptr %5453, ptr %14, align 8
  %5454 = extractvalue { ptr, i32 } %5452, 1
  store i32 %5454, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %422) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %423) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %421) #8
  br label %5455

5455:                                             ; preds = %5451, %5447
  call void @llvm.lifetime.end.p0(i64 8, ptr %421) #8
  br label %5607

5456:                                             ; preds = %5432
  %5457 = landingpad { ptr, i32 }
          cleanup
  %5458 = extractvalue { ptr, i32 } %5457, 0
  store ptr %5458, ptr %14, align 8
  %5459 = extractvalue { ptr, i32 } %5457, 1
  store i32 %5459, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5433) #8
  br label %5607

5460:                                             ; No predecessors!
  br label %5461

5461:                                             ; preds = %5460
  br label %5509

5462:                                             ; preds = %5427, %5424
  %5463 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %420)
          to label %5464 unwind label %5443

5464:                                             ; preds = %5462
  br i1 %5463, label %5465, label %5472

5465:                                             ; preds = %5464
  %5466 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5467 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5466, i32 0, i32 2
  %5468 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5467, ptr noundef nonnull align 8 dereferenceable(32) %413)
          to label %5469 unwind label %5443

5469:                                             ; preds = %5465
  %5470 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5471 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5470, i32 0, i32 0
  store i8 1, ptr %5471, align 8, !tbaa !48
  br label %5508

5472:                                             ; preds = %5464
  %5473 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %419)
          to label %5474 unwind label %5443

5474:                                             ; preds = %5472
  br i1 %5473, label %5475, label %5482

5475:                                             ; preds = %5474
  %5476 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5477 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5476, i32 0, i32 2
  %5478 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5477, ptr noundef nonnull align 8 dereferenceable(32) %407)
          to label %5479 unwind label %5443

5479:                                             ; preds = %5475
  %5480 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5481 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5480, i32 0, i32 0
  store i8 0, ptr %5481, align 8, !tbaa !48
  br label %5507

5482:                                             ; preds = %5474
  br label %5483

5483:                                             ; preds = %5482
  call void @llvm.lifetime.start.p0(i64 8, ptr %424) #8
  %5484 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %424, ptr noundef nonnull align 8 dereferenceable(176) %5484)
          to label %5485 unwind label %5492

5485:                                             ; preds = %5483
  call void @llvm.lifetime.start.p0(i64 16, ptr %426) #8
  %5486 = getelementptr inbounds %class.anon.292, ptr %426, i32 0, i32 0
  store ptr %362, ptr %5486, align 8, !tbaa !5
  %5487 = getelementptr inbounds %class.anon.292, ptr %426, i32 0, i32 1
  %5488 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %5488, ptr %5487, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %425, ptr noundef nonnull align 8 dereferenceable(16) %426) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %424, i32 noundef 0, ptr noundef %425)
          to label %5489 unwind label %5496

5489:                                             ; preds = %5485
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %426) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %424) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #8
  %5490 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5490, ptr noundef @.str.7)
          to label %5491 unwind label %5501

5491:                                             ; preds = %5489
  invoke void @__cxa_throw(ptr %5490, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %5443

5492:                                             ; preds = %5483
  %5493 = landingpad { ptr, i32 }
          cleanup
  %5494 = extractvalue { ptr, i32 } %5493, 0
  store ptr %5494, ptr %14, align 8
  %5495 = extractvalue { ptr, i32 } %5493, 1
  store i32 %5495, ptr %15, align 4
  br label %5500

5496:                                             ; preds = %5485
  %5497 = landingpad { ptr, i32 }
          cleanup
  %5498 = extractvalue { ptr, i32 } %5497, 0
  store ptr %5498, ptr %14, align 8
  %5499 = extractvalue { ptr, i32 } %5497, 1
  store i32 %5499, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %425) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %426) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %424) #8
  br label %5500

5500:                                             ; preds = %5496, %5492
  call void @llvm.lifetime.end.p0(i64 8, ptr %424) #8
  br label %5607

5501:                                             ; preds = %5489
  %5502 = landingpad { ptr, i32 }
          cleanup
  %5503 = extractvalue { ptr, i32 } %5502, 0
  store ptr %5503, ptr %14, align 8
  %5504 = extractvalue { ptr, i32 } %5502, 1
  store i32 %5504, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5490) #8
  br label %5607

5505:                                             ; No predecessors!
  br label %5506

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506, %5479
  br label %5508

5508:                                             ; preds = %5507, %5469
  br label %5509

5509:                                             ; preds = %5508, %5461
  br label %5510

5510:                                             ; preds = %5509
  %5511 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5512 unwind label %5443

5512:                                             ; preds = %5510
  br i1 %5511, label %5513, label %5527

5513:                                             ; preds = %5512
  %5514 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5515 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5514, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5516 unwind label %5443

5516:                                             ; preds = %5513
  %5517 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5515, ptr noundef @.str.37)
          to label %5518 unwind label %5443

5518:                                             ; preds = %5516
  %5519 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5520 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5519, i32 0, i32 2
  %5521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5517, ptr noundef nonnull align 8 dereferenceable(32) %5520)
          to label %5522 unwind label %5443

5522:                                             ; preds = %5518
  %5523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5521, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5524 unwind label %5443

5524:                                             ; preds = %5522
  %5525 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5523, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5526 unwind label %5443

5526:                                             ; preds = %5524
  br label %5527

5527:                                             ; preds = %5526, %5512
  br label %5528

5528:                                             ; preds = %5527
  br label %5529

5529:                                             ; preds = %5528
  call void @llvm.lifetime.start.p0(i64 256, ptr %427) #8
  %5530 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5531 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5530, i32 0, i32 2
  %5532 = load ptr, ptr %7, align 8, !tbaa !5
  %5533 = invoke noundef i32 @_ZNK11TokenStream11get_editionEv(ptr noundef nonnull align 8 dereferenceable(176) %5532)
          to label %5534 unwind label %5567

5534:                                             ; preds = %5529
  %5535 = load ptr, ptr %7, align 8, !tbaa !5
  %5536 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %5535)
          to label %5537 unwind label %5567

5537:                                             ; preds = %5534
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %428, ptr align 8 %5536, i64 32, i1 false), !tbaa.struct !84
  invoke void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256) %427, ptr noundef nonnull align 8 dereferenceable(32) %5531, i32 noundef %5533, ptr noundef byval(%struct.ParseState) align 8 %428)
          to label %5538 unwind label %5567

5538:                                             ; preds = %5537
  invoke void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176) %427, ptr noundef nonnull align 8 dereferenceable(480) %363, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %5539 unwind label %5571

5539:                                             ; preds = %5538
  br label %5540

5540:                                             ; preds = %5539
  call void @llvm.lifetime.start.p0(i64 88, ptr %429) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %429, ptr noundef nonnull align 8 dereferenceable(176) %427)
          to label %5541 unwind label %5575

5541:                                             ; preds = %5540
  %5542 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %429)
          to label %5543 unwind label %5579

5543:                                             ; preds = %5541
  %5544 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %5542)
          to label %5545 unwind label %5579

5545:                                             ; preds = %5543
  %5546 = icmp ne i32 %5544, 1
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %429) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %429) #8
  br i1 %5546, label %5547, label %5602

5547:                                             ; preds = %5545
  br label %5548

5548:                                             ; preds = %5547
  %5549 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5550 unwind label %5571

5550:                                             ; preds = %5548
  br i1 %5549, label %5551, label %5584

5551:                                             ; preds = %5550
  %5552 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5552, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5554 unwind label %5571

5554:                                             ; preds = %5551
  %5555 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5553, ptr noundef @.str.1)
          to label %5556 unwind label %5571

5556:                                             ; preds = %5554
  %5557 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5555, ptr noundef @.str.2)
          to label %5558 unwind label %5571

5558:                                             ; preds = %5556
  %5559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5557, ptr noundef @.str.3)
          to label %5560 unwind label %5571

5560:                                             ; preds = %5558
  %5561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %5559, i32 noundef 2323)
          to label %5562 unwind label %5571

5562:                                             ; preds = %5560
  %5563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5561, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5564 unwind label %5571

5564:                                             ; preds = %5562
  %5565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5563, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5566 unwind label %5571

5566:                                             ; preds = %5564
  br label %5584

5567:                                             ; preds = %5537, %5534, %5529
  %5568 = landingpad { ptr, i32 }
          cleanup
  %5569 = extractvalue { ptr, i32 } %5568, 0
  store ptr %5569, ptr %14, align 8
  %5570 = extractvalue { ptr, i32 } %5568, 1
  store i32 %5570, ptr %15, align 4
  br label %5606

5571:                                             ; preds = %5564, %5562, %5560, %5558, %5556, %5554, %5551, %5548, %5538
  %5572 = landingpad { ptr, i32 }
          cleanup
  %5573 = extractvalue { ptr, i32 } %5572, 0
  store ptr %5573, ptr %14, align 8
  %5574 = extractvalue { ptr, i32 } %5572, 1
  store i32 %5574, ptr %15, align 4
  br label %5605

5575:                                             ; preds = %5540
  %5576 = landingpad { ptr, i32 }
          cleanup
  %5577 = extractvalue { ptr, i32 } %5576, 0
  store ptr %5577, ptr %14, align 8
  %5578 = extractvalue { ptr, i32 } %5576, 1
  store i32 %5578, ptr %15, align 4
  br label %5583

5579:                                             ; preds = %5543, %5541
  %5580 = landingpad { ptr, i32 }
          cleanup
  %5581 = extractvalue { ptr, i32 } %5580, 0
  store ptr %5581, ptr %14, align 8
  %5582 = extractvalue { ptr, i32 } %5580, 1
  store i32 %5582, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %429) #8
  br label %5583

5583:                                             ; preds = %5579, %5575
  call void @llvm.lifetime.end.p0(i64 88, ptr %429) #8
  br label %5605

5584:                                             ; preds = %5566, %5550
  br label %5585

5585:                                             ; preds = %5584
  br label %5586

5586:                                             ; preds = %5585
  store i1 true, ptr %431, align 1
  %5587 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %430, i32 noundef 1)
          to label %5588 unwind label %5590

5588:                                             ; preds = %5586
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %5587, ptr noundef nonnull align 8 dereferenceable(176) %427, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %430)
          to label %5589 unwind label %5594

5589:                                             ; preds = %5588
  store i1 false, ptr %431, align 1
  invoke void @__cxa_throw(ptr %5587, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %5594

5590:                                             ; preds = %5586
  %5591 = landingpad { ptr, i32 }
          cleanup
  %5592 = extractvalue { ptr, i32 } %5591, 0
  store ptr %5592, ptr %14, align 8
  %5593 = extractvalue { ptr, i32 } %5591, 1
  store i32 %5593, ptr %15, align 4
  br label %5598

5594:                                             ; preds = %5589, %5588
  %5595 = landingpad { ptr, i32 }
          cleanup
  %5596 = extractvalue { ptr, i32 } %5595, 0
  store ptr %5596, ptr %14, align 8
  %5597 = extractvalue { ptr, i32 } %5595, 1
  store i32 %5597, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %430) #8
  br label %5598

5598:                                             ; preds = %5594, %5590
  %5599 = load i1, ptr %431, align 1
  br i1 %5599, label %5600, label %5601

5600:                                             ; preds = %5598
  call void @__cxa_free_exception(ptr %5587) #8
  br label %5601

5601:                                             ; preds = %5600, %5598
  br label %5605

5602:                                             ; preds = %5545
  br label %5603

5603:                                             ; preds = %5602
  br label %5604

5604:                                             ; preds = %5603
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %427) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr %427) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %420) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %420) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %419) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %419) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %413) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #8
  br label %5870

5605:                                             ; preds = %5601, %5583, %5571
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %427) #8
  br label %5606

5606:                                             ; preds = %5605, %5567
  call void @llvm.lifetime.end.p0(i64 256, ptr %427) #8
  br label %5607

5607:                                             ; preds = %5606, %5501, %5500, %5456, %5455, %5443
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %420) #8
  br label %5608

5608:                                             ; preds = %5607, %5439
  call void @llvm.lifetime.end.p0(i64 520, ptr %420) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %419) #8
  br label %5609

5609:                                             ; preds = %5608, %5435
  call void @llvm.lifetime.end.p0(i64 520, ptr %419) #8
  br label %5610

5610:                                             ; preds = %5609, %5374
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %413) #8
  br label %5611

5611:                                             ; preds = %5610, %5373
  call void @llvm.lifetime.end.p0(i64 32, ptr %413) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %407) #8
  br label %5612

5612:                                             ; preds = %5611, %5344
  call void @llvm.lifetime.end.p0(i64 32, ptr %407) #8
  br label %5910

5613:                                             ; preds = %5233, %5230
  call void @llvm.lifetime.start.p0(i64 32, ptr %432) #8
  %5614 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %5615 unwind label %5646

5615:                                             ; preds = %5613
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %432, ptr noundef nonnull align 8 dereferenceable(32) %5614, ptr noundef @.str.32)
          to label %5616 unwind label %5646

5616:                                             ; preds = %5615
  call void @llvm.lifetime.start.p0(i64 32, ptr %433) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %434) #8
  %5617 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  %5618 = icmp ugt i64 %5617, 0
  br i1 %5618, label %5619, label %5621

5619:                                             ; preds = %5616
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull align 8 dereferenceable(32) %378)
          to label %5620 unwind label %5650

5620:                                             ; preds = %5619
  br label %5623

5621:                                             ; preds = %5616
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind writable sret(%"class.helpers::path") align 8 %434, ptr noundef nonnull align 8 dereferenceable(32) %378, ptr noundef @.str.33)
          to label %5622 unwind label %5650

5622:                                             ; preds = %5621
  br label %5623

5623:                                             ; preds = %5622, %5620
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %433, ptr noundef nonnull align 8 dereferenceable(32) %434)
          to label %5624 unwind label %5654

5624:                                             ; preds = %5623
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #8
  br label %5625

5625:                                             ; preds = %5624
  %5626 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5627 unwind label %5659

5627:                                             ; preds = %5625
  br i1 %5626, label %5628, label %5663

5628:                                             ; preds = %5627
  %5629 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5630 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5629, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5631 unwind label %5659

5631:                                             ; preds = %5628
  %5632 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5630, ptr noundef @.str.38)
          to label %5633 unwind label %5659

5633:                                             ; preds = %5631
  %5634 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5632, ptr noundef nonnull align 8 dereferenceable(32) %432)
          to label %5635 unwind label %5659

5635:                                             ; preds = %5633
  %5636 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5634, ptr noundef @.str.39)
          to label %5637 unwind label %5659

5637:                                             ; preds = %5635
  %5638 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5636, ptr noundef nonnull align 8 dereferenceable(32) %433)
          to label %5639 unwind label %5659

5639:                                             ; preds = %5637
  %5640 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5638, ptr noundef @.str.26)
          to label %5641 unwind label %5659

5641:                                             ; preds = %5639
  %5642 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5640, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5643 unwind label %5659

5643:                                             ; preds = %5641
  %5644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5642, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5645 unwind label %5659

5645:                                             ; preds = %5643
  br label %5663

5646:                                             ; preds = %5615, %5613
  %5647 = landingpad { ptr, i32 }
          cleanup
  %5648 = extractvalue { ptr, i32 } %5647, 0
  store ptr %5648, ptr %14, align 8
  %5649 = extractvalue { ptr, i32 } %5647, 1
  store i32 %5649, ptr %15, align 4
  br label %5869

5650:                                             ; preds = %5621, %5619
  %5651 = landingpad { ptr, i32 }
          cleanup
  %5652 = extractvalue { ptr, i32 } %5651, 0
  store ptr %5652, ptr %14, align 8
  %5653 = extractvalue { ptr, i32 } %5651, 1
  store i32 %5653, ptr %15, align 4
  br label %5658

5654:                                             ; preds = %5623
  %5655 = landingpad { ptr, i32 }
          cleanup
  %5656 = extractvalue { ptr, i32 } %5655, 0
  store ptr %5656, ptr %14, align 8
  %5657 = extractvalue { ptr, i32 } %5655, 1
  store i32 %5657, ptr %15, align 4
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %434) #8
  br label %5658

5658:                                             ; preds = %5654, %5650
  call void @llvm.lifetime.end.p0(i64 32, ptr %434) #8
  br label %5868

5659:                                             ; preds = %5643, %5641, %5639, %5637, %5635, %5633, %5631, %5628, %5625
  %5660 = landingpad { ptr, i32 }
          cleanup
  %5661 = extractvalue { ptr, i32 } %5660, 0
  store ptr %5661, ptr %14, align 8
  %5662 = extractvalue { ptr, i32 } %5660, 1
  store i32 %5662, ptr %15, align 4
  br label %5867

5663:                                             ; preds = %5645, %5627
  br label %5664

5664:                                             ; preds = %5663
  br label %5665

5665:                                             ; preds = %5664
  call void @llvm.lifetime.start.p0(i64 520, ptr %435) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %436) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %436, ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef @.str.34)
          to label %5666 unwind label %5681

5666:                                             ; preds = %5665
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %435, ptr noundef nonnull align 8 dereferenceable(32) %436, i32 noundef 8)
          to label %5667 unwind label %5685

5667:                                             ; preds = %5666
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #8
  call void @llvm.lifetime.start.p0(i64 520, ptr %437) #8
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %437, ptr noundef nonnull align 8 dereferenceable(32) %433, i32 noundef 8)
          to label %5668 unwind label %5690

5668:                                             ; preds = %5667
  %5669 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %435)
          to label %5670 unwind label %5694

5670:                                             ; preds = %5668
  br i1 %5669, label %5671, label %5713

5671:                                             ; preds = %5670
  %5672 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %437)
          to label %5673 unwind label %5694

5673:                                             ; preds = %5671
  br i1 %5672, label %5674, label %5713

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674
  call void @llvm.lifetime.start.p0(i64 8, ptr %438) #8
  %5676 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %438, ptr noundef nonnull align 8 dereferenceable(176) %5676)
          to label %5677 unwind label %5698

5677:                                             ; preds = %5675
  call void @llvm.lifetime.start.p0(i64 1, ptr %440) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %439, ptr noundef nonnull align 1 dereferenceable(1) %440) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %438, i32 noundef 0, ptr noundef %439)
          to label %5678 unwind label %5702

5678:                                             ; preds = %5677
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %438) #8
  %5679 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5679, ptr noundef @.str.7)
          to label %5680 unwind label %5707

5680:                                             ; preds = %5678
  invoke void @__cxa_throw(ptr %5679, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %5694

5681:                                             ; preds = %5665
  %5682 = landingpad { ptr, i32 }
          cleanup
  %5683 = extractvalue { ptr, i32 } %5682, 0
  store ptr %5683, ptr %14, align 8
  %5684 = extractvalue { ptr, i32 } %5682, 1
  store i32 %5684, ptr %15, align 4
  br label %5689

5685:                                             ; preds = %5666
  %5686 = landingpad { ptr, i32 }
          cleanup
  %5687 = extractvalue { ptr, i32 } %5686, 0
  store ptr %5687, ptr %14, align 8
  %5688 = extractvalue { ptr, i32 } %5686, 1
  store i32 %5688, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %436) #8
  br label %5689

5689:                                             ; preds = %5685, %5681
  call void @llvm.lifetime.end.p0(i64 32, ptr %436) #8
  br label %5866

5690:                                             ; preds = %5667
  %5691 = landingpad { ptr, i32 }
          cleanup
  %5692 = extractvalue { ptr, i32 } %5691, 0
  store ptr %5692, ptr %14, align 8
  %5693 = extractvalue { ptr, i32 } %5691, 1
  store i32 %5693, ptr %15, align 4
  br label %5865

5694:                                             ; preds = %5781, %5779, %5775, %5773, %5770, %5767, %5748, %5732, %5728, %5725, %5713, %5680, %5671, %5668
  %5695 = landingpad { ptr, i32 }
          cleanup
  %5696 = extractvalue { ptr, i32 } %5695, 0
  store ptr %5696, ptr %14, align 8
  %5697 = extractvalue { ptr, i32 } %5695, 1
  store i32 %5697, ptr %15, align 4
  br label %5864

5698:                                             ; preds = %5675
  %5699 = landingpad { ptr, i32 }
          cleanup
  %5700 = extractvalue { ptr, i32 } %5699, 0
  store ptr %5700, ptr %14, align 8
  %5701 = extractvalue { ptr, i32 } %5699, 1
  store i32 %5701, ptr %15, align 4
  br label %5706

5702:                                             ; preds = %5677
  %5703 = landingpad { ptr, i32 }
          cleanup
  %5704 = extractvalue { ptr, i32 } %5703, 0
  store ptr %5704, ptr %14, align 8
  %5705 = extractvalue { ptr, i32 } %5703, 1
  store i32 %5705, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %439) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %440) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %438) #8
  br label %5706

5706:                                             ; preds = %5702, %5698
  call void @llvm.lifetime.end.p0(i64 8, ptr %438) #8
  br label %5864

5707:                                             ; preds = %5678
  %5708 = landingpad { ptr, i32 }
          cleanup
  %5709 = extractvalue { ptr, i32 } %5708, 0
  store ptr %5709, ptr %14, align 8
  %5710 = extractvalue { ptr, i32 } %5708, 1
  store i32 %5710, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5679) #8
  br label %5864

5711:                                             ; No predecessors!
  br label %5712

5712:                                             ; preds = %5711
  br label %5766

5713:                                             ; preds = %5673, %5670
  %5714 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %435)
          to label %5715 unwind label %5694

5715:                                             ; preds = %5713
  br i1 %5714, label %5716, label %5725

5716:                                             ; preds = %5715
  call void @llvm.lifetime.start.p0(i64 32, ptr %441) #8
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %441, ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef @.str.34)
          to label %5717 unwind label %5721

5717:                                             ; preds = %5716
  %5718 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5719 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5718, i32 0, i32 2
  %5720 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5719, ptr noundef nonnull align 8 dereferenceable(32) %441) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %441) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %441) #8
  br label %5765

5721:                                             ; preds = %5716
  %5722 = landingpad { ptr, i32 }
          cleanup
  %5723 = extractvalue { ptr, i32 } %5722, 0
  store ptr %5723, ptr %14, align 8
  %5724 = extractvalue { ptr, i32 } %5722, 1
  store i32 %5724, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %441) #8
  br label %5864

5725:                                             ; preds = %5715
  %5726 = invoke noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %437)
          to label %5727 unwind label %5694

5727:                                             ; preds = %5725
  br i1 %5726, label %5728, label %5739

5728:                                             ; preds = %5727
  %5729 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5730 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5729, i32 0, i32 2
  %5731 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5730, ptr noundef nonnull align 8 dereferenceable(32) %433)
          to label %5732 unwind label %5694

5732:                                             ; preds = %5728
  %5733 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %366, ptr noundef @.str)
          to label %5734 unwind label %5694

5734:                                             ; preds = %5732
  br i1 %5733, label %5735, label %5738

5735:                                             ; preds = %5734
  %5736 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5737 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5736, i32 0, i32 0
  store i8 0, ptr %5737, align 8, !tbaa !48
  br label %5738

5738:                                             ; preds = %5735, %5734
  br label %5764

5739:                                             ; preds = %5727
  br label %5740

5740:                                             ; preds = %5739
  call void @llvm.lifetime.start.p0(i64 8, ptr %442) #8
  %5741 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %442, ptr noundef nonnull align 8 dereferenceable(176) %5741)
          to label %5742 unwind label %5749

5742:                                             ; preds = %5740
  call void @llvm.lifetime.start.p0(i64 16, ptr %444) #8
  %5743 = getelementptr inbounds %class.anon.308, ptr %444, i32 0, i32 0
  store ptr %362, ptr %5743, align 8, !tbaa !5
  %5744 = getelementptr inbounds %class.anon.308, ptr %444, i32 0, i32 1
  %5745 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %5745, ptr %5744, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %443, ptr noundef nonnull align 8 dereferenceable(16) %444) #8
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %442, i32 noundef 0, ptr noundef %443)
          to label %5746 unwind label %5753

5746:                                             ; preds = %5742
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %444) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %442) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #8
  %5747 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %5747, ptr noundef @.str.7)
          to label %5748 unwind label %5758

5748:                                             ; preds = %5746
  invoke void @__cxa_throw(ptr %5747, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %5961 unwind label %5694

5749:                                             ; preds = %5740
  %5750 = landingpad { ptr, i32 }
          cleanup
  %5751 = extractvalue { ptr, i32 } %5750, 0
  store ptr %5751, ptr %14, align 8
  %5752 = extractvalue { ptr, i32 } %5750, 1
  store i32 %5752, ptr %15, align 4
  br label %5757

5753:                                             ; preds = %5742
  %5754 = landingpad { ptr, i32 }
          cleanup
  %5755 = extractvalue { ptr, i32 } %5754, 0
  store ptr %5755, ptr %14, align 8
  %5756 = extractvalue { ptr, i32 } %5754, 1
  store i32 %5756, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %443) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %444) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %442) #8
  br label %5757

5757:                                             ; preds = %5753, %5749
  call void @llvm.lifetime.end.p0(i64 8, ptr %442) #8
  br label %5864

5758:                                             ; preds = %5746
  %5759 = landingpad { ptr, i32 }
          cleanup
  %5760 = extractvalue { ptr, i32 } %5759, 0
  store ptr %5760, ptr %14, align 8
  %5761 = extractvalue { ptr, i32 } %5759, 1
  store i32 %5761, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5747) #8
  br label %5864

5762:                                             ; No predecessors!
  br label %5763

5763:                                             ; preds = %5762
  br label %5764

5764:                                             ; preds = %5763, %5738
  br label %5765

5765:                                             ; preds = %5764, %5717
  br label %5766

5766:                                             ; preds = %5765, %5712
  br label %5767

5767:                                             ; preds = %5766
  %5768 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5769 unwind label %5694

5769:                                             ; preds = %5767
  br i1 %5768, label %5770, label %5784

5770:                                             ; preds = %5769
  %5771 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5772 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5771, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5773 unwind label %5694

5773:                                             ; preds = %5770
  %5774 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5772, ptr noundef @.str.37)
          to label %5775 unwind label %5694

5775:                                             ; preds = %5773
  %5776 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5777 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5776, i32 0, i32 2
  %5778 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %5774, ptr noundef nonnull align 8 dereferenceable(32) %5777)
          to label %5779 unwind label %5694

5779:                                             ; preds = %5775
  %5780 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5778, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5781 unwind label %5694

5781:                                             ; preds = %5779
  %5782 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5780, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5783 unwind label %5694

5783:                                             ; preds = %5781
  br label %5784

5784:                                             ; preds = %5783, %5769
  br label %5785

5785:                                             ; preds = %5784
  br label %5786

5786:                                             ; preds = %5785
  call void @llvm.lifetime.start.p0(i64 256, ptr %445) #8
  %5787 = getelementptr inbounds %"class.AST::Module", ptr %363, i32 0, i32 4
  %5788 = getelementptr inbounds %"struct.AST::Module::FileInfo", ptr %5787, i32 0, i32 2
  %5789 = load ptr, ptr %7, align 8, !tbaa !5
  %5790 = invoke noundef i32 @_ZNK11TokenStream11get_editionEv(ptr noundef nonnull align 8 dereferenceable(176) %5789)
          to label %5791 unwind label %5824

5791:                                             ; preds = %5786
  %5792 = load ptr, ptr %7, align 8, !tbaa !5
  %5793 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %5792)
          to label %5794 unwind label %5824

5794:                                             ; preds = %5791
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %446, ptr align 8 %5793, i64 32, i1 false), !tbaa.struct !84
  invoke void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256) %445, ptr noundef nonnull align 8 dereferenceable(32) %5788, i32 noundef %5790, ptr noundef byval(%struct.ParseState) align 8 %446)
          to label %5795 unwind label %5824

5795:                                             ; preds = %5794
  invoke void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176) %445, ptr noundef nonnull align 8 dereferenceable(480) %363, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %5796 unwind label %5828

5796:                                             ; preds = %5795
  br label %5797

5797:                                             ; preds = %5796
  call void @llvm.lifetime.start.p0(i64 88, ptr %447) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %447, ptr noundef nonnull align 8 dereferenceable(176) %445)
          to label %5798 unwind label %5832

5798:                                             ; preds = %5797
  %5799 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef nonnull align 8 dereferenceable(88) %447)
          to label %5800 unwind label %5836

5800:                                             ; preds = %5798
  %5801 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %5799)
          to label %5802 unwind label %5836

5802:                                             ; preds = %5800
  %5803 = icmp ne i32 %5801, 1
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %447) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %447) #8
  br i1 %5803, label %5804, label %5859

5804:                                             ; preds = %5802
  br label %5805

5805:                                             ; preds = %5804
  %5806 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %5807 unwind label %5828

5807:                                             ; preds = %5805
  br i1 %5806, label %5808, label %5841

5808:                                             ; preds = %5807
  %5809 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %5810 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %5809, ptr noundef @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %5811 unwind label %5828

5811:                                             ; preds = %5808
  %5812 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5810, ptr noundef @.str.1)
          to label %5813 unwind label %5828

5813:                                             ; preds = %5811
  %5814 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5812, ptr noundef @.str.2)
          to label %5815 unwind label %5828

5815:                                             ; preds = %5813
  %5816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %5814, ptr noundef @.str.3)
          to label %5817 unwind label %5828

5817:                                             ; preds = %5815
  %5818 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %5816, i32 noundef 2359)
          to label %5819 unwind label %5828

5819:                                             ; preds = %5817
  %5820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %5818, ptr noundef @_ZSt3decRSt8ios_base)
          to label %5821 unwind label %5828

5821:                                             ; preds = %5819
  %5822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %5820, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %5823 unwind label %5828

5823:                                             ; preds = %5821
  br label %5841

5824:                                             ; preds = %5794, %5791, %5786
  %5825 = landingpad { ptr, i32 }
          cleanup
  %5826 = extractvalue { ptr, i32 } %5825, 0
  store ptr %5826, ptr %14, align 8
  %5827 = extractvalue { ptr, i32 } %5825, 1
  store i32 %5827, ptr %15, align 4
  br label %5863

5828:                                             ; preds = %5821, %5819, %5817, %5815, %5813, %5811, %5808, %5805, %5795
  %5829 = landingpad { ptr, i32 }
          cleanup
  %5830 = extractvalue { ptr, i32 } %5829, 0
  store ptr %5830, ptr %14, align 8
  %5831 = extractvalue { ptr, i32 } %5829, 1
  store i32 %5831, ptr %15, align 4
  br label %5862

5832:                                             ; preds = %5797
  %5833 = landingpad { ptr, i32 }
          cleanup
  %5834 = extractvalue { ptr, i32 } %5833, 0
  store ptr %5834, ptr %14, align 8
  %5835 = extractvalue { ptr, i32 } %5833, 1
  store i32 %5835, ptr %15, align 4
  br label %5840

5836:                                             ; preds = %5800, %5798
  %5837 = landingpad { ptr, i32 }
          cleanup
  %5838 = extractvalue { ptr, i32 } %5837, 0
  store ptr %5838, ptr %14, align 8
  %5839 = extractvalue { ptr, i32 } %5837, 1
  store i32 %5839, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %447) #8
  br label %5840

5840:                                             ; preds = %5836, %5832
  call void @llvm.lifetime.end.p0(i64 88, ptr %447) #8
  br label %5862

5841:                                             ; preds = %5823, %5807
  br label %5842

5842:                                             ; preds = %5841
  br label %5843

5843:                                             ; preds = %5842
  store i1 true, ptr %449, align 1
  %5844 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %448, i32 noundef 1)
          to label %5845 unwind label %5847

5845:                                             ; preds = %5843
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %5844, ptr noundef nonnull align 8 dereferenceable(176) %445, ptr noundef nonnull align 8 dereferenceable(88) %16, ptr noundef %448)
          to label %5846 unwind label %5851

5846:                                             ; preds = %5845
  store i1 false, ptr %449, align 1
  invoke void @__cxa_throw(ptr %5844, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %5851

5847:                                             ; preds = %5843
  %5848 = landingpad { ptr, i32 }
          cleanup
  %5849 = extractvalue { ptr, i32 } %5848, 0
  store ptr %5849, ptr %14, align 8
  %5850 = extractvalue { ptr, i32 } %5848, 1
  store i32 %5850, ptr %15, align 4
  br label %5855

5851:                                             ; preds = %5846, %5845
  %5852 = landingpad { ptr, i32 }
          cleanup
  %5853 = extractvalue { ptr, i32 } %5852, 0
  store ptr %5853, ptr %14, align 8
  %5854 = extractvalue { ptr, i32 } %5852, 1
  store i32 %5854, ptr %15, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %448) #8
  br label %5855

5855:                                             ; preds = %5851, %5847
  %5856 = load i1, ptr %449, align 1
  br i1 %5856, label %5857, label %5858

5857:                                             ; preds = %5855
  call void @__cxa_free_exception(ptr %5844) #8
  br label %5858

5858:                                             ; preds = %5857, %5855
  br label %5862

5859:                                             ; preds = %5802
  br label %5860

5860:                                             ; preds = %5859
  br label %5861

5861:                                             ; preds = %5860
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %445) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr %445) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %437) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %437) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %435) #8
  call void @llvm.lifetime.end.p0(i64 520, ptr %435) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %433) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %432) #8
  br label %5870

5862:                                             ; preds = %5858, %5840, %5828
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %445) #8
  br label %5863

5863:                                             ; preds = %5862, %5824
  call void @llvm.lifetime.end.p0(i64 256, ptr %445) #8
  br label %5864

5864:                                             ; preds = %5863, %5758, %5757, %5721, %5707, %5706, %5694
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %437) #8
  br label %5865

5865:                                             ; preds = %5864, %5690
  call void @llvm.lifetime.end.p0(i64 520, ptr %437) #8
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %435) #8
  br label %5866

5866:                                             ; preds = %5865, %5689
  call void @llvm.lifetime.end.p0(i64 520, ptr %435) #8
  br label %5867

5867:                                             ; preds = %5866, %5659
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %433) #8
  br label %5868

5868:                                             ; preds = %5867, %5658
  call void @llvm.lifetime.end.p0(i64 32, ptr %433) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %432) #8
  br label %5869

5869:                                             ; preds = %5868, %5646
  call void @llvm.lifetime.end.p0(i64 32, ptr %432) #8
  br label %5910

5870:                                             ; preds = %5861, %5604
  br label %5871

5871:                                             ; preds = %5870
  br label %5872

5872:                                             ; preds = %5871, %5211
  br label %5889

5873:                                             ; preds = %5099
  store i1 true, ptr %452, align 1
  %5874 = call ptr @__cxa_allocate_exception(i64 40) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %451) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %450, ptr noundef @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %451)
          to label %5875 unwind label %5877

5875:                                             ; preds = %5873
  invoke void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %5874, ptr noundef %450)
          to label %5876 unwind label %5881

5876:                                             ; preds = %5875
  store i1 false, ptr %452, align 1
  invoke void @__cxa_throw(ptr %5874, ptr @_ZTIN12CompileError7GenericE, ptr @_ZN12CompileError7GenericD2Ev) #9
          to label %5961 unwind label %5881

5877:                                             ; preds = %5873
  %5878 = landingpad { ptr, i32 }
          cleanup
  %5879 = extractvalue { ptr, i32 } %5878, 0
  store ptr %5879, ptr %14, align 8
  %5880 = extractvalue { ptr, i32 } %5878, 1
  store i32 %5880, ptr %15, align 4
  br label %5885

5881:                                             ; preds = %5876, %5875
  %5882 = landingpad { ptr, i32 }
          cleanup
  %5883 = extractvalue { ptr, i32 } %5882, 0
  store ptr %5883, ptr %14, align 8
  %5884 = extractvalue { ptr, i32 } %5882, 1
  store i32 %5884, ptr %15, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %450) #8
  br label %5885

5885:                                             ; preds = %5881, %5877
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %451) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %451) #8
  %5886 = load i1, ptr %452, align 1
  br i1 %5886, label %5887, label %5888

5887:                                             ; preds = %5885
  call void @__cxa_free_exception(ptr %5874) #8
  br label %5888

5888:                                             ; preds = %5887, %5885
  br label %5910

5889:                                             ; preds = %5872, %5220, %5184
  %5890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %362)
          to label %5891 unwind label %4947

5891:                                             ; preds = %5889
  call void @llvm.lifetime.start.p0(i64 488, ptr %453) #8
  invoke void @_ZN3AST6ModuleC2EOS0_(ptr noundef nonnull align 8 dereferenceable(480) %454, ptr noundef nonnull align 8 dereferenceable(480) %363)
          to label %5892 unwind label %5896

5892:                                             ; preds = %5891
  invoke void @_ZN3AST4ItemC2ENS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(488) %453, ptr noundef %454)
          to label %5893 unwind label %5900

5893:                                             ; preds = %5892
  %5894 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %44, ptr noundef nonnull align 8 dereferenceable(488) %453)
          to label %5895 unwind label %5904

5895:                                             ; preds = %5893
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %453) #8
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %454) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %453) #8
  store i32 18, ptr %33, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #8
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %363) #8
  call void @llvm.lifetime.end.p0(i64 480, ptr %363) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %362) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #8
  br label %5924

5896:                                             ; preds = %5891
  %5897 = landingpad { ptr, i32 }
          cleanup
  %5898 = extractvalue { ptr, i32 } %5897, 0
  store ptr %5898, ptr %14, align 8
  %5899 = extractvalue { ptr, i32 } %5897, 1
  store i32 %5899, ptr %15, align 4
  br label %5909

5900:                                             ; preds = %5892
  %5901 = landingpad { ptr, i32 }
          cleanup
  %5902 = extractvalue { ptr, i32 } %5901, 0
  store ptr %5902, ptr %14, align 8
  %5903 = extractvalue { ptr, i32 } %5901, 1
  store i32 %5903, ptr %15, align 4
  br label %5908

5904:                                             ; preds = %5893
  %5905 = landingpad { ptr, i32 }
          cleanup
  %5906 = extractvalue { ptr, i32 } %5905, 0
  store ptr %5906, ptr %14, align 8
  %5907 = extractvalue { ptr, i32 } %5905, 1
  store i32 %5907, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %453) #8
  br label %5908

5908:                                             ; preds = %5904, %5900
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %454) #8
  br label %5909

5909:                                             ; preds = %5908, %5896
  call void @llvm.lifetime.end.p0(i64 488, ptr %453) #8
  br label %5910

5910:                                             ; preds = %5909, %5888, %5869, %5612, %5259, %5258, %5229, %5206, %5205, %5181, %5162, %5150, %5112, %5100, %5059, %5025, %4997, %4969, %4960, %4959, %4947
  call void @llvm.lifetime.end.p0(i64 1, ptr %379) #8
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %378) #8
  br label %5911

5911:                                             ; preds = %5910, %4943
  call void @llvm.lifetime.end.p0(i64 32, ptr %378) #8
  br label %5912

5912:                                             ; preds = %5911, %4926
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %366) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %366) #8
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %363) #8
  br label %5913

5913:                                             ; preds = %5912, %4834, %4822
  call void @llvm.lifetime.end.p0(i64 480, ptr %363) #8
  br label %5914

5914:                                             ; preds = %5913, %4801
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %362) #8
  br label %5915

5915:                                             ; preds = %5914, %4797
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #8
  br label %5945

5916:                                             ; preds = %796
  %5917 = call ptr @__cxa_allocate_exception(i64 96) #8
  %5918 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %5917, ptr noundef nonnull align 8 dereferenceable(176) %5918, ptr noundef nonnull align 8 dereferenceable(88) %16)
          to label %5919 unwind label %5920

5919:                                             ; preds = %5916
  invoke void @__cxa_throw(ptr %5917, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %5961 unwind label %877

5920:                                             ; preds = %5916
  %5921 = landingpad { ptr, i32 }
          cleanup
  %5922 = extractvalue { ptr, i32 } %5921, 0
  store ptr %5922, ptr %14, align 8
  %5923 = extractvalue { ptr, i32 } %5921, 1
  store i32 %5923, ptr %15, align 4
  call void @__cxa_free_exception(ptr %5917) #8
  br label %5945

5924:                                             ; preds = %5895, %4715, %4460, %4204, %3926, %3842, %3758, %3669, %3577, %3443, %2752, %2488, %1724, %902
  %5925 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN9ProtoSpanC2ERKS_(ptr noundef nonnull align 8 dereferenceable(24) %456, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %5926 unwind label %877

5926:                                             ; preds = %5924
  invoke void @_ZNK11TokenStream8end_spanE9ProtoSpan(ptr dead_on_unwind writable sret(%struct.Span) align 8 %455, ptr noundef nonnull align 8 dereferenceable(176) %5925, ptr noundef %456)
          to label %5927 unwind label %5930

5927:                                             ; preds = %5926
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %457, ptr noundef nonnull align 8 dereferenceable(24) %4) #8
  call void @_ZN3AST10VisibilityC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(36) %458, ptr noundef nonnull align 8 dereferenceable(36) %45) #8
  invoke void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %459, ptr noundef nonnull align 8 dereferenceable(8) %43)
          to label %5928 unwind label %5934

5928:                                             ; preds = %5927
  call void @_ZN3AST4ItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(488) %460, ptr noundef nonnull align 8 dereferenceable(488) %44) #8
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef %455, ptr noundef %457, ptr noundef %458, ptr noundef %459, ptr noundef %460)
          to label %5929 unwind label %5938

5929:                                             ; preds = %5928
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %460) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %459) #8
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %458) #8
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %457) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %455) #8
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %456) #8
  store i32 1, ptr %33, align 4
  br label %5944

5930:                                             ; preds = %5926
  %5931 = landingpad { ptr, i32 }
          cleanup
  %5932 = extractvalue { ptr, i32 } %5931, 0
  store ptr %5932, ptr %14, align 8
  %5933 = extractvalue { ptr, i32 } %5931, 1
  store i32 %5933, ptr %15, align 4
  br label %5943

5934:                                             ; preds = %5927
  %5935 = landingpad { ptr, i32 }
          cleanup
  %5936 = extractvalue { ptr, i32 } %5935, 0
  store ptr %5936, ptr %14, align 8
  %5937 = extractvalue { ptr, i32 } %5935, 1
  store i32 %5937, ptr %15, align 4
  br label %5942

5938:                                             ; preds = %5928
  %5939 = landingpad { ptr, i32 }
          cleanup
  %5940 = extractvalue { ptr, i32 } %5939, 0
  store ptr %5940, ptr %14, align 8
  %5941 = extractvalue { ptr, i32 } %5939, 1
  store i32 %5941, ptr %15, align 4
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %460) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %459) #8
  br label %5942

5942:                                             ; preds = %5938, %5934
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %458) #8
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %457) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %455) #8
  br label %5943

5943:                                             ; preds = %5942, %5930
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %456) #8
  br label %5945

5944:                                             ; preds = %5929, %4212, %3230
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %45) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #8
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %44) #8
  call void @llvm.lifetime.end.p0(i64 488, ptr %44) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %5949

5945:                                             ; preds = %5943, %5920, %5915, %4772, %4753, %4711, %4706, %4522, %4503, %4462, %4293, %4274, %4236, %4199, %4194, %4155, %4136, %4096, %4077, %4030, %4003, %3984, %3940, %3913, %3894, %3856, %3829, %3810, %3772, %3745, %3726, %3688, %3653, %3634, %3596, %3559, %3540, %3500, %3481, %3442, %3416, %3376, %3357, %3317, %3298, %3251, %3175, %3136, %3117, %3079, %3042, %3023, %2985, %2792, %2776, %2487, %2461, %2424, %2405, %2367, %2153, %1986, %1817, %1798, %1789, %1777, %1740, %1723, %1694, %1675, %1637, %1612, %1595, %1585, %1576, %1562, %1522, %1503, %1463, %1444, %1435, %1377, %1358, %1318, %1299, %1290, %1242, %1226, %1207, %1188, %1153, %1134, %1096, %918, %899, %877, %876, %867, %819
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %45) #8
  br label %5946

5946:                                             ; preds = %5945, %807
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #8
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %44) #8
  br label %5947

5947:                                             ; preds = %5946, %803
  call void @llvm.lifetime.end.p0(i64 488, ptr %44) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  br label %5948

5948:                                             ; preds = %5947, %799
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #8
  br label %5950

5949:                                             ; preds = %5944, %784
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #8
  br label %5952

5950:                                             ; preds = %5948, %798
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %34) #8
  br label %5951

5951:                                             ; preds = %5950, %742
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #8
  br label %5953

5952:                                             ; preds = %5949, %725
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %16) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #8
  ret void

5953:                                             ; preds = %5951, %718, %709, %674, %655, %643, %608, %589, %549, %530, %518
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #8
  br label %5954

5954:                                             ; preds = %5953, %514
  call void @llvm.lifetime.end.p0(i64 88, ptr %16) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #8
  br label %5955

5955:                                             ; preds = %5954, %510
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #8
  br label %5956

5956:                                             ; preds = %5955
  %5957 = load ptr, ptr %14, align 8
  %5958 = load i32, ptr %15, align 4
  %5959 = insertvalue { ptr, i32 } poison, ptr %5957, 0
  %5960 = insertvalue { ptr, i32 } %5959, i32 %5958, 1
  resume { ptr, i32 } %5960

5961:                                             ; preds = %5919, %5876, %5846, %5748, %5680, %5589, %5491, %5434, %5249, %5196, %5169, %4942, %4760, %4710, %4626, %4510, %4410, %4281, %4198, %4143, %4084, %3991, %3901, %3817, %3733, %3641, %3547, %3488, %3430, %3364, %3305, %3208, %3124, %3030, %2934, %2875, %2728, %2659, %2590, %2475, %2412, %2316, %2257, %2100, %2041, %1943, %1874, %1805, %1711, %1682, %1625, %1510, %1451, %1365, %1306, %1141, %1081, %990, %887, %662, %596, %537
  unreachable
}

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

declare void @_ZN5Token14take_frag_itemEv(ptr dead_on_unwind writable sret(%"struct.AST::Named") align 8, ptr noundef nonnull align 8 dereferenceable(88)) #3

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind noalias writable sret(%"class.AST::Item") align 8, ptr noundef) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H10opt_externB5cxx11ER5TokenS0_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(176)) #0 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST5Trait13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(128)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(472) ptr @_ZN3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Impl3defEv(ptr noundef nonnull align 8 dereferenceable(472)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST7ImplDef13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(448)) #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488)) #1 align 2

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

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

declare void @_ZN3AST5Trait13set_is_markerEv(ptr noundef nonnull align 8 dereferenceable(128)) #3

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST10TraitAliasC2EOS0_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #5 align 2

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

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

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

declare void @_Z16Parse_MacroRulesR11TokenStream(ptr dead_on_unwind writable sret(%class.MacroRulesPtr) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #3

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

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

declare void @_Z25Parse_MacroRulesSingleArmR11TokenStream(ptr dead_on_unwind writable sret(%class.MacroRulesPtr) align 8, ptr noundef nonnull align 8 dereferenceable(176)) #3

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

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

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

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

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

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

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

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

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

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

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

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

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

declare void @_ZNK3AST9Attribute19parse_equals_stringB5cxx11ERKNS_5CrateERKNS_6ModuleE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(169), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(480)) #3

declare void @_Z14check_cfg_attrRKN3AST9AttributeE(ptr dead_on_unwind writable sret(%"class.std::vector.81") align 8, ptr noundef nonnull align 8 dereferenceable(169)) #3

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

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

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

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

declare void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(24)) #0

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H14check_item_cfgE_0RKS9_(ptr noundef nonnull align 8 dereferenceable(24)) #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #0 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)) #0

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256)) #1 align 2

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

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

declare void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef byval(%struct.ParseState) align 8) unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #1 align 2

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

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

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

declare void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST6ModuleC2EOS0_(ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(480)) unnamed_addr #6 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTS10eTokenType", !7, i64 0}
!15 = !{!16, !6, i64 0}
!16 = !{!"_ZTSSt16initializer_listI10eTokenTypeE", !6, i64 0, !17, i64 8}
!17 = !{!"long", !7, i64 0}
!18 = !{!16, !17, i64 8}
!19 = !{!20, !20, i64 0}
!20 = !{!"bool", !7, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}
!23 = !{!24, !24, i64 0}
!24 = !{!"_ZTS13TargetVersion", !7, i64 0}
!25 = distinct !{!25, !12}
!26 = !{!27, !20, i64 9}
!27 = !{!"_ZTS10MacroRules", !20, i64 8, !20, i64 9, !28, i64 16, !29, i64 24, !30, i64 32, !37, i64 40}
!28 = !{!"_ZTS8RcString", !6, i64 0}
!29 = !{!"_ZTSN3AST7EditionE", !7, i64 0}
!30 = !{!"_ZTSN5Ident7HygieneE", !31, i64 0}
!31 = !{!"_ZTSSt10unique_ptrIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !32, i64 0}
!32 = !{!"_ZTSSt15__uniq_ptr_dataIN5Ident7Hygiene5InnerESt14default_deleteIS2_ELb1ELb1EE", !33, i64 0}
!33 = !{!"_ZTSSt15__uniq_ptr_implIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !34, i64 0}
!34 = !{!"_ZTSSt5tupleIJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !35, i64 0}
!35 = !{!"_ZTSSt11_Tuple_implILm0EJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !36, i64 0}
!36 = !{!"_ZTSSt10_Head_baseILm0EPN5Ident7Hygiene5InnerELb0EE", !6, i64 0}
!37 = !{!"_ZTSSt6vectorI13MacroRulesArmSaIS0_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseI13MacroRulesArmSaIS0_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!41 = !{!42, !6, i64 8}
!42 = !{!"_ZTS10ParseState", !20, i64 0, !20, i64 1, !20, i64 2, !6, i64 8, !6, i64 16, !6, i64 24}
!43 = !{!42, !6, i64 16}
!44 = !{!45, !20, i64 0}
!45 = !{!"_ZTSN3AST6Module8FileInfoE", !20, i64 0, !20, i64 1, !46, i64 8, !46, i64 40}
!46 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !47, i64 0, !17, i64 8, !7, i64 16}
!47 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!48 = !{!49, !20, i64 104}
!49 = !{!"_ZTSN3AST6ModuleE", !50, i64 0, !55, i64 32, !59, i64 56, !63, i64 80, !45, i64 104, !20, i64 176, !7, i64 177, !67, i64 184, !67, i64 240, !67, i64 296, !67, i64 352, !72, i64 408, !76, i64 432, !80, i64 456}
!50 = !{!"_ZTSN3AST12AbsolutePathE", !28, i64 0, !51, i64 8}
!51 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !52, i64 0}
!52 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!55 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !56, i64 0}
!56 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!59 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!63 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !64, i64 0}
!64 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !65, i64 0}
!65 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !66, i64 0}
!66 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!67 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !68, i64 0}
!68 = !{!"_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, !17, i64 8, !69, i64 16, !17, i64 24, !70, i64 32, !6, i64 48}
!69 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!70 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !71, i64 0, !17, i64 8}
!71 = !{!"float", !7, i64 0}
!72 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!76 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!80 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !81, i64 0}
!81 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !82, i64 0}
!82 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !83, i64 0}
!83 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!84 = !{i64 0, i64 1, !19, i64 1, i64 1, !19, i64 2, i64 1, !19, i64 8, i64 8, !5, i64 16, i64 8, !5, i64 24, i64 8, !5}


; 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.helpers::path" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.AST::Visibility" = type <{ %"class.std::shared_ptr", %"class.std::shared_ptr.0", i32, [4 x i8] }>
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%class.Token = type { ptr, i32, %"class.Token::Data", %class.Position, %"class.Ident::Hygiene" }
%"class.Token::Data" = type { i32, %"union.Token::Data::DataUnion" }
%"union.Token::Data::DataUnion" = type { %"class.std::__cxx11::basic_string" }
%class.Position = type { %struct.Span, %class.RcString, i32, i32 }
%struct.Span = type { ptr }
%class.RcString = type { ptr }
%"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.4" }
%"struct.std::_Head_base.4" = type { ptr }
%"class.AST::HigherRankedBounds" = type { %"class.std::vector.76" }
%"class.std::vector.76" = type { %"struct.std::_Vector_base.77" }
%"struct.std::_Vector_base.77" = type { %"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::LifetimeParam, std::allocator<AST::LifetimeParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ProtoSpan = type { %struct.Span, %class.RcString, i32, i32 }
%class.TypeRef = type { %struct.Span, %class.TypeData }
%class.TypeData = type { i32, %"union.TypeData::DataUnion" }
%"union.TypeData::DataUnion" = type { %"struct.TypeData::Data_ErasedType", [32 x i8] }
%"struct.TypeData::Data_ErasedType" = type { %"class.std::vector.102", %"class.std::vector.102", %"class.std::vector.107" }
%"class.std::vector.102" = type { %"struct.std::_Vector_base.103" }
%"struct.std::_Vector_base.103" = type { %"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl" }
%"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl" = type { %"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Type_TraitPath, std::allocator<Type_TraitPath>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.107" = type { %"struct.std::_Vector_base.108" }
%"struct.std::_Vector_base.108" = type { %"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::LifetimeRef, std::allocator<AST::LifetimeRef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::GenericParams" = type { %"class.std::vector.112", %"class.std::vector.117" }
%"class.std::vector.112" = type { %"struct.std::_Vector_base.113" }
%"struct.std::_Vector_base.113" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericParam, std::allocator<AST::GenericParam>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.117" = type { %"struct.std::_Vector_base.118" }
%"struct.std::_Vector_base.118" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::GenericBound, std::allocator<AST::GenericBound>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Function" = type { %struct.Span, %"class.AST::GenericParams", %"class.AST::Expr", %class.TypeRef, %"class.std::vector.150", i8, %"class.std::__cxx11::basic_string", %"struct.AST::Function::Flags", [5 x i8], %"struct.AST::Function::Markings" }
%"class.AST::Expr" = type { %"class.std::shared_ptr.99" }
%"class.std::shared_ptr.99" = type { %"class.std::__shared_ptr.100" }
%"class.std::__shared_ptr.100" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.150" = type { %"struct.std::_Vector_base.151" }
%"struct.std::_Vector_base.151" = type { %"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Function::Arg, std::allocator<AST::Function::Arg>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Function::Flags" = type { i8, i8, i8 }
%"struct.AST::Function::Markings" = type <{ i32, i8, [3 x i8], %"class.std::vector.155", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%"class.std::vector.155" = type { %"struct.std::_Vector_base.156" }
%"struct.std::_Vector_base.156" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::TypeAlias" = type { %"class.AST::GenericParams", %"class.AST::GenericParams", %class.TypeRef }
%"class.AST::Struct" = type { %"class.AST::GenericParams", %"class.AST::StructData", %"struct.AST::Struct::Markings" }
%"class.AST::StructData" = type { i32, %"union.AST::StructData::DataUnion" }
%"union.AST::StructData::DataUnion" = type { %"struct.AST::StructData::Data_Tuple" }
%"struct.AST::StructData::Data_Tuple" = type { %"class.std::vector.162" }
%"class.std::vector.162" = type { %"struct.std::_Vector_base.163" }
%"struct.std::_Vector_base.163" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::TupleItem, std::allocator<AST::TupleItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Struct::Markings" = type { i32, i64, i64, i8, %class.U128, i8, %class.U128 }
%class.U128 = type { i64, i64 }
%"class.AST::Trait" = type { %"class.AST::GenericParams", %"class.std::vector.212", %"class.std::vector.217", i8, i8, %"class.std::vector.182" }
%"class.std::vector.212" = type { %"struct.std::_Vector_base.213" }
%"struct.std::_Vector_base.213" = type { %"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl" }
%"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Spanned<Type_TraitPath>, std::allocator<Spanned<Type_TraitPath>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.217" = type { %"struct.std::_Vector_base.218" }
%"struct.std::_Vector_base.218" = type { %"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl" }
%"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl" = type { %"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Spanned<AST::LifetimeRef>, std::allocator<Spanned<AST::LifetimeRef>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.182" = type { %"struct.std::_Vector_base.183" }
%"struct.std::_Vector_base.183" = type { %"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Named<AST::Item>, std::allocator<AST::Named<AST::Item>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.Spanned.226 = type { %struct.Span, %struct.Type_TraitPath }
%struct.Type_TraitPath = type { %"class.AST::HigherRankedBounds", %"class.std::unique_ptr.61" }
%"class.std::unique_ptr.61" = type { %"struct.std::__uniq_ptr_data.62" }
%"struct.std::__uniq_ptr_data.62" = type { %"class.std::__uniq_ptr_impl.63" }
%"class.std::__uniq_ptr_impl.63" = type { %"class.std::tuple.64" }
%"class.std::tuple.64" = type { %"struct.std::_Tuple_impl.65" }
%"struct.std::_Tuple_impl.65" = type { %"struct.std::_Head_base.68" }
%"struct.std::_Head_base.68" = type { ptr }
%"class.AST::Enum" = type { %"class.AST::GenericParams", %"class.std::vector.207", %"struct.AST::Enum::Markings" }
%"class.std::vector.207" = type { %"struct.std::_Vector_base.208" }
%"struct.std::_Vector_base.208" = type { %"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::EnumVariant, std::allocator<AST::EnumVariant>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Enum::Markings" = type <{ i32, i8, [3 x i8] }>
%"class.AST::Union" = type <{ %"class.AST::GenericParams", %"class.std::vector.167", %"struct.AST::Union::Markings", [4 x i8] }>
%"class.std::vector.167" = type { %"struct.std::_Vector_base.168" }
%"struct.std::_Vector_base.168" = type { %"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::StructItem, std::allocator<AST::StructItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Union::Markings" = type { i32 }
%"class.AST::Attribute" = type <{ %struct.Span, %"struct.AST::AttributeName", %class.TokenTree, i8, [7 x i8] }>
%"struct.AST::AttributeName" = type { %"class.std::vector.8" }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = 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.TokenTree = type { ptr, i32, %"class.Ident::Hygiene", %class.Token, %"class.std::vector.172" }
%"class.std::vector.172" = type { %"struct.std::_Vector_base.173" }
%"struct.std::_Vector_base.173" = type { %"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenTree, std::allocator<TokenTree>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.AST::Item" = type { i32, %"union.AST::Item::DataUnion" }
%"union.AST::Item::DataUnion" = type { %"class.AST::Module" }
%"class.AST::Module" = type { %"struct.AST::AbsolutePath", %"class.std::vector.13", %"class.std::vector.18", %"class.std::vector.23", %"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.33", %"class.std::vector.38", %"class.std::vector.43" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"class.std::vector.8" }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = 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.18" = type { %"struct.std::_Vector_base.19" }
%"struct.std::_Vector_base.19" = 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.23" = type { %"struct.std::_Vector_base.24" }
%"struct.std::_Vector_base.24" = 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.33" = type { %"struct.std::_Vector_base.34" }
%"struct.std::_Vector_base.34" = 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.38" = type { %"struct.std::_Vector_base.39" }
%"struct.std::_Vector_base.39" = 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.43" = type { %"struct.std::_Vector_base.44" }
%"struct.std::_Vector_base.44" = 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.AST::ExternBlock" = type { %"class.std::__cxx11::basic_string", %"class.std::vector.182", %"class.std::vector.187" }
%"class.std::vector.187" = type { %"struct.std::_Vector_base.188" }
%"struct.std::_Vector_base.188" = type { %"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::ExternBlock::Link, std::allocator<AST::ExternBlock::Link>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::UseItem" = type { %struct.Span, %"class.std::vector.177" }
%"class.std::vector.177" = type { %"struct.std::_Vector_base.178" }
%"struct.std::_Vector_base.178" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::UseItem::Ent, std::allocator<AST::UseItem::Ent>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.AST::Named" = type { %struct.Span, %"class.AST::AttributeList", %"class.AST::Visibility", %class.RcString, %"class.AST::Item" }
%"class.AST::AttributeList" = type { %"class.std::vector.81" }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl" = type { %"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" }
%"struct.std::_Vector_base<AST::Attribute, std::allocator<AST::Attribute>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"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.245 = type { ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.AST::MacroInvocation" = type <{ %struct.Span, %"class.AST::Path", %class.RcString, %class.TokenTree, i8, [7 x i8] }>
%"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.53", %"class.std::unique_ptr.61", %"class.std::vector.48" }
%"class.std::unique_ptr.53" = type { %"struct.std::__uniq_ptr_data.54" }
%"struct.std::__uniq_ptr_data.54" = type { %"class.std::__uniq_ptr_impl.55" }
%"class.std::__uniq_ptr_impl.55" = type { %"class.std::tuple.56" }
%"class.std::tuple.56" = type { %"struct.std::_Tuple_impl.57" }
%"struct.std::_Tuple_impl.57" = type { %"struct.std::_Head_base.60" }
%"struct.std::_Head_base.60" = type { ptr }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = 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.69", %"struct.AST::PathBinding.70" }
%"struct.AST::PathBinding" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Value" }
%"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.69" = 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.70" = type { %"struct.AST::AbsolutePath", %"class.AST::PathBinding_Macro" }
%"class.AST::PathBinding_Macro" = type { i32, %"union.AST::PathBinding_Macro::DataUnion" }
%"union.AST::PathBinding_Macro::DataUnion" = type { %"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" }
%"struct.AST::PathBinding_Macro::Data_ProcMacroDerive" = type { ptr, %class.RcString }
%"class.std::vector.122" = type { %"struct.std::_Vector_base.123" }
%"struct.std::_Vector_base.123" = type { %"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl" }
%"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl" = type { %"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl_data" }
%"struct.std::_Vector_base<eTokenType, std::allocator<eTokenType>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.124" = type { i8 }
%"class.std::allocator" = type { i8 }
%"struct.AST::Item::Data_Crate" = type { %class.RcString }
%"class.AST::Static" = type { i32, %class.TypeRef, %"class.AST::Expr", %"struct.AST::Static::Markings" }
%"struct.AST::Static::Markings" = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, [4 x i8] }>
%class.anon.246 = type { i8 }
%"class.AST::TraitAlias" = type { %"class.AST::GenericParams", %"class.std::vector.212" }
%"class.std::function.227" = type { %"class.std::_Function_base", ptr }
%class.anon.248 = type { ptr, ptr }
%class.MacroRulesPtr = type { ptr }
%"struct.Ident::ModPath" = type { %class.RcString, %"class.std::vector.8" }
%class.anon.283 = type { i8 }
%class.anon.285 = type { i8 }
%class.anon.287 = type { i8 }
%"class.std::basic_ifstream" = type { %"class.std::basic_istream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_istream.base" = type { ptr, i64 }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.289 }
%union.anon.289 = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%class.anon.290 = type { i8 }
%class.anon.292 = type { ptr, ptr }
%class.Lexer = type { %class.TokenStream, %class.RcString, i32, i32, %"class.std::unique_ptr.293", ptr, i8, %struct.Codepoint, %"class.std::vector.301", i32, %"class.Ident::Hygiene" }
%class.TokenStream = type { ptr, i8, %class.Token, %"class.Ident::Hygiene", i32, %"class.std::vector", %struct.ParseState }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseState = type { i8, i8, i8, ptr, ptr, ptr }
%"class.std::unique_ptr.293" = type { %"struct.std::__uniq_ptr_data.294" }
%"struct.std::__uniq_ptr_data.294" = type { %"class.std::__uniq_ptr_impl.295" }
%"class.std::__uniq_ptr_impl.295" = type { %"class.std::tuple.296" }
%"class.std::tuple.296" = type { %"struct.std::_Tuple_impl.297" }
%"struct.std::_Tuple_impl.297" = type { %"struct.std::_Head_base.300" }
%"struct.std::_Head_base.300" = type { ptr }
%struct.Codepoint = type { i32 }
%"class.std::vector.301" = type { %"struct.std::_Vector_base.302" }
%"struct.std::_Vector_base.302" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.anon.306 = type { i8 }
%class.anon.308 = type { ptr, ptr }

@.str = external hidden unnamed_addr constant [1 x i8], align 1
@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.1 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTIN10ParseError10UnexpectedE = external constant ptr
@.str.7 = external hidden unnamed_addr constant [24 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@_ZTIN12CompileError7GenericE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.10 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@gTargetVersion = external local_unnamed_addr global i32, align 4
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [17 x i8], align 1
@__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE = external hidden unnamed_addr constant [17 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15Parse_PublicityR11TokenStreamb(ptr dead_on_unwind noalias writable sret(%"class.AST::Visibility") align 8, ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) local_unnamed_addr #0

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

declare void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3

declare noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) local_unnamed_addr #3

declare i32 @__gxx_personality_v0(...)

declare void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

declare void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind writable sret(%"class.AST::Visibility") align 8) local_unnamed_addr #3

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #3

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

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #3

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) unnamed_addr #3

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #3

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

declare void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #0 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 #1 align 2

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #3

declare void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13Parse_HRB_OptR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::HigherRankedBounds") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

declare void @_ZNK11TokenStream10start_spanEv(ptr dead_on_unwind writable sret(%struct.ProtoSpan) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

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

declare void @_ZNK11TokenStream8end_spanE9ProtoSpan(ptr dead_on_unwind writable sret(%struct.Span) align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9ProtoSpanC2ERKS_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

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

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

declare void @_Z10Parse_TypeR11TokenStreamb(ptr dead_on_unwind writable sret(%class.TypeRef) align 8, ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext) local_unnamed_addr #3

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

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

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

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

declare void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(88), ptr noundef) unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::GenericParams") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind noalias writable sret(%"class.AST::Function") align 8, ptr noundef nonnull align 8 dereferenceable(176), i1 noundef zeroext, ptr noundef, i24) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15Parse_TypeAliasR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::TypeAlias") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z12Parse_StructR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::Struct") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST10VisibilityC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(36), ptr noundef nonnull align 8 dereferenceable(36)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST15MacroInvocationC2Ev(ptr noundef nonnull align 8 dereferenceable(393)) unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z25Parse_MacroInvocation_OptR11TokenStreamRN3AST15MacroInvocationE(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(393)) local_unnamed_addr #0

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4ItemC2Ev(ptr noundef nonnull align 8 dereferenceable(488)) unnamed_addr #0 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 #1 align 2

declare void @_Z10Parse_ExprR11TokenStream(ptr dead_on_unwind writable sret(%"class.AST::Expr") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST6StaticC2ENS0_5ClassE7TypeRefNS_4ExprE(ptr noundef nonnull align 8 dereferenceable(216), i32 noundef, ptr noundef, ptr noundef) unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488), ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind noalias writable sret(%"class.AST::Trait") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11get_spannedI14Type_TraitPathE7SpannedIT_ER11TokenStreamSt8functionIFS2_vEE(ptr dead_on_unwind noalias writable sret(%struct.Spanned.226) align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) local_unnamed_addr #0

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13Parse_EnumDefR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::Enum") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z11Parse_UnionR11TokenStreamRN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::Union") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

declare void @_ZN3AST13AttributeList9push_backENS_9AttributeE(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z14Parse_MetaItemR11TokenStream(ptr dead_on_unwind noalias writable sret(%"class.AST::Attribute") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK11TokenStream11get_editionEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z10Parse_ImplR11TokenStreamN3AST13AttributeListEb(ptr dead_on_unwind noalias writable sret(%"class.AST::Item") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef, i1 noundef zeroext) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z17Parse_ExternBlockR11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3AST13AttributeListE(ptr dead_on_unwind noalias writable sret(%"class.AST::ExternBlock") align 8, ptr noundef nonnull align 8 dereferenceable(176), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind noalias writable sret(%class.RcString) align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z9Parse_UseR11TokenStream(ptr dead_on_unwind noalias writable sret(%"struct.AST::UseItem") align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
define dso_local void @_Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE(ptr dead_on_unwind noalias writable sret(%"struct.AST::Named") align 8 %0, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(72) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef %4) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %6 = alloca %class.TraceLog, align 8
  %7 = alloca %"class.std::function", align 8
  %8 = alloca %class.anon.245, align 8
  %9 = alloca %class.Token, align 8
  %10 = alloca %class.Token, align 8
  %11 = alloca %class.Token, align 8
  %12 = alloca %class.Token, align 8
  %13 = alloca %class.Token, align 8
  %14 = alloca %"class.AST::Attribute", align 8
  %15 = alloca %class.Token, align 8
  %16 = alloca %class.Token, align 8
  %17 = alloca %class.Token, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca %struct.ProtoSpan, align 8
  %21 = alloca %"class.AST::MacroInvocation", align 8
  %22 = alloca %struct.Span, align 8
  %23 = alloca %struct.ProtoSpan, align 8
  %24 = alloca %"class.AST::AttributeList", align 8
  %25 = alloca %"class.AST::Visibility", align 8
  %26 = alloca %class.RcString, align 8
  %27 = alloca %"class.AST::Item", align 8
  %28 = alloca %"class.AST::MacroInvocation", align 8
  %29 = alloca %class.RcString, align 8
  %30 = alloca %"class.AST::Item", align 8
  %31 = alloca %"class.AST::Visibility", align 8
  %32 = alloca %class.Token, align 8
  %33 = alloca %"class.AST::Item", align 8
  %34 = alloca %"struct.AST::UseItem", align 8
  %35 = alloca %class.Token, align 8
  %36 = alloca %class.Token, align 8
  %37 = alloca %class.Token, align 8
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %class.Token, align 8
  %40 = alloca %class.Token, align 8
  %41 = alloca %class.Token, align 8
  %42 = alloca %"class.AST::Item", align 8
  %43 = alloca %"class.AST::Function", align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"struct.AST::Function::Flags", align 4
  %46 = alloca %class.RcString, align 8
  %47 = alloca %"class.AST::Item", align 8
  %48 = alloca %"class.AST::ExternBlock", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::vector.122", align 8
  %51 = alloca [2 x i32], align 4
  %52 = alloca %"class.std::allocator.124", align 1
  %53 = alloca %class.Token, align 8
  %54 = alloca %class.Token, align 8
  %55 = alloca %"class.AST::Item", align 8
  %56 = alloca %"class.AST::Function", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"struct.AST::Function::Flags", align 4
  %60 = alloca %class.RcString, align 8
  %61 = alloca %"class.AST::Item", align 8
  %62 = alloca %"class.AST::ExternBlock", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca %class.Token, align 8
  %66 = alloca %"class.AST::Item", align 8
  %67 = alloca %"struct.AST::Item::Data_Crate", align 8
  %68 = alloca %class.Token, align 8
  %69 = alloca %class.Token, align 8
  %70 = alloca %class.Token, align 8
  %71 = alloca %class.Token, align 8
  %72 = alloca %"class.AST::Item", align 8
  %73 = alloca %"struct.AST::Item::Data_Crate", align 8
  %74 = alloca %class.Token, align 8
  %75 = alloca %class.Token, align 8
  %76 = alloca %class.Token, align 8
  %77 = alloca %class.Token, align 8
  %78 = alloca %class.Token, align 8
  %79 = alloca %"class.AST::Item", align 8
  %80 = alloca %"struct.AST::Item::Data_Crate", align 8
  %81 = alloca %class.RcString, align 8
  %82 = alloca %class.Token, align 8
  %83 = alloca %"class.AST::Item", align 8
  %84 = alloca %"struct.AST::Item::Data_Crate", align 8
  %85 = alloca %"class.std::vector.122", align 8
  %86 = alloca [2 x i32], align 4
  %87 = alloca %"class.std::allocator.124", align 1
  %88 = alloca %class.Token, align 8
  %89 = alloca %class.Token, align 8
  %90 = alloca %"class.std::vector.122", align 8
  %91 = alloca [4 x i32], align 16
  %92 = alloca %"class.std::allocator.124", align 1
  %93 = alloca %class.Token, align 8
  %94 = alloca %class.Token, align 8
  %95 = alloca %class.RcString, align 8
  %96 = alloca %class.Token, align 8
  %97 = alloca %class.Token, align 8
  %98 = alloca %class.TypeRef, align 8
  %99 = alloca %class.Token, align 8
  %100 = alloca %class.Token, align 8
  %101 = alloca %"class.AST::Expr", align 8
  %102 = alloca %class.Token, align 8
  %103 = alloca %class.Token, align 8
  %104 = alloca %"class.AST::Item", align 8
  %105 = alloca %"class.AST::Static", align 8
  %106 = alloca %class.TypeRef, align 8
  %107 = alloca %"class.AST::Expr", align 8
  %108 = alloca %"class.std::__cxx11::basic_string", align 8
  %109 = alloca %class.Token, align 8
  %110 = alloca %class.Token, align 8
  %111 = alloca %class.Token, align 8
  %112 = alloca %class.Token, align 8
  %113 = alloca %"class.AST::Item", align 8
  %114 = alloca %"class.AST::Function", align 8
  %115 = alloca %"class.std::__cxx11::basic_string", align 8
  %116 = alloca %"struct.AST::Function::Flags", align 4
  %117 = alloca %"struct.AST::Function::Flags", align 1
  %118 = alloca %"class.std::__cxx11::basic_string", align 8
  %119 = alloca %class.Token, align 8
  %120 = alloca %"class.std::allocator", align 1
  %121 = alloca %class.Token, align 8
  %122 = alloca %class.Token, align 8
  %123 = alloca %class.Token, align 8
  %124 = alloca %class.Token, align 8
  %125 = alloca %"class.AST::Item", align 8
  %126 = alloca %"class.AST::Function", align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"struct.AST::Function::Flags", align 1
  %129 = alloca %class.Token, align 8
  %130 = alloca %class.Token, align 8
  %131 = alloca %"class.AST::Item", align 8
  %132 = alloca %"class.AST::Function", align 8
  %133 = alloca %"class.std::__cxx11::basic_string", align 8
  %134 = alloca %"class.std::allocator", align 1
  %135 = alloca %"struct.AST::Function::Flags", align 1
  %136 = alloca %"class.std::vector.122", align 8
  %137 = alloca [4 x i32], align 16
  %138 = alloca %"class.std::allocator.124", align 1
  %139 = alloca %class.Token, align 8
  %140 = alloca %class.Token, align 8
  %141 = alloca %class.Token, align 8
  %142 = alloca %class.RcString, align 8
  %143 = alloca %class.Token, align 8
  %144 = alloca %class.Token, align 8
  %145 = alloca %class.TypeRef, align 8
  %146 = alloca %class.Token, align 8
  %147 = alloca %class.Token, align 8
  %148 = alloca %"class.AST::Expr", align 8
  %149 = alloca %class.Token, align 8
  %150 = alloca %class.Token, align 8
  %151 = alloca %"class.AST::Item", align 8
  %152 = alloca %"class.AST::Static", align 8
  %153 = alloca %class.TypeRef, align 8
  %154 = alloca %"class.AST::Expr", align 8
  %155 = alloca %class.Token, align 8
  %156 = alloca %"class.std::__cxx11::basic_string", align 8
  %157 = alloca %"class.std::allocator", align 1
  %158 = alloca %class.Token, align 8
  %159 = alloca %class.Token, align 8
  %160 = alloca %class.Token, align 8
  %161 = alloca %class.Token, align 8
  %162 = alloca %class.Token, align 8
  %163 = alloca %class.Token, align 8
  %164 = alloca %"class.AST::Item", align 8
  %165 = alloca %"class.AST::Function", align 8
  %166 = alloca %"class.std::__cxx11::basic_string", align 8
  %167 = alloca %"struct.AST::Function::Flags", align 1
  %168 = alloca %class.Token, align 8
  %169 = alloca %class.Token, align 8
  %170 = alloca %"class.AST::Item", align 8
  %171 = alloca %"class.AST::Function", align 8
  %172 = alloca %"class.std::__cxx11::basic_string", align 8
  %173 = alloca %"class.std::allocator", align 1
  %174 = alloca %"struct.AST::Function::Flags", align 1
  %175 = alloca %class.Token, align 8
  %176 = alloca %class.Token, align 8
  %177 = alloca %"class.AST::Trait", align 8
  %178 = alloca %"class.AST::GenericParams", align 8
  %179 = alloca %"class.AST::Item", align 8
  %180 = alloca %"class.AST::Trait", align 8
  %181 = alloca %"class.AST::Item", align 8
  %182 = alloca %"class.AST::AttributeList", align 8
  %183 = alloca %struct.Span, align 8
  %184 = alloca %"class.std::function", align 8
  %185 = alloca %class.anon.246, align 1
  %186 = alloca %struct.Span, align 8
  %187 = alloca %"class.AST::AttributeList", align 8
  %188 = alloca %"class.AST::Visibility", align 8
  %189 = alloca %class.RcString, align 8
  %190 = alloca %"class.AST::Item", align 8
  %191 = alloca %class.Token, align 8
  %192 = alloca %class.Token, align 8
  %193 = alloca %class.Token, align 8
  %194 = alloca %class.Token, align 8
  %195 = alloca %"class.AST::Trait", align 8
  %196 = alloca %"class.AST::GenericParams", align 8
  %197 = alloca %"class.AST::Item", align 8
  %198 = alloca %"class.AST::Trait", align 8
  %199 = alloca %"class.std::vector.122", align 8
  %200 = alloca [3 x i32], align 4
  %201 = alloca %"class.std::allocator.124", align 1
  %202 = alloca %class.Token, align 8
  %203 = alloca %class.Token, align 8
  %204 = alloca %class.Token, align 8
  %205 = alloca %class.Token, align 8
  %206 = alloca %"class.AST::Item", align 8
  %207 = alloca %"class.AST::Function", align 8
  %208 = alloca %"class.std::__cxx11::basic_string", align 8
  %209 = alloca %"class.std::allocator", align 1
  %210 = alloca %"struct.AST::Function::Flags", align 1
  %211 = alloca %class.Token, align 8
  %212 = alloca %class.Token, align 8
  %213 = alloca %"class.AST::Item", align 8
  %214 = alloca %"class.AST::Function", align 8
  %215 = alloca %"class.std::__cxx11::basic_string", align 8
  %216 = alloca %"class.std::allocator", align 1
  %217 = alloca %"struct.AST::Function::Flags", align 4
  %218 = alloca %class.Token, align 8
  %219 = alloca %class.Token, align 8
  %220 = alloca %"class.AST::Item", align 8
  %221 = alloca %"class.AST::TypeAlias", align 8
  %222 = alloca %class.Token, align 8
  %223 = alloca %class.Token, align 8
  %224 = alloca %"class.AST::Item", align 8
  %225 = alloca %"class.AST::Struct", align 8
  %226 = alloca %class.Token, align 8
  %227 = alloca %class.Token, align 8
  %228 = alloca %"class.AST::Item", align 8
  %229 = alloca %"class.AST::Enum", align 8
  %230 = alloca %class.Token, align 8
  %231 = alloca %class.Token, align 8
  %232 = alloca %"class.AST::Item", align 8
  %233 = alloca %"class.AST::Union", align 8
  %234 = alloca %class.Token, align 8
  %235 = alloca %class.Token, align 8
  %236 = alloca %class.Token, align 8
  %237 = alloca %class.Token, align 8
  %238 = alloca %"class.AST::Trait", align 8
  %239 = alloca %"class.AST::GenericParams", align 8
  %240 = alloca %"class.AST::Item", align 8
  %241 = alloca %"class.AST::Trait", align 8
  %242 = alloca %struct.Span, align 8
  %243 = alloca %"class.AST::AttributeList", align 8
  %244 = alloca %"class.AST::Visibility", align 8
  %245 = alloca %class.RcString, align 8
  %246 = alloca %"class.AST::Item", align 8
  %247 = alloca %"class.AST::AttributeList", align 8
  %248 = alloca %class.Token, align 8
  %249 = alloca %class.Token, align 8
  %250 = alloca %"class.AST::GenericParams", align 8
  %251 = alloca %"class.AST::TraitAlias", align 8
  %252 = alloca %class.Token, align 8
  %253 = alloca %struct.ProtoSpan, align 8
  %254 = alloca %"class.AST::HigherRankedBounds", align 8
  %255 = alloca %struct.Spanned.226, align 8
  %256 = alloca %"class.std::function.227", align 8
  %257 = alloca %class.anon.248, align 8
  %258 = alloca %class.Token, align 8
  %259 = alloca %class.Token, align 8
  %260 = alloca %"class.AST::Item", align 8
  %261 = alloca %"class.AST::TraitAlias", align 8
  %262 = alloca %"class.AST::Item", align 8
  %263 = alloca %"class.AST::Trait", align 8
  %264 = alloca %"class.AST::GenericParams", align 8
  %265 = alloca %class.Token, align 8
  %266 = alloca %class.Token, align 8
  %267 = alloca %class.RcString, align 8
  %268 = alloca %class.MacroRulesPtr, align 8
  %269 = alloca %class.Token, align 8
  %270 = alloca %class.MacroRulesPtr, align 8
  %271 = alloca %class.MacroRulesPtr, align 8
  %272 = alloca %class.Token, align 8
  %273 = alloca %"struct.Ident::ModPath", align 8
  %274 = alloca %class.RcString, align 8
  %275 = alloca %"struct.Ident::ModPath", align 8
  %276 = alloca %"class.AST::Item", align 8
  %277 = alloca %class.MacroRulesPtr, align 8
  %278 = alloca %class.Token, align 8
  %279 = alloca %class.Token, align 8
  %280 = alloca %class.RcString, align 8
  %281 = alloca %"class.AST::Module", align 8
  %282 = alloca %"struct.AST::AbsolutePath", align 8
  %283 = alloca %class.RcString, align 8
  %284 = alloca %"class.std::__cxx11::basic_string", align 8
  %285 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %286 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %287 = alloca %"class.std::__cxx11::basic_string", align 8
  %288 = alloca %"class.std::vector.81", align 8
  %289 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %290 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %291 = alloca %"class.std::__cxx11::basic_string", align 8
  %292 = alloca %"class.helpers::path", align 8
  %293 = alloca %struct.Span, align 8
  %294 = alloca %"class.std::function", align 8
  %295 = alloca %class.anon.283, align 1
  %296 = alloca %"class.helpers::path", align 8
  %297 = alloca %"class.helpers::path", align 8
  %298 = alloca %"class.helpers::path", align 8
  %299 = alloca %"class.std::__cxx11::basic_string", align 8
  %300 = alloca %"class.helpers::path", align 8
  %301 = alloca %"class.helpers::path", align 8
  %302 = alloca %"class.std::__cxx11::basic_string", align 8
  %303 = alloca %"class.helpers::path", align 8
  %304 = alloca %"class.helpers::path", align 8
  %305 = alloca %"class.helpers::path", align 8
  %306 = alloca %"class.std::__cxx11::basic_string", align 8
  %307 = alloca %"class.std::__cxx11::basic_string", align 8
  %308 = alloca %class.Token, align 8
  %309 = alloca %"class.std::__cxx11::basic_string", align 8
  %310 = alloca %class.Token, align 8
  %311 = alloca %class.Token, align 8
  %312 = alloca %struct.Span, align 8
  %313 = alloca %"class.std::function", align 8
  %314 = alloca %class.anon.285, align 1
  %315 = alloca %"class.AST::Item", align 8
  %316 = alloca %struct.Span, align 8
  %317 = alloca %"class.std::function", align 8
  %318 = alloca %class.anon.287, align 1
  %319 = alloca %"class.std::__cxx11::basic_string", align 8
  %320 = alloca %"class.helpers::path", align 8
  %321 = alloca %"class.helpers::path", align 8
  %322 = alloca %"class.helpers::path", align 8
  %323 = alloca %"class.helpers::path", align 8
  %324 = alloca %"class.std::__cxx11::basic_string", align 8
  %325 = alloca %"class.std::__cxx11::basic_string", align 8
  %326 = alloca %"class.helpers::path", align 8
  %327 = alloca %"class.helpers::path", align 8
  %328 = alloca %"class.helpers::path", align 8
  %329 = alloca %"class.helpers::path", align 8
  %330 = alloca %"class.std::__cxx11::basic_string", align 8
  %331 = alloca %"class.std::basic_ifstream", align 8
  %332 = alloca %"class.std::basic_ifstream", align 8
  %333 = alloca %struct.Span, align 8
  %334 = alloca %"class.std::function", align 8
  %335 = alloca %class.anon.290, align 1
  %336 = alloca %struct.Span, align 8
  %337 = alloca %"class.std::function", align 8
  %338 = alloca %class.anon.292, align 8
  %339 = alloca %class.Lexer, align 8
  %340 = alloca %class.Token, align 8
  %341 = alloca %class.Token, align 8
  %342 = alloca %"class.std::__cxx11::basic_string", align 8
  %343 = alloca %"class.std::__cxx11::basic_string", align 8
  %344 = alloca %"class.helpers::path", align 8
  %345 = alloca %"class.std::basic_ifstream", align 8
  %346 = alloca %"class.std::__cxx11::basic_string", align 8
  %347 = alloca %"class.std::basic_ifstream", align 8
  %348 = alloca %struct.Span, align 8
  %349 = alloca %"class.std::function", align 8
  %350 = alloca %class.anon.306, align 1
  %351 = alloca %"class.std::__cxx11::basic_string", align 8
  %352 = alloca %struct.Span, align 8
  %353 = alloca %"class.std::function", align 8
  %354 = alloca %class.anon.308, align 8
  %355 = alloca %class.Lexer, align 8
  %356 = alloca %class.Token, align 8
  %357 = alloca %class.Token, align 8
  %358 = alloca %"class.std::__cxx11::basic_string", align 8
  %359 = alloca %"class.std::allocator", align 1
  %360 = alloca %"class.AST::Item", align 8
  %361 = alloca %"class.AST::Module", align 8
  %362 = alloca %struct.Span, align 8
  %363 = alloca %struct.ProtoSpan, align 8
  %364 = alloca %"class.AST::AttributeList", align 8
  %365 = alloca %"class.AST::Visibility", align 8
  %366 = alloca %class.RcString, align 8
  %367 = alloca %"class.AST::Item", align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #7
  %368 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %369 = select i1 %368, ptr @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %8) #7
  store ptr %3, ptr %8, align 8, !tbaa !5
  %370 = getelementptr inbounds i8, ptr %8, i64 8
  store ptr %4, ptr %370, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(16) %8) #7
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef %369, ptr noundef nonnull %7)
          to label %371 unwind label %402

371:                                              ; preds = %5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #7
  invoke void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %.preheader unwind label %404

.preheader:                                       ; preds = %371, %462
  %372 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %373 unwind label %.loopexit1502

373:                                              ; preds = %.preheader
  %374 = icmp eq i32 %372, 21
  br i1 %374, label %375, label %.critedge

375:                                              ; preds = %373
  %376 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 1)
          to label %377 unwind label %.loopexit1502

377:                                              ; preds = %375
  %378 = icmp eq i32 %376, 29
  br i1 %378, label %379, label %.critedge

379:                                              ; preds = %377
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %10) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %10, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %380 unwind label %406

380:                                              ; preds = %379
  %381 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %382 unwind label %408

382:                                              ; preds = %380
  %383 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %381)
  %.not1183 = icmp eq i32 %383, 21
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #7
  br i1 %.not1183, label %420, label %384

384:                                              ; preds = %382
  %385 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %386 unwind label %.loopexit.split-lp1503

386:                                              ; preds = %384
  br i1 %385, label %387, label %411

387:                                              ; preds = %386
  %388 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %388, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %390 unwind label %.loopexit.split-lp1503

390:                                              ; preds = %387
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull @.str.1)
          to label %392 unwind label %.loopexit.split-lp1503

392:                                              ; preds = %390
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef nonnull @.str.2)
          to label %394 unwind label %.loopexit.split-lp1503

394:                                              ; preds = %392
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %393, ptr noundef nonnull @.str.3)
          to label %396 unwind label %.loopexit.split-lp1503

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %395, i32 noundef 1814)
          to label %398 unwind label %.loopexit.split-lp1503

398:                                              ; preds = %396
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %397, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %400 unwind label %.loopexit.split-lp1503

400:                                              ; preds = %398
  %401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %399, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %411 unwind label %.loopexit.split-lp1503

402:                                              ; preds = %5
  %403 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) #7
  br label %3673

404:                                              ; preds = %371
  %405 = landingpad { ptr, i32 }
          cleanup
  br label %3672

.loopexit1502:                                    ; preds = %.preheader, %375, %457
  %lpad.loopexit1504 = landingpad { ptr, i32 }
          cleanup
  br label %3671

.loopexit.split-lp1503:                           ; preds = %384, %387, %390, %392, %394, %396, %398, %400, %425, %428, %431, %433, %435, %437, %439, %441, %464, %467, %470, %472, %474, %476, %478, %480, %.critedge, %504
  %lpad.loopexit.split-lp1505 = landingpad { ptr, i32 }
          cleanup
  br label %3671

406:                                              ; preds = %379
  %407 = landingpad { ptr, i32 }
          cleanup
  br label %410

408:                                              ; preds = %380
  %409 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #7
  br label %410

410:                                              ; preds = %408, %406
  %.pn1181 = phi { ptr, i32 } [ %409, %408 ], [ %407, %406 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #7
  br label %3671

411:                                              ; preds = %400, %386
  %412 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %11, i32 noundef 21)
          to label %413 unwind label %.thread

413:                                              ; preds = %411
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %412, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %11)
          to label %415 unwind label %.thread1210

.thread1210:                                      ; preds = %413
  %414 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #7
  br label %419

415:                                              ; preds = %413
  invoke void @__cxa_throw(ptr nonnull %412, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %417

.thread:                                          ; preds = %411
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %419

417:                                              ; preds = %415
  %418 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #7
  br label %3671

419:                                              ; preds = %.thread1210, %.thread
  %.pn11941209 = phi { ptr, i32 } [ %416, %.thread ], [ %414, %.thread1210 ]
  call void @__cxa_free_exception(ptr %412) #7
  br label %3671

420:                                              ; preds = %382
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %12) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %12, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %421 unwind label %443

421:                                              ; preds = %420
  %422 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %12)
          to label %423 unwind label %445

423:                                              ; preds = %421
  %424 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %422)
  %.not1186 = icmp eq i32 %424, 29
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #7
  br i1 %.not1186, label %457, label %425

425:                                              ; preds = %423
  %426 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %427 unwind label %.loopexit.split-lp1503

427:                                              ; preds = %425
  br i1 %426, label %428, label %448

428:                                              ; preds = %427
  %429 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %429, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %431 unwind label %.loopexit.split-lp1503

431:                                              ; preds = %428
  %432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %430, ptr noundef nonnull @.str.1)
          to label %433 unwind label %.loopexit.split-lp1503

433:                                              ; preds = %431
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %432, ptr noundef nonnull @.str.2)
          to label %435 unwind label %.loopexit.split-lp1503

435:                                              ; preds = %433
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef nonnull @.str.3)
          to label %437 unwind label %.loopexit.split-lp1503

437:                                              ; preds = %435
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %436, i32 noundef 1815)
          to label %439 unwind label %.loopexit.split-lp1503

439:                                              ; preds = %437
  %440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %438, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %441 unwind label %.loopexit.split-lp1503

441:                                              ; preds = %439
  %442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %448 unwind label %.loopexit.split-lp1503

443:                                              ; preds = %420
  %444 = landingpad { ptr, i32 }
          cleanup
  br label %447

445:                                              ; preds = %421
  %446 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #7
  br label %447

447:                                              ; preds = %445, %443
  %.pn1184 = phi { ptr, i32 } [ %446, %445 ], [ %444, %443 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #7
  br label %3671

448:                                              ; preds = %441, %427
  %449 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %13, i32 noundef 29)
          to label %450 unwind label %.thread1212

450:                                              ; preds = %448
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %449, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %13)
          to label %452 unwind label %.thread1216

.thread1216:                                      ; preds = %450
  %451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #7
  br label %456

452:                                              ; preds = %450
  invoke void @__cxa_throw(ptr nonnull %449, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %454

.thread1212:                                      ; preds = %448
  %453 = landingpad { ptr, i32 }
          cleanup
  br label %456

454:                                              ; preds = %452
  %455 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #7
  br label %3671

456:                                              ; preds = %.thread1216, %.thread1212
  %.pn11921215 = phi { ptr, i32 } [ %453, %.thread1212 ], [ %451, %.thread1216 ]
  call void @__cxa_free_exception(ptr %449) #7
  br label %3671

457:                                              ; preds = %423
  invoke void @_Z14Parse_MetaItemR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::Attribute") align 8 %14, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %458 unwind label %.loopexit1502

458:                                              ; preds = %457
  invoke void @_ZN3AST13AttributeList9push_backENS_9AttributeE(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %14)
          to label %459 unwind label %482

459:                                              ; preds = %458
  call void @_ZN3AST9AttributeD2Ev(ptr noundef nonnull align 8 dereferenceable(169) %14) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %15) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %15, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %460 unwind label %484

460:                                              ; preds = %459
  %461 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %15)
          to label %462 unwind label %486

462:                                              ; preds = %460
  %463 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %461)
  %.not1189 = icmp eq i32 %463, 30
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %15) #7
  br i1 %.not1189, label %.preheader, label %464, !llvm.loop !11

464:                                              ; preds = %462
  %465 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %466 unwind label %.loopexit.split-lp1503

466:                                              ; preds = %464
  br i1 %465, label %467, label %489

467:                                              ; preds = %466
  %468 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %469 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %468, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %470 unwind label %.loopexit.split-lp1503

470:                                              ; preds = %467
  %471 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %469, ptr noundef nonnull @.str.1)
          to label %472 unwind label %.loopexit.split-lp1503

472:                                              ; preds = %470
  %473 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %471, ptr noundef nonnull @.str.2)
          to label %474 unwind label %.loopexit.split-lp1503

474:                                              ; preds = %472
  %475 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %473, ptr noundef nonnull @.str.3)
          to label %476 unwind label %.loopexit.split-lp1503

476:                                              ; preds = %474
  %477 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %475, i32 noundef 1817)
          to label %478 unwind label %.loopexit.split-lp1503

478:                                              ; preds = %476
  %479 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %477, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %480 unwind label %.loopexit.split-lp1503

480:                                              ; preds = %478
  %481 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %479, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %489 unwind label %.loopexit.split-lp1503

482:                                              ; preds = %458
  %483 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST9AttributeD2Ev(ptr noundef nonnull align 8 dereferenceable(169) %14) #7
  br label %3671

484:                                              ; preds = %459
  %485 = landingpad { ptr, i32 }
          cleanup
  br label %488

486:                                              ; preds = %460
  %487 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #7
  br label %488

488:                                              ; preds = %486, %484
  %.pn1187 = phi { ptr, i32 } [ %487, %486 ], [ %485, %484 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %15) #7
  br label %3671

489:                                              ; preds = %480, %466
  %490 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %16, i32 noundef 30)
          to label %491 unwind label %.thread1218

491:                                              ; preds = %489
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %490, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %16)
          to label %493 unwind label %.thread1222

.thread1222:                                      ; preds = %491
  %492 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #7
  br label %497

493:                                              ; preds = %491
  invoke void @__cxa_throw(ptr nonnull %490, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %495

.thread1218:                                      ; preds = %489
  %494 = landingpad { ptr, i32 }
          cleanup
  br label %497

495:                                              ; preds = %493
  %496 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %16) #7
  br label %3671

497:                                              ; preds = %.thread1222, %.thread1218
  %.pn11901221 = phi { ptr, i32 } [ %494, %.thread1218 ], [ %492, %.thread1222 ]
  call void @__cxa_free_exception(ptr %490) #7
  br label %3671

.critedge:                                        ; preds = %373, %377
  %498 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %499 unwind label %.loopexit.split-lp1503

499:                                              ; preds = %.critedge
  %500 = icmp eq i32 %498, 12
  br i1 %500, label %501, label %523

501:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %17) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %17, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %502 unwind label %511

502:                                              ; preds = %501
  %503 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %17)
          to label %504 unwind label %513

504:                                              ; preds = %502
  %505 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %503)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #7
  invoke void @_ZN5Token14take_frag_itemEv(ptr dead_on_unwind writable sret(%"struct.AST::Named") align 8 %0, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %506 unwind label %.loopexit.split-lp1503

506:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  %507 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  store ptr %507, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  %508 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  store ptr %508, ptr %19, align 8
  %509 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br i1 %509, label %.lr.ph1511, label %._crit_edge1512

.lr.ph1511:                                       ; preds = %506
  %510 = getelementptr inbounds i8, ptr %0, i64 8
  br label %516

._crit_edge1512:                                  ; preds = %518, %506
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br label %3670

511:                                              ; preds = %501
  %512 = landingpad { ptr, i32 }
          cleanup
  br label %515

513:                                              ; preds = %502
  %514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %17) #7
  br label %515

515:                                              ; preds = %513, %511
  %.pn1179 = phi { ptr, i32 } [ %514, %513 ], [ %512, %511 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %17) #7
  br label %3671

516:                                              ; preds = %.lr.ph1511, %518
  %517 = call noundef nonnull align 8 dereferenceable(169) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  invoke void @_ZNSt6vectorIN3AST9AttributeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24) %510, ptr noundef nonnull align 8 dereferenceable(169) %517)
          to label %518 unwind label %521

518:                                              ; preds = %516
  %519 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  %520 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br i1 %520, label %516, label %._crit_edge1512

521:                                              ; preds = %516
  %522 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  call void @_ZN3AST5NamedINS_4ItemEED2Ev(ptr noundef nonnull align 8 dereferenceable(568) %0) #7
  br label %3671

523:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20) #7
  invoke void @_ZNK11TokenStream10start_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.ProtoSpan) align 8 %20, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %524 unwind label %536

524:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 400, ptr nonnull %21) #7
  invoke void @_ZN3AST15MacroInvocationC2Ev(ptr noundef nonnull align 8 dereferenceable(393) %21)
          to label %525 unwind label %538

525:                                              ; preds = %524
  %526 = invoke noundef zeroext i1 @_Z25Parse_MacroInvocation_OptR11TokenStreamRN3AST15MacroInvocationE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(393) %21)
          to label %527 unwind label %540

527:                                              ; preds = %525
  br i1 %526, label %528, label %559

528:                                              ; preds = %527
  invoke void @_ZN9ProtoSpanC2ERKS_(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %529 unwind label %540

529:                                              ; preds = %528
  invoke void @_ZNK11TokenStream8end_spanE9ProtoSpan(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %22, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %23)
          to label %530 unwind label %542

530:                                              ; preds = %529
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  invoke void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.AST::Visibility") align 8 %25)
          to label %531 unwind label %544

531:                                              ; preds = %530
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %26, ptr noundef nonnull @.str)
          to label %532 unwind label %546

532:                                              ; preds = %531
  invoke void @_ZN3AST15MacroInvocationC2EOS0_(ptr noundef nonnull align 8 dereferenceable(393) %28, ptr noundef nonnull align 8 dereferenceable(393) %21)
          to label %533 unwind label %548

533:                                              ; preds = %532
  invoke void @_ZN3AST4ItemC2ENS_15MacroInvocationE(ptr noundef nonnull align 8 dereferenceable(488) %27, ptr noundef nonnull %28)
          to label %534 unwind label %550

534:                                              ; preds = %533
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %22, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull %27)
          to label %535 unwind label %552

535:                                              ; preds = %534
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %27) #7
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %28) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %25) #7
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %21) #7
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %21) #7
  br label %3667

536:                                              ; preds = %523
  %537 = landingpad { ptr, i32 }
          cleanup
  br label %3669

538:                                              ; preds = %524
  %539 = landingpad { ptr, i32 }
          cleanup
  br label %567

540:                                              ; preds = %528, %525
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %566

542:                                              ; preds = %529
  %543 = landingpad { ptr, i32 }
          cleanup
  br label %558

544:                                              ; preds = %530
  %545 = landingpad { ptr, i32 }
          cleanup
  br label %557

546:                                              ; preds = %531
  %547 = landingpad { ptr, i32 }
          cleanup
  br label %556

548:                                              ; preds = %532
  %549 = landingpad { ptr, i32 }
          cleanup
  br label %555

550:                                              ; preds = %533
  %551 = landingpad { ptr, i32 }
          cleanup
  br label %554

552:                                              ; preds = %534
  %553 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %27) #7
  br label %554

554:                                              ; preds = %552, %550
  %.pn = phi { ptr, i32 } [ %553, %552 ], [ %551, %550 ]
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %28) #7
  br label %555

555:                                              ; preds = %554, %548
  %.pn.pn = phi { ptr, i32 } [ %.pn, %554 ], [ %549, %548 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #7
  br label %556

556:                                              ; preds = %555, %546
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %555 ], [ %547, %546 ]
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %25) #7
  br label %557

557:                                              ; preds = %556, %544
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %556 ], [ %545, %544 ]
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #7
  br label %558

558:                                              ; preds = %557, %542
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %557 ], [ %543, %542 ]
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %23) #7
  br label %566

559:                                              ; preds = %527
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %21) #7
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %21) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #7
  call void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %30) #7
  invoke void @_ZN3AST4ItemC2Ev(ptr noundef nonnull align 8 dereferenceable(488) %30)
          to label %560 unwind label %568

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #7
  invoke void @_Z15Parse_PublicityR11TokenStreamb(ptr dead_on_unwind nonnull writable sret(%"class.AST::Visibility") align 8 %31, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext true)
          to label %561 unwind label %570

561:                                              ; preds = %560
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %32) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %32, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %562 unwind label %572

562:                                              ; preds = %561
  %563 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %32)
          to label %564 unwind label %574

564:                                              ; preds = %562
  %565 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %563)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %32) #7
  switch i32 %565, label %3649 [
    i32 89, label %577
    i32 82, label %628
    i32 79, label %1110
    i32 80, label %1558
    i32 81, label %1732
    i32 122, label %2138
    i32 88, label %2234
    i32 91, label %2292
    i32 85, label %2346
    i32 86, label %2400
    i32 14, label %2454
    i32 90, label %2625
    i32 87, label %2641
    i32 114, label %2782
    i32 84, label %2926
  ]

566:                                              ; preds = %558, %540
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %558 ], [ %541, %540 ]
  call void @_ZN3AST15MacroInvocationD2Ev(ptr noundef nonnull align 8 dereferenceable(393) %21) #7
  br label %567

567:                                              ; preds = %566, %538
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %566 ], [ %539, %538 ]
  call void @llvm.lifetime.end.p0(i64 400, ptr nonnull %21) #7
  br label %3668

568:                                              ; preds = %559
  %569 = landingpad { ptr, i32 }
          cleanup
  br label %3666

570:                                              ; preds = %560
  %571 = landingpad { ptr, i32 }
          cleanup
  br label %3665

572:                                              ; preds = %561
  %573 = landingpad { ptr, i32 }
          cleanup
  br label %576

574:                                              ; preds = %562
  %575 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #7
  br label %576

576:                                              ; preds = %574, %572
  %.pn710 = phi { ptr, i32 } [ %575, %574 ], [ %573, %572 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %32) #7
  br label %3664

577:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %33) #7
  invoke void @_Z9Parse_UseR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"struct.AST::UseItem") align 8 %34, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %578 unwind label %604

578:                                              ; preds = %577
  invoke void @_ZN3AST4ItemC2ENS_7UseItemE(ptr noundef nonnull align 8 dereferenceable(488) %33, ptr noundef nonnull %34)
          to label %579 unwind label %606

579:                                              ; preds = %578
  %580 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %33)
          to label %581 unwind label %608

581:                                              ; preds = %579
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %33) #7
  call void @_ZN3AST7UseItemD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %35) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %35, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %582 unwind label %612

582:                                              ; preds = %581
  %583 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %35)
          to label %584 unwind label %614

584:                                              ; preds = %582
  %585 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %583)
  %.not1168 = icmp eq i32 %585, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %35) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %35) #7
  br i1 %.not1168, label %3654, label %586

586:                                              ; preds = %584
  %587 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %588 unwind label %617

588:                                              ; preds = %586
  br i1 %587, label %589, label %619

589:                                              ; preds = %588
  %590 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %591 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %590, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %592 unwind label %617

592:                                              ; preds = %589
  %593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %591, ptr noundef nonnull @.str.1)
          to label %594 unwind label %617

594:                                              ; preds = %592
  %595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %593, ptr noundef nonnull @.str.2)
          to label %596 unwind label %617

596:                                              ; preds = %594
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %595, ptr noundef nonnull @.str.3)
          to label %598 unwind label %617

598:                                              ; preds = %596
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %597, i32 noundef 1848)
          to label %600 unwind label %617

600:                                              ; preds = %598
  %601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %602 unwind label %617

602:                                              ; preds = %600
  %603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %601, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %619 unwind label %617

604:                                              ; preds = %577
  %605 = landingpad { ptr, i32 }
          cleanup
  br label %611

606:                                              ; preds = %578
  %607 = landingpad { ptr, i32 }
          cleanup
  br label %610

608:                                              ; preds = %579
  %609 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %33) #7
  br label %610

610:                                              ; preds = %608, %606
  %.pn1163 = phi { ptr, i32 } [ %609, %608 ], [ %607, %606 ]
  call void @_ZN3AST7UseItemD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %611

611:                                              ; preds = %610, %604
  %.pn1163.pn = phi { ptr, i32 } [ %.pn1163, %610 ], [ %605, %604 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %33) #7
  br label %3664

612:                                              ; preds = %581
  %613 = landingpad { ptr, i32 }
          cleanup
  br label %616

614:                                              ; preds = %582
  %615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %35) #7
  br label %616

616:                                              ; preds = %614, %612
  %.pn1166 = phi { ptr, i32 } [ %615, %614 ], [ %613, %612 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %35) #7
  br label %3664

617:                                              ; preds = %.invoke, %3654, %2947, %2945, %2943, %2941, %2939, %2937, %2934, %2931, %2806, %2804, %2802, %2800, %2798, %2796, %2793, %2790, %2678, %2662, %2660, %2658, %2656, %2654, %2652, %2649, %2646, %2597, %2581, %2579, %2577, %2575, %2573, %2571, %2568, %2565, %2544, %2542, %2540, %2538, %2536, %2534, %2531, %2528, %2519, %2517, %2497, %2481, %2479, %2477, %2475, %2473, %2471, %2468, %2465, %2456, %2454, %2437, %2421, %2419, %2417, %2415, %2413, %2411, %2408, %2405, %2383, %2367, %2365, %2363, %2361, %2359, %2357, %2354, %2351, %2329, %2313, %2311, %2309, %2307, %2305, %2303, %2300, %2297, %2271, %2255, %2253, %2251, %2249, %2247, %2245, %2242, %2239, %2212, %2196, %2194, %2192, %2190, %2188, %2186, %2183, %2180, %2159, %2157, %2155, %2153, %2151, %2149, %2146, %2143, %2104, %2088, %2086, %2084, %2082, %2080, %2078, %2075, %2072, %2051, %2049, %2047, %2045, %2043, %2041, %2038, %2035, %2026, %2024, %1961, %1945, %1943, %1941, %1939, %1937, %1935, %1932, %1929, %1902, %1886, %1884, %1882, %1880, %1878, %1876, %1873, %1870, %1528, %1512, %1510, %1508, %1506, %1504, %1502, %1499, %1496, %1145, %1143, %1141, %1139, %1137, %1135, %1132, %1129, %1120, %1086, %1084, %1082, %1080, %1078, %1076, %1073, %1070, %1043, %1015, %1010, %994, %992, %990, %988, %986, %984, %981, %978, %949, %947, %945, %943, %941, %939, %936, %933, %917, %901, %899, %897, %895, %893, %891, %888, %885, %856, %854, %852, %850, %848, %846, %843, %840, %779, %763, %761, %759, %757, %755, %753, %750, %747, %602, %600, %598, %596, %594, %592, %589, %586
  %618 = landingpad { ptr, i32 }
          cleanup
  br label %3664

619:                                              ; preds = %602, %588
  %620 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %36, i32 noundef 32)
          to label %621 unwind label %.thread1224

621:                                              ; preds = %619
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %620, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %36)
          to label %623 unwind label %.thread1228

.thread1228:                                      ; preds = %621
  %622 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #7
  br label %627

623:                                              ; preds = %621
  invoke void @__cxa_throw(ptr nonnull %620, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %625

.thread1224:                                      ; preds = %619
  %624 = landingpad { ptr, i32 }
          cleanup
  br label %627

625:                                              ; preds = %623
  %626 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #7
  br label %3664

627:                                              ; preds = %.thread1228, %.thread1224
  %.pn11711227 = phi { ptr, i32 } [ %624, %.thread1224 ], [ %622, %.thread1228 ]
  call void @__cxa_free_exception(ptr %620) #7
  br label %3664

628:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %37) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %37, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %629 unwind label %633

629:                                              ; preds = %628
  %630 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %37)
          to label %631 unwind label %635

631:                                              ; preds = %629
  %632 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %630)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %37) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %37) #7
  switch i32 %632, label %1102 [
    i32 19, label %638
    i32 88, label %742
    i32 25, label %800
    i32 83, label %821
  ]

633:                                              ; preds = %628
  %634 = landingpad { ptr, i32 }
          cleanup
  br label %637

635:                                              ; preds = %629
  %636 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %37) #7
  br label %637

637:                                              ; preds = %635, %633
  %.pn1087 = phi { ptr, i32 } [ %636, %635 ], [ %634, %633 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %37) #7
  br label %3664

638:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %38) #7
  %639 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %640 unwind label %646

640:                                              ; preds = %638
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef nonnull align 8 dereferenceable(32) %639)
          to label %641 unwind label %646

641:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %39) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %39, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %642 unwind label %648

642:                                              ; preds = %641
  %643 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %39)
          to label %644 unwind label %650

644:                                              ; preds = %642
  %645 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %643)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %39) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %39) #7
  switch i32 %645, label %730 [
    i32 88, label %653
    i32 25, label %713
  ]

646:                                              ; preds = %640, %638
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %741

648:                                              ; preds = %641
  %649 = landingpad { ptr, i32 }
          cleanup
  br label %652

650:                                              ; preds = %642
  %651 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %39) #7
  br label %652

652:                                              ; preds = %650, %648
  %.pn1143 = phi { ptr, i32 } [ %651, %650 ], [ %649, %648 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %39) #7
  br label %740

653:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %40) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %40, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %654 unwind label %676

654:                                              ; preds = %653
  %655 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %40)
          to label %656 unwind label %678

656:                                              ; preds = %654
  %657 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %655)
  %.not1150 = icmp eq i32 %657, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %40) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %40) #7
  br i1 %.not1150, label %692, label %658

658:                                              ; preds = %656
  %659 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %660 unwind label %681

660:                                              ; preds = %658
  br i1 %659, label %661, label %683

661:                                              ; preds = %660
  %662 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %662, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %664 unwind label %681

664:                                              ; preds = %661
  %665 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef nonnull @.str.1)
          to label %666 unwind label %681

666:                                              ; preds = %664
  %667 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %665, ptr noundef nonnull @.str.2)
          to label %668 unwind label %681

668:                                              ; preds = %666
  %669 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %667, ptr noundef nonnull @.str.3)
          to label %670 unwind label %681

670:                                              ; preds = %668
  %671 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %669, i32 noundef 1862)
          to label %672 unwind label %681

672:                                              ; preds = %670
  %673 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %671, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %674 unwind label %681

674:                                              ; preds = %672
  %675 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %673, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %683 unwind label %681

676:                                              ; preds = %653
  %677 = landingpad { ptr, i32 }
          cleanup
  br label %680

678:                                              ; preds = %654
  %679 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %40) #7
  br label %680

680:                                              ; preds = %678, %676
  %.pn1148 = phi { ptr, i32 } [ %679, %678 ], [ %677, %676 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %40) #7
  br label %740

681:                                              ; preds = %692, %674, %672, %670, %668, %666, %664, %661, %658
  %682 = landingpad { ptr, i32 }
          cleanup
  br label %740

683:                                              ; preds = %674, %660
  %684 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %41, i32 noundef 14)
          to label %685 unwind label %.thread1230

685:                                              ; preds = %683
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %684, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %41)
          to label %687 unwind label %.thread1234

.thread1234:                                      ; preds = %685
  %686 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #7
  br label %691

687:                                              ; preds = %685
  invoke void @__cxa_throw(ptr nonnull %684, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %689

.thread1230:                                      ; preds = %683
  %688 = landingpad { ptr, i32 }
          cleanup
  br label %691

689:                                              ; preds = %687
  %690 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #7
  br label %740

691:                                              ; preds = %.thread1234, %.thread1230
  %.pn11551233 = phi { ptr, i32 } [ %688, %.thread1230 ], [ %686, %.thread1234 ]
  call void @__cxa_free_exception(ptr %684) #7
  br label %740

692:                                              ; preds = %656
  %693 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %694 unwind label %681

694:                                              ; preds = %692
  %695 = getelementptr inbounds i8, ptr %693, i64 8
  %696 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %695)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %42) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %38)
          to label %697 unwind label %702

697:                                              ; preds = %694
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %45)
  %.0.copyload93 = load i24, ptr %45, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %43, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %44, i24 %.0.copyload93)
          to label %698 unwind label %704

698:                                              ; preds = %697
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %42, ptr noundef nonnull %43)
          to label %699 unwind label %706

699:                                              ; preds = %698
  %700 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %42)
          to label %701 unwind label %708

701:                                              ; preds = %699
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %42) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %43) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %42) #7
  br label %739

702:                                              ; preds = %694
  %703 = landingpad { ptr, i32 }
          cleanup
  br label %712

704:                                              ; preds = %697
  %705 = landingpad { ptr, i32 }
          cleanup
  br label %711

706:                                              ; preds = %698
  %707 = landingpad { ptr, i32 }
          cleanup
  br label %710

708:                                              ; preds = %699
  %709 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %42) #7
  br label %710

710:                                              ; preds = %708, %706
  %.pn1151 = phi { ptr, i32 } [ %709, %708 ], [ %707, %706 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %43) #7
  br label %711

711:                                              ; preds = %710, %704
  %.pn1151.pn = phi { ptr, i32 } [ %.pn1151, %710 ], [ %705, %704 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #7
  br label %712

712:                                              ; preds = %711, %702
  %.pn1151.pn.pn = phi { ptr, i32 } [ %.pn1151.pn, %711 ], [ %703, %702 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %42) #7
  br label %740

713:                                              ; preds = %644
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #7
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull @.str)
          to label %714 unwind label %720

714:                                              ; preds = %713
  %715 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %46)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %47) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  invoke void @_Z17Parse_ExternBlockR11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3AST13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.AST::ExternBlock") align 8 %48, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %49, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %716 unwind label %722

716:                                              ; preds = %714
  invoke void @_ZN3AST4ItemC2ENS_11ExternBlockE(ptr noundef nonnull align 8 dereferenceable(488) %47, ptr noundef nonnull %48)
          to label %717 unwind label %724

717:                                              ; preds = %716
  %718 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %47)
          to label %719 unwind label %726

719:                                              ; preds = %717
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %47) #7
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %48) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %47) #7
  br label %739

720:                                              ; preds = %713
  %721 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #7
  br label %740

722:                                              ; preds = %714
  %723 = landingpad { ptr, i32 }
          cleanup
  br label %729

724:                                              ; preds = %716
  %725 = landingpad { ptr, i32 }
          cleanup
  br label %728

726:                                              ; preds = %717
  %727 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %47) #7
  br label %728

728:                                              ; preds = %726, %724
  %.pn1145 = phi { ptr, i32 } [ %727, %726 ], [ %725, %724 ]
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %48) #7
  br label %729

729:                                              ; preds = %728, %722
  %.pn1145.pn = phi { ptr, i32 } [ %.pn1145, %728 ], [ %723, %722 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %47) #7
  br label %740

730:                                              ; preds = %644
  %731 = call ptr @__cxa_allocate_exception(i64 96) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #7
  store i32 88, ptr %51, align 4, !tbaa !13
  %732 = getelementptr inbounds i8, ptr %51, i64 4
  store i32 25, ptr %732, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #7
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %50, ptr nonnull %51, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %733 unwind label %.thread1236

733:                                              ; preds = %730
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %731, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %50)
          to label %734 unwind label %736

734:                                              ; preds = %733
  invoke void @__cxa_throw(ptr nonnull %731, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %736

.thread1236:                                      ; preds = %730
  %735 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  br label %738

736:                                              ; preds = %733, %734
  %.0647 = phi i1 [ false, %734 ], [ true, %733 ]
  %737 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %50) #7
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #7
  br i1 %.0647, label %738, label %740

738:                                              ; preds = %.thread1236, %736
  %.pn11571239 = phi { ptr, i32 } [ %735, %.thread1236 ], [ %737, %736 ]
  call void @__cxa_free_exception(ptr %731) #7
  br label %740

739:                                              ; preds = %719, %701
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %3654

740:                                              ; preds = %689, %736, %738, %691, %729, %720, %712, %681, %680, %652
  %.pn1157.pn = phi { ptr, i32 } [ %.pn11571239, %738 ], [ %737, %736 ], [ %.pn1145.pn, %729 ], [ %721, %720 ], [ %.pn11551233, %691 ], [ %690, %689 ], [ %682, %681 ], [ %.pn1151.pn.pn, %712 ], [ %.pn1148, %680 ], [ %.pn1143, %652 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #7
  br label %741

741:                                              ; preds = %740, %646
  %.pn1157.pn.pn = phi { ptr, i32 } [ %.pn1157.pn, %740 ], [ %647, %646 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %38) #7
  br label %3664

742:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %53) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %53, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %743 unwind label %765

743:                                              ; preds = %742
  %744 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %53)
          to label %745 unwind label %767

745:                                              ; preds = %743
  %746 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %744)
  %.not1136 = icmp eq i32 %746, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %53) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %53) #7
  br i1 %.not1136, label %779, label %747

747:                                              ; preds = %745
  %748 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %749 unwind label %617

749:                                              ; preds = %747
  br i1 %748, label %750, label %770

750:                                              ; preds = %749
  %751 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %752 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %751, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %753 unwind label %617

753:                                              ; preds = %750
  %754 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %752, ptr noundef nonnull @.str.1)
          to label %755 unwind label %617

755:                                              ; preds = %753
  %756 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %754, ptr noundef nonnull @.str.2)
          to label %757 unwind label %617

757:                                              ; preds = %755
  %758 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %756, ptr noundef nonnull @.str.3)
          to label %759 unwind label %617

759:                                              ; preds = %757
  %760 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %758, i32 noundef 1877)
          to label %761 unwind label %617

761:                                              ; preds = %759
  %762 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %760, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %763 unwind label %617

763:                                              ; preds = %761
  %764 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %762, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %770 unwind label %617

765:                                              ; preds = %742
  %766 = landingpad { ptr, i32 }
          cleanup
  br label %769

767:                                              ; preds = %743
  %768 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %53) #7
  br label %769

769:                                              ; preds = %767, %765
  %.pn1134 = phi { ptr, i32 } [ %768, %767 ], [ %766, %765 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %53) #7
  br label %3664

770:                                              ; preds = %763, %749
  %771 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %54, i32 noundef 14)
          to label %772 unwind label %.thread1240

772:                                              ; preds = %770
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %771, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %54)
          to label %774 unwind label %.thread1244

.thread1244:                                      ; preds = %772
  %773 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #7
  br label %778

774:                                              ; preds = %772
  invoke void @__cxa_throw(ptr nonnull %771, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %776

.thread1240:                                      ; preds = %770
  %775 = landingpad { ptr, i32 }
          cleanup
  br label %778

776:                                              ; preds = %774
  %777 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #7
  br label %3664

778:                                              ; preds = %.thread1244, %.thread1240
  %.pn11411243 = phi { ptr, i32 } [ %775, %.thread1240 ], [ %773, %.thread1244 ]
  call void @__cxa_free_exception(ptr %771) #7
  br label %3664

779:                                              ; preds = %745
  %780 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %781 unwind label %617

781:                                              ; preds = %779
  %782 = getelementptr inbounds i8, ptr %780, i64 8
  %783 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %782)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %55) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %58) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %784 unwind label %789

784:                                              ; preds = %781
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %59)
  %.0.copyload87 = load i24, ptr %59, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %56, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %57, i24 %.0.copyload87)
          to label %785 unwind label %791

785:                                              ; preds = %784
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %55, ptr noundef nonnull %56)
          to label %786 unwind label %793

786:                                              ; preds = %785
  %787 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %55)
          to label %788 unwind label %795

788:                                              ; preds = %786
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %55) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %56) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %55) #7
  br label %3654

789:                                              ; preds = %781
  %790 = landingpad { ptr, i32 }
          cleanup
  br label %799

791:                                              ; preds = %784
  %792 = landingpad { ptr, i32 }
          cleanup
  br label %798

793:                                              ; preds = %785
  %794 = landingpad { ptr, i32 }
          cleanup
  br label %797

795:                                              ; preds = %786
  %796 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %55) #7
  br label %797

797:                                              ; preds = %795, %793
  %.pn1137 = phi { ptr, i32 } [ %796, %795 ], [ %794, %793 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %56) #7
  br label %798

798:                                              ; preds = %797, %791
  %.pn1137.pn = phi { ptr, i32 } [ %.pn1137, %797 ], [ %792, %791 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #7
  br label %799

799:                                              ; preds = %798, %789
  %.pn1137.pn.pn = phi { ptr, i32 } [ %.pn1137.pn, %798 ], [ %790, %789 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %58) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %55) #7
  br label %3664

800:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #7
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %60, ptr noundef nonnull @.str)
          to label %801 unwind label %808

801:                                              ; preds = %800
  %802 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %60)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #7
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %61) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %64) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %803 unwind label %810

803:                                              ; preds = %801
  invoke void @_Z17Parse_ExternBlockR11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERN3AST13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.AST::ExternBlock") align 8 %62, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %63, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %804 unwind label %812

804:                                              ; preds = %803
  invoke void @_ZN3AST4ItemC2ENS_11ExternBlockE(ptr noundef nonnull align 8 dereferenceable(488) %61, ptr noundef nonnull %62)
          to label %805 unwind label %814

805:                                              ; preds = %804
  %806 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %61)
          to label %807 unwind label %816

807:                                              ; preds = %805
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %61) #7
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %62) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %61) #7
  br label %3654

808:                                              ; preds = %800
  %809 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #7
  br label %3664

810:                                              ; preds = %801
  %811 = landingpad { ptr, i32 }
          cleanup
  br label %820

812:                                              ; preds = %803
  %813 = landingpad { ptr, i32 }
          cleanup
  br label %819

814:                                              ; preds = %804
  %815 = landingpad { ptr, i32 }
          cleanup
  br label %818

816:                                              ; preds = %805
  %817 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %61) #7
  br label %818

818:                                              ; preds = %816, %814
  %.pn1130 = phi { ptr, i32 } [ %817, %816 ], [ %815, %814 ]
  call void @_ZN3AST11ExternBlockD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %62) #7
  br label %819

819:                                              ; preds = %818, %812
  %.pn1130.pn = phi { ptr, i32 } [ %.pn1130, %818 ], [ %813, %812 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #7
  br label %820

820:                                              ; preds = %819, %810
  %.pn1130.pn.pn = phi { ptr, i32 } [ %.pn1130.pn, %819 ], [ %811, %810 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %64) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %61) #7
  br label %3664

821:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %65) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %65, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %822 unwind label %826

822:                                              ; preds = %821
  %823 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %65)
          to label %824 unwind label %828

824:                                              ; preds = %822
  %825 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %823)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %65) #7
  switch i32 %825, label %1056 [
    i32 111, label %831
    i32 19, label %922
    i32 14, label %1015
  ]

826:                                              ; preds = %821
  %827 = landingpad { ptr, i32 }
          cleanup
  br label %830

828:                                              ; preds = %822
  %829 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #7
  br label %830

830:                                              ; preds = %828, %826
  %.pn1089 = phi { ptr, i32 } [ %829, %828 ], [ %827, %826 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %65) #7
  br label %3664

831:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %66) #7
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %67, ptr noundef nonnull @.str)
          to label %832 unwind label %858

832:                                              ; preds = %831
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Item") align 8 %66, ptr noundef nonnull %67)
          to label %833 unwind label %860

833:                                              ; preds = %832
  %834 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %66)
          to label %835 unwind label %862

835:                                              ; preds = %833
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %66) #7
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %66) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %68) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %68, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %836 unwind label %866

836:                                              ; preds = %835
  %837 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %68)
          to label %838 unwind label %868

838:                                              ; preds = %836
  %839 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %837)
  %.not1115 = icmp eq i32 %839, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %68) #7
  br i1 %.not1115, label %880, label %840

840:                                              ; preds = %838
  %841 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %842 unwind label %617

842:                                              ; preds = %840
  br i1 %841, label %843, label %871

843:                                              ; preds = %842
  %844 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %845 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %844, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %846 unwind label %617

846:                                              ; preds = %843
  %847 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %845, ptr noundef nonnull @.str.1)
          to label %848 unwind label %617

848:                                              ; preds = %846
  %849 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %847, ptr noundef nonnull @.str.2)
          to label %850 unwind label %617

850:                                              ; preds = %848
  %851 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %849, ptr noundef nonnull @.str.3)
          to label %852 unwind label %617

852:                                              ; preds = %850
  %853 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %851, i32 noundef 1896)
          to label %854 unwind label %617

854:                                              ; preds = %852
  %855 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %853, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %856 unwind label %617

856:                                              ; preds = %854
  %857 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %855, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %871 unwind label %617

858:                                              ; preds = %831
  %859 = landingpad { ptr, i32 }
          cleanup
  br label %865

860:                                              ; preds = %832
  %861 = landingpad { ptr, i32 }
          cleanup
  br label %864

862:                                              ; preds = %833
  %863 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %66) #7
  br label %864

864:                                              ; preds = %862, %860
  %.pn1110 = phi { ptr, i32 } [ %863, %862 ], [ %861, %860 ]
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %67) #7
  br label %865

865:                                              ; preds = %864, %858
  %.pn1110.pn = phi { ptr, i32 } [ %.pn1110, %864 ], [ %859, %858 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %66) #7
  br label %3664

866:                                              ; preds = %835
  %867 = landingpad { ptr, i32 }
          cleanup
  br label %870

868:                                              ; preds = %836
  %869 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #7
  br label %870

870:                                              ; preds = %868, %866
  %.pn1113 = phi { ptr, i32 } [ %869, %868 ], [ %867, %866 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %68) #7
  br label %3664

871:                                              ; preds = %856, %842
  %872 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %69, i32 noundef 93)
          to label %873 unwind label %.thread1246

873:                                              ; preds = %871
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %872, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %69)
          to label %875 unwind label %.thread1250

.thread1250:                                      ; preds = %873
  %874 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %69) #7
  br label %879

875:                                              ; preds = %873
  invoke void @__cxa_throw(ptr nonnull %872, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %877

.thread1246:                                      ; preds = %871
  %876 = landingpad { ptr, i32 }
          cleanup
  br label %879

877:                                              ; preds = %875
  %878 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %69) #7
  br label %3664

879:                                              ; preds = %.thread1250, %.thread1246
  %.pn11261249 = phi { ptr, i32 } [ %876, %.thread1246 ], [ %874, %.thread1250 ]
  call void @__cxa_free_exception(ptr %872) #7
  br label %3664

880:                                              ; preds = %838
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %70) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %70, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %881 unwind label %903

881:                                              ; preds = %880
  %882 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %70)
          to label %883 unwind label %905

883:                                              ; preds = %881
  %884 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %882)
  %.not1118 = icmp eq i32 %884, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %70) #7
  br i1 %.not1118, label %917, label %885

885:                                              ; preds = %883
  %886 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %887 unwind label %617

887:                                              ; preds = %885
  br i1 %886, label %888, label %908

888:                                              ; preds = %887
  %889 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %890 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %889, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %891 unwind label %617

891:                                              ; preds = %888
  %892 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %890, ptr noundef nonnull @.str.1)
          to label %893 unwind label %617

893:                                              ; preds = %891
  %894 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %892, ptr noundef nonnull @.str.2)
          to label %895 unwind label %617

895:                                              ; preds = %893
  %896 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %894, ptr noundef nonnull @.str.3)
          to label %897 unwind label %617

897:                                              ; preds = %895
  %898 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %896, i32 noundef 1897)
          to label %899 unwind label %617

899:                                              ; preds = %897
  %900 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %898, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %901 unwind label %617

901:                                              ; preds = %899
  %902 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %900, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %908 unwind label %617

903:                                              ; preds = %880
  %904 = landingpad { ptr, i32 }
          cleanup
  br label %907

905:                                              ; preds = %881
  %906 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %70) #7
  br label %907

907:                                              ; preds = %905, %903
  %.pn1116 = phi { ptr, i32 } [ %906, %905 ], [ %904, %903 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %70) #7
  br label %3664

908:                                              ; preds = %901, %887
  %909 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %71, i32 noundef 14)
          to label %910 unwind label %.thread1252

910:                                              ; preds = %908
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %909, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %71)
          to label %912 unwind label %.thread1256

.thread1256:                                      ; preds = %910
  %911 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %71) #7
  br label %916

912:                                              ; preds = %910
  invoke void @__cxa_throw(ptr nonnull %909, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %914

.thread1252:                                      ; preds = %908
  %913 = landingpad { ptr, i32 }
          cleanup
  br label %916

914:                                              ; preds = %912
  %915 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %71) #7
  br label %3664

916:                                              ; preds = %.thread1256, %.thread1252
  %.pn11241255 = phi { ptr, i32 } [ %913, %.thread1252 ], [ %911, %.thread1256 ]
  call void @__cxa_free_exception(ptr %909) #7
  br label %3664

917:                                              ; preds = %883
  %918 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %919 unwind label %617

919:                                              ; preds = %917
  %920 = getelementptr inbounds i8, ptr %918, i64 8
  %921 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %920)
  br label %1065

922:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %72) #7
  %923 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %924 unwind label %951

924:                                              ; preds = %922
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %73, ptr noundef nonnull align 8 dereferenceable(32) %923)
          to label %925 unwind label %951

925:                                              ; preds = %924
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Item") align 8 %72, ptr noundef nonnull %73)
          to label %926 unwind label %953

926:                                              ; preds = %925
  %927 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %72)
          to label %928 unwind label %955

928:                                              ; preds = %926
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %72) #7
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %72) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %74) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %74, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %929 unwind label %959

929:                                              ; preds = %928
  %930 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %74)
          to label %931 unwind label %961

931:                                              ; preds = %929
  %932 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %930)
  %.not1102 = icmp eq i32 %932, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %74) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %74) #7
  br i1 %.not1102, label %973, label %933

933:                                              ; preds = %931
  %934 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %935 unwind label %617

935:                                              ; preds = %933
  br i1 %934, label %936, label %964

936:                                              ; preds = %935
  %937 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %938 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %937, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %939 unwind label %617

939:                                              ; preds = %936
  %940 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %938, ptr noundef nonnull @.str.1)
          to label %941 unwind label %617

941:                                              ; preds = %939
  %942 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %940, ptr noundef nonnull @.str.2)
          to label %943 unwind label %617

943:                                              ; preds = %941
  %944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %942, ptr noundef nonnull @.str.3)
          to label %945 unwind label %617

945:                                              ; preds = %943
  %946 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %944, i32 noundef 1904)
          to label %947 unwind label %617

947:                                              ; preds = %945
  %948 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %946, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %949 unwind label %617

949:                                              ; preds = %947
  %950 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %948, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %964 unwind label %617

951:                                              ; preds = %924, %922
  %952 = landingpad { ptr, i32 }
          cleanup
  br label %958

953:                                              ; preds = %925
  %954 = landingpad { ptr, i32 }
          cleanup
  br label %957

955:                                              ; preds = %926
  %956 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %72) #7
  br label %957

957:                                              ; preds = %955, %953
  %.pn1097 = phi { ptr, i32 } [ %956, %955 ], [ %954, %953 ]
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #7
  br label %958

958:                                              ; preds = %957, %951
  %.pn1097.pn = phi { ptr, i32 } [ %.pn1097, %957 ], [ %952, %951 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %72) #7
  br label %3664

959:                                              ; preds = %928
  %960 = landingpad { ptr, i32 }
          cleanup
  br label %963

961:                                              ; preds = %929
  %962 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %74) #7
  br label %963

963:                                              ; preds = %961, %959
  %.pn1100 = phi { ptr, i32 } [ %962, %961 ], [ %960, %959 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %74) #7
  br label %3664

964:                                              ; preds = %949, %935
  %965 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %75, i32 noundef 93)
          to label %966 unwind label %.thread1258

966:                                              ; preds = %964
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %965, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %75)
          to label %968 unwind label %.thread1262

.thread1262:                                      ; preds = %966
  %967 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %75) #7
  br label %972

968:                                              ; preds = %966
  invoke void @__cxa_throw(ptr nonnull %965, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %970

.thread1258:                                      ; preds = %964
  %969 = landingpad { ptr, i32 }
          cleanup
  br label %972

970:                                              ; preds = %968
  %971 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %75) #7
  br label %3664

972:                                              ; preds = %.thread1262, %.thread1258
  %.pn11081261 = phi { ptr, i32 } [ %969, %.thread1258 ], [ %967, %.thread1262 ]
  call void @__cxa_free_exception(ptr %965) #7
  br label %3664

973:                                              ; preds = %931
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %76) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %76, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %974 unwind label %996

974:                                              ; preds = %973
  %975 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %76)
          to label %976 unwind label %998

976:                                              ; preds = %974
  %977 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %975)
  %.not1105 = icmp eq i32 %977, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %76) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %76) #7
  br i1 %.not1105, label %1010, label %978

978:                                              ; preds = %976
  %979 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %980 unwind label %617

980:                                              ; preds = %978
  br i1 %979, label %981, label %1001

981:                                              ; preds = %980
  %982 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %983 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %982, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %984 unwind label %617

984:                                              ; preds = %981
  %985 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %983, ptr noundef nonnull @.str.1)
          to label %986 unwind label %617

986:                                              ; preds = %984
  %987 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %985, ptr noundef nonnull @.str.2)
          to label %988 unwind label %617

988:                                              ; preds = %986
  %989 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %987, ptr noundef nonnull @.str.3)
          to label %990 unwind label %617

990:                                              ; preds = %988
  %991 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %989, i32 noundef 1905)
          to label %992 unwind label %617

992:                                              ; preds = %990
  %993 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %991, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %994 unwind label %617

994:                                              ; preds = %992
  %995 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %993, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1001 unwind label %617

996:                                              ; preds = %973
  %997 = landingpad { ptr, i32 }
          cleanup
  br label %1000

998:                                              ; preds = %974
  %999 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %76) #7
  br label %1000

1000:                                             ; preds = %998, %996
  %.pn1103 = phi { ptr, i32 } [ %999, %998 ], [ %997, %996 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %76) #7
  br label %3664

1001:                                             ; preds = %994, %980
  %1002 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %77, i32 noundef 14)
          to label %1003 unwind label %.thread1264

1003:                                             ; preds = %1001
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1002, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %77)
          to label %1005 unwind label %.thread1268

.thread1268:                                      ; preds = %1003
  %1004 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %77) #7
  br label %1009

1005:                                             ; preds = %1003
  invoke void @__cxa_throw(ptr nonnull %1002, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1007

.thread1264:                                      ; preds = %1001
  %1006 = landingpad { ptr, i32 }
          cleanup
  br label %1009

1007:                                             ; preds = %1005
  %1008 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %77) #7
  br label %3664

1009:                                             ; preds = %.thread1268, %.thread1264
  %.pn11061267 = phi { ptr, i32 } [ %1006, %.thread1264 ], [ %1004, %.thread1268 ]
  call void @__cxa_free_exception(ptr %1002) #7
  br label %3664

1010:                                             ; preds = %976
  %1011 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1012 unwind label %617

1012:                                             ; preds = %1010
  %1013 = getelementptr inbounds i8, ptr %1011, i64 8
  %1014 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1013)
  br label %1065

1015:                                             ; preds = %824
  %1016 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1017 unwind label %617

1017:                                             ; preds = %1015
  %1018 = getelementptr inbounds i8, ptr %1016, i64 8
  %1019 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1018)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %78) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %78, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1020 unwind label %1031

1020:                                             ; preds = %1017
  %1021 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %78)
          to label %1022 unwind label %1033

1022:                                             ; preds = %1020
  %1023 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1021)
  %1024 = icmp eq i32 %1023, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %78) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %78) #7
  br i1 %1024, label %1025, label %1043

1025:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %79) #7
  call void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %80, ptr noundef nonnull align 8 dereferenceable(8) %29)
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Item") align 8 %79, ptr noundef nonnull %80)
          to label %1026 unwind label %1036

1026:                                             ; preds = %1025
  %1027 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %79)
          to label %1028 unwind label %1038

1028:                                             ; preds = %1026
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %79) #7
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %79) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %81) #7
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %81, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1029 unwind label %1041

1029:                                             ; preds = %1028
  %1030 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %81)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %81) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #7
  br label %1065

1031:                                             ; preds = %1017
  %1032 = landingpad { ptr, i32 }
          cleanup
  br label %1035

1033:                                             ; preds = %1020
  %1034 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %78) #7
  br label %1035

1035:                                             ; preds = %1033, %1031
  %.pn1091 = phi { ptr, i32 } [ %1034, %1033 ], [ %1032, %1031 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %78) #7
  br label %3664

1036:                                             ; preds = %1025
  %1037 = landingpad { ptr, i32 }
          cleanup
  br label %1040

1038:                                             ; preds = %1026
  %1039 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %79) #7
  br label %1040

1040:                                             ; preds = %1038, %1036
  %.pn1095 = phi { ptr, i32 } [ %1039, %1038 ], [ %1037, %1036 ]
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %80) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %79) #7
  br label %3664

1041:                                             ; preds = %1028
  %1042 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %81) #7
  br label %3664

1043:                                             ; preds = %1022
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %82, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1044 unwind label %617

1044:                                             ; preds = %1043
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %82)
          to label %1045 unwind label %1049

1045:                                             ; preds = %1044
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %82) #7
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %83) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %29)
  invoke void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Item") align 8 %83, ptr noundef nonnull %84)
          to label %1046 unwind label %1051

1046:                                             ; preds = %1045
  %1047 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %83)
          to label %1048 unwind label %1053

1048:                                             ; preds = %1046
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %83) #7
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %83) #7
  br label %1065

1049:                                             ; preds = %1044
  %1050 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %82) #7
  br label %3664

1051:                                             ; preds = %1045
  %1052 = landingpad { ptr, i32 }
          cleanup
  br label %1055

1053:                                             ; preds = %1046
  %1054 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %83) #7
  br label %1055

1055:                                             ; preds = %1053, %1051
  %.pn1093 = phi { ptr, i32 } [ %1054, %1053 ], [ %1052, %1051 ]
  call void @_ZN3AST4Item10Data_CrateD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %83) #7
  br label %3664

1056:                                             ; preds = %824
  %1057 = call ptr @__cxa_allocate_exception(i64 96) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #7
  store i32 19, ptr %86, align 4, !tbaa !13
  %1058 = getelementptr inbounds i8, ptr %86, i64 4
  store i32 14, ptr %1058, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %87) #7
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %85, ptr nonnull %86, i64 2, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %1059 unwind label %.thread1270

1059:                                             ; preds = %1056
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %1057, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %85)
          to label %1060 unwind label %1062

1060:                                             ; preds = %1059
  invoke void @__cxa_throw(ptr nonnull %1057, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1062

.thread1270:                                      ; preds = %1056
  %1061 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  br label %1064

1062:                                             ; preds = %1059, %1060
  %.0674 = phi i1 [ false, %1060 ], [ true, %1059 ]
  %1063 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %85) #7
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %87) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #7
  br i1 %.0674, label %1064, label %3664

1064:                                             ; preds = %.thread1270, %1062
  %.pn11281273 = phi { ptr, i32 } [ %1061, %.thread1270 ], [ %1063, %1062 ]
  call void @__cxa_free_exception(ptr %1057) #7
  br label %3664

1065:                                             ; preds = %919, %1012, %1048, %1029
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %88) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %88, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1066 unwind label %1088

1066:                                             ; preds = %1065
  %1067 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %88)
          to label %1068 unwind label %1090

1068:                                             ; preds = %1066
  %1069 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1067)
  %.not1121 = icmp eq i32 %1069, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %88) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %88) #7
  br i1 %.not1121, label %3654, label %1070

1070:                                             ; preds = %1068
  %1071 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1072 unwind label %617

1072:                                             ; preds = %1070
  br i1 %1071, label %1073, label %1093

1073:                                             ; preds = %1072
  %1074 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1075 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1074, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1076 unwind label %617

1076:                                             ; preds = %1073
  %1077 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1075, ptr noundef nonnull @.str.1)
          to label %1078 unwind label %617

1078:                                             ; preds = %1076
  %1079 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1077, ptr noundef nonnull @.str.2)
          to label %1080 unwind label %617

1080:                                             ; preds = %1078
  %1081 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1079, ptr noundef nonnull @.str.3)
          to label %1082 unwind label %617

1082:                                             ; preds = %1080
  %1083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1081, i32 noundef 1925)
          to label %1084 unwind label %617

1084:                                             ; preds = %1082
  %1085 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1083, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1086 unwind label %617

1086:                                             ; preds = %1084
  %1087 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1085, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1093 unwind label %617

1088:                                             ; preds = %1065
  %1089 = landingpad { ptr, i32 }
          cleanup
  br label %1092

1090:                                             ; preds = %1066
  %1091 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %88) #7
  br label %1092

1092:                                             ; preds = %1090, %1088
  %.pn1119 = phi { ptr, i32 } [ %1091, %1090 ], [ %1089, %1088 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %88) #7
  br label %3664

1093:                                             ; preds = %1086, %1072
  %1094 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %89, i32 noundef 32)
          to label %1095 unwind label %.thread1274

1095:                                             ; preds = %1093
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1094, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %89)
          to label %1097 unwind label %.thread1278

.thread1278:                                      ; preds = %1095
  %1096 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %89) #7
  br label %1101

1097:                                             ; preds = %1095
  invoke void @__cxa_throw(ptr nonnull %1094, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1099

.thread1274:                                      ; preds = %1093
  %1098 = landingpad { ptr, i32 }
          cleanup
  br label %1101

1099:                                             ; preds = %1097
  %1100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %89) #7
  br label %3664

1101:                                             ; preds = %.thread1278, %.thread1274
  %.pn11221277 = phi { ptr, i32 } [ %1098, %.thread1274 ], [ %1096, %.thread1278 ]
  call void @__cxa_free_exception(ptr %1094) #7
  br label %3664

1102:                                             ; preds = %631
  %1103 = call ptr @__cxa_allocate_exception(i64 96) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %91) #7
  store <4 x i32> <i32 19, i32 88, i32 25, i32 83>, ptr %91, align 16, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %92) #7
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %90, ptr nonnull %91, i64 4, ptr noundef nonnull align 1 dereferenceable(1) %92)
          to label %1104 unwind label %.thread1280

1104:                                             ; preds = %1102
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %1103, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %90)
          to label %1105 unwind label %1107

1105:                                             ; preds = %1104
  invoke void @__cxa_throw(ptr nonnull %1103, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1107

.thread1280:                                      ; preds = %1102
  %1106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #7
  br label %1109

1107:                                             ; preds = %1104, %1105
  %.0680 = phi i1 [ false, %1105 ], [ true, %1104 ]
  %1108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #7
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %92) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %92) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %91) #7
  br i1 %.0680, label %1109, label %3664

1109:                                             ; preds = %.thread1280, %1107
  %.pn11611283 = phi { ptr, i32 } [ %1106, %.thread1280 ], [ %1108, %1107 ]
  call void @__cxa_free_exception(ptr %1103) #7
  br label %3664

1110:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %93) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %93, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1111 unwind label %1115

1111:                                             ; preds = %1110
  %1112 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %93)
          to label %1113 unwind label %1117

1113:                                             ; preds = %1111
  %1114 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1112)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %93) #7
  switch i32 %1114, label %1550 [
    i32 22, label %1120
    i32 14, label %1120
    i32 81, label %1270
    i32 82, label %1374
    i32 88, label %1491
  ]

1115:                                             ; preds = %1110
  %1116 = landingpad { ptr, i32 }
          cleanup
  br label %1119

1117:                                             ; preds = %1111
  %1118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #7
  br label %1119

1119:                                             ; preds = %1117, %1115
  %.pn1016 = phi { ptr, i32 } [ %1118, %1117 ], [ %1116, %1115 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %93) #7
  br label %3664

1120:                                             ; preds = %1113, %1113
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %94, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1121 unwind label %617

1121:                                             ; preds = %1120
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %94)
          to label %1122 unwind label %1147

1122:                                             ; preds = %1121
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #7
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %95, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1123 unwind label %1149

1123:                                             ; preds = %1122
  %1124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %95)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %95) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %96) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %96, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1125 unwind label %1151

1125:                                             ; preds = %1123
  %1126 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %96)
          to label %1127 unwind label %1153

1127:                                             ; preds = %1125
  %1128 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1126)
  %.not1064 = icmp eq i32 %1128, 33
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %96) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %96) #7
  br i1 %.not1064, label %1165, label %1129

1129:                                             ; preds = %1127
  %1130 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1131 unwind label %617

1131:                                             ; preds = %1129
  br i1 %1130, label %1132, label %1156

1132:                                             ; preds = %1131
  %1133 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1133, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1135 unwind label %617

1135:                                             ; preds = %1132
  %1136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1134, ptr noundef nonnull @.str.1)
          to label %1137 unwind label %617

1137:                                             ; preds = %1135
  %1138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1136, ptr noundef nonnull @.str.2)
          to label %1139 unwind label %617

1139:                                             ; preds = %1137
  %1140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1138, ptr noundef nonnull @.str.3)
          to label %1141 unwind label %617

1141:                                             ; preds = %1139
  %1142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1140, i32 noundef 1942)
          to label %1143 unwind label %617

1143:                                             ; preds = %1141
  %1144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1142, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1145 unwind label %617

1145:                                             ; preds = %1143
  %1146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1144, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1156 unwind label %617

1147:                                             ; preds = %1121
  %1148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #7
  br label %3664

1149:                                             ; preds = %1122
  %1150 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #7
  br label %3664

1151:                                             ; preds = %1123
  %1152 = landingpad { ptr, i32 }
          cleanup
  br label %1155

1153:                                             ; preds = %1125
  %1154 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %96) #7
  br label %1155

1155:                                             ; preds = %1153, %1151
  %.pn1062 = phi { ptr, i32 } [ %1154, %1153 ], [ %1152, %1151 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %96) #7
  br label %3664

1156:                                             ; preds = %1145, %1131
  %1157 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %97, i32 noundef 33)
          to label %1158 unwind label %.thread1284

1158:                                             ; preds = %1156
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1157, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %97)
          to label %1160 unwind label %.thread1288

.thread1288:                                      ; preds = %1158
  %1159 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #7
  br label %1164

1160:                                             ; preds = %1158
  invoke void @__cxa_throw(ptr nonnull %1157, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1162

.thread1284:                                      ; preds = %1156
  %1161 = landingpad { ptr, i32 }
          cleanup
  br label %1164

1162:                                             ; preds = %1160
  %1163 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #7
  br label %3664

1164:                                             ; preds = %.thread1288, %.thread1284
  %.pn10831287 = phi { ptr, i32 } [ %1161, %.thread1284 ], [ %1159, %.thread1288 ]
  call void @__cxa_free_exception(ptr %1157) #7
  br label %3664

1165:                                             ; preds = %1127
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %98) #7
  invoke void @_Z10Parse_TypeR11TokenStreamb(ptr dead_on_unwind nonnull writable sret(%class.TypeRef) align 8 %98, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext true)
          to label %1166 unwind label %1189

1166:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %99) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %99, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1167 unwind label %1191

1167:                                             ; preds = %1166
  %1168 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %99)
          to label %1169 unwind label %1193

1169:                                             ; preds = %1167
  %1170 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1168)
  %.not1067 = icmp eq i32 %1170, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %99) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %99) #7
  br i1 %.not1067, label %1207, label %1171

1171:                                             ; preds = %1169
  %1172 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1173 unwind label %1196

1173:                                             ; preds = %1171
  br i1 %1172, label %1174, label %1198

1174:                                             ; preds = %1173
  %1175 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1175, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1177 unwind label %1196

1177:                                             ; preds = %1174
  %1178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1176, ptr noundef nonnull @.str.1)
          to label %1179 unwind label %1196

1179:                                             ; preds = %1177
  %1180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1178, ptr noundef nonnull @.str.2)
          to label %1181 unwind label %1196

1181:                                             ; preds = %1179
  %1182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1180, ptr noundef nonnull @.str.3)
          to label %1183 unwind label %1196

1183:                                             ; preds = %1181
  %1184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1182, i32 noundef 1944)
          to label %1185 unwind label %1196

1185:                                             ; preds = %1183
  %1186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1184, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1187 unwind label %1196

1187:                                             ; preds = %1185
  %1188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1186, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1198 unwind label %1196

1189:                                             ; preds = %1165
  %1190 = landingpad { ptr, i32 }
          cleanup
  br label %1269

1191:                                             ; preds = %1166
  %1192 = landingpad { ptr, i32 }
          cleanup
  br label %1195

1193:                                             ; preds = %1167
  %1194 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %99) #7
  br label %1195

1195:                                             ; preds = %1193, %1191
  %.pn1065 = phi { ptr, i32 } [ %1194, %1193 ], [ %1192, %1191 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %99) #7
  br label %1268

1196:                                             ; preds = %1187, %1185, %1183, %1181, %1179, %1177, %1174, %1171
  %1197 = landingpad { ptr, i32 }
          cleanup
  br label %1268

1198:                                             ; preds = %1187, %1173
  %1199 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %100, i32 noundef 50)
          to label %1200 unwind label %.thread1290

1200:                                             ; preds = %1198
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1199, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %100)
          to label %1202 unwind label %.thread1294

.thread1294:                                      ; preds = %1200
  %1201 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #7
  br label %1206

1202:                                             ; preds = %1200
  invoke void @__cxa_throw(ptr nonnull %1199, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1204

.thread1290:                                      ; preds = %1198
  %1203 = landingpad { ptr, i32 }
          cleanup
  br label %1206

1204:                                             ; preds = %1202
  %1205 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %100) #7
  br label %1268

1206:                                             ; preds = %.thread1294, %.thread1290
  %.pn10791293 = phi { ptr, i32 } [ %1203, %.thread1290 ], [ %1201, %.thread1294 ]
  call void @__cxa_free_exception(ptr %1199) #7
  br label %1268

1207:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %101) #7
  invoke void @_Z10Parse_ExprR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::Expr") align 8 %101, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1208 unwind label %1231

1208:                                             ; preds = %1207
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %102) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %102, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1209 unwind label %1233

1209:                                             ; preds = %1208
  %1210 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %102)
          to label %1211 unwind label %1235

1211:                                             ; preds = %1209
  %1212 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1210)
  %.not1070 = icmp eq i32 %1212, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %102) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %102) #7
  br i1 %.not1070, label %1249, label %1213

1213:                                             ; preds = %1211
  %1214 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1215 unwind label %1238

1215:                                             ; preds = %1213
  br i1 %1214, label %1216, label %1240

1216:                                             ; preds = %1215
  %1217 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1217, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1219 unwind label %1238

1219:                                             ; preds = %1216
  %1220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1218, ptr noundef nonnull @.str.1)
          to label %1221 unwind label %1238

1221:                                             ; preds = %1219
  %1222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1220, ptr noundef nonnull @.str.2)
          to label %1223 unwind label %1238

1223:                                             ; preds = %1221
  %1224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1222, ptr noundef nonnull @.str.3)
          to label %1225 unwind label %1238

1225:                                             ; preds = %1223
  %1226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1224, i32 noundef 1946)
          to label %1227 unwind label %1238

1227:                                             ; preds = %1225
  %1228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1226, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1229 unwind label %1238

1229:                                             ; preds = %1227
  %1230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1228, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1240 unwind label %1238

1231:                                             ; preds = %1207
  %1232 = landingpad { ptr, i32 }
          cleanup
  br label %1267

1233:                                             ; preds = %1208
  %1234 = landingpad { ptr, i32 }
          cleanup
  br label %1237

1235:                                             ; preds = %1209
  %1236 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %102) #7
  br label %1237

1237:                                             ; preds = %1235, %1233
  %.pn1068 = phi { ptr, i32 } [ %1236, %1235 ], [ %1234, %1233 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %102) #7
  br label %1266

1238:                                             ; preds = %1229, %1227, %1225, %1223, %1221, %1219, %1216, %1213
  %1239 = landingpad { ptr, i32 }
          cleanup
  br label %1266

1240:                                             ; preds = %1229, %1215
  %1241 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %103, i32 noundef 32)
          to label %1242 unwind label %.thread1296

1242:                                             ; preds = %1240
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1241, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %103)
          to label %1244 unwind label %.thread1300

.thread1300:                                      ; preds = %1242
  %1243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %103) #7
  br label %1248

1244:                                             ; preds = %1242
  invoke void @__cxa_throw(ptr nonnull %1241, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1246

.thread1296:                                      ; preds = %1240
  %1245 = landingpad { ptr, i32 }
          cleanup
  br label %1248

1246:                                             ; preds = %1244
  %1247 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %103) #7
  br label %1266

1248:                                             ; preds = %.thread1300, %.thread1296
  %.pn10751299 = phi { ptr, i32 } [ %1245, %.thread1296 ], [ %1243, %.thread1300 ]
  call void @__cxa_free_exception(ptr %1241) #7
  br label %1266

1249:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %104) #7
  invoke void @_ZN7TypeRefC2EOS_(ptr noundef nonnull align 8 dereferenceable(120) %106, ptr noundef nonnull align 8 dereferenceable(120) %98)
          to label %1250 unwind label %1255

1250:                                             ; preds = %1249
  call void @_ZN3AST4ExprC2EOS0_(ptr noundef nonnull align 8 dereferenceable(16) %107, ptr noundef nonnull align 8 dereferenceable(16) %101) #7
  invoke void @_ZN3AST6StaticC2ENS0_5ClassE7TypeRefNS_4ExprE(ptr noundef nonnull align 8 dereferenceable(216) %105, i32 noundef 0, ptr noundef nonnull %106, ptr noundef nonnull %107)
          to label %1251 unwind label %1257

1251:                                             ; preds = %1250
  invoke void @_ZN3AST4ItemC2ENS_6StaticE(ptr noundef nonnull align 8 dereferenceable(488) %104, ptr noundef nonnull %105)
          to label %1252 unwind label %1259

1252:                                             ; preds = %1251
  %1253 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %104)
          to label %1254 unwind label %1261

1254:                                             ; preds = %1252
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %104) #7
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %105) #7
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #7
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %106) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %104) #7
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #7
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %98) #7
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %98) #7
  br label %3654

1255:                                             ; preds = %1249
  %1256 = landingpad { ptr, i32 }
          cleanup
  br label %1265

1257:                                             ; preds = %1250
  %1258 = landingpad { ptr, i32 }
          cleanup
  br label %1264

1259:                                             ; preds = %1251
  %1260 = landingpad { ptr, i32 }
          cleanup
  br label %1263

1261:                                             ; preds = %1252
  %1262 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %104) #7
  br label %1263

1263:                                             ; preds = %1261, %1259
  %.pn1071 = phi { ptr, i32 } [ %1262, %1261 ], [ %1260, %1259 ]
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %105) #7
  br label %1264

1264:                                             ; preds = %1263, %1257
  %.pn1071.pn = phi { ptr, i32 } [ %.pn1071, %1263 ], [ %1258, %1257 ]
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %107) #7
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %106) #7
  br label %1265

1265:                                             ; preds = %1264, %1255
  %.pn1071.pn.pn = phi { ptr, i32 } [ %.pn1071.pn, %1264 ], [ %1256, %1255 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %104) #7
  br label %1266

1266:                                             ; preds = %1246, %1248, %1265, %1238, %1237
  %.pn1075.pn = phi { ptr, i32 } [ %.pn10751299, %1248 ], [ %1247, %1246 ], [ %1239, %1238 ], [ %.pn1071.pn.pn, %1265 ], [ %.pn1068, %1237 ]
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %101) #7
  br label %1267

1267:                                             ; preds = %1266, %1231
  %.pn1075.pn.pn = phi { ptr, i32 } [ %.pn1075.pn, %1266 ], [ %1232, %1231 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %101) #7
  br label %1268

1268:                                             ; preds = %1204, %1206, %1267, %1196, %1195
  %.pn1079.pn = phi { ptr, i32 } [ %.pn10791293, %1206 ], [ %1205, %1204 ], [ %1197, %1196 ], [ %.pn1075.pn.pn, %1267 ], [ %.pn1065, %1195 ]
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %98) #7
  br label %1269

1269:                                             ; preds = %1268, %1189
  %.pn1079.pn.pn = phi { ptr, i32 } [ %.pn1079.pn, %1268 ], [ %1190, %1189 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %98) #7
  br label %3664

1270:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %108) #7
  invoke void @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H10opt_externB5cxx11ER5TokenS0_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %108, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1271 unwind label %1294

1271:                                             ; preds = %1270
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %109) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %109, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1272 unwind label %1296

1272:                                             ; preds = %1271
  %1273 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %109)
          to label %1274 unwind label %1298

1274:                                             ; preds = %1272
  %1275 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1273)
  %.not1048 = icmp eq i32 %1275, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %109) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %109) #7
  br i1 %.not1048, label %1312, label %1276

1276:                                             ; preds = %1274
  %1277 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1278 unwind label %1301

1278:                                             ; preds = %1276
  br i1 %1277, label %1279, label %1303

1279:                                             ; preds = %1278
  %1280 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1280, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1282 unwind label %1301

1282:                                             ; preds = %1279
  %1283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1281, ptr noundef nonnull @.str.1)
          to label %1284 unwind label %1301

1284:                                             ; preds = %1282
  %1285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1283, ptr noundef nonnull @.str.2)
          to label %1286 unwind label %1301

1286:                                             ; preds = %1284
  %1287 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1285, ptr noundef nonnull @.str.3)
          to label %1288 unwind label %1301

1288:                                             ; preds = %1286
  %1289 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1287, i32 noundef 1966)
          to label %1290 unwind label %1301

1290:                                             ; preds = %1288
  %1291 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1289, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1292 unwind label %1301

1292:                                             ; preds = %1290
  %1293 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1291, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1303 unwind label %1301

1294:                                             ; preds = %1270
  %1295 = landingpad { ptr, i32 }
          cleanup
  br label %1373

1296:                                             ; preds = %1271
  %1297 = landingpad { ptr, i32 }
          cleanup
  br label %1300

1298:                                             ; preds = %1272
  %1299 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %109) #7
  br label %1300

1300:                                             ; preds = %1298, %1296
  %.pn1046 = phi { ptr, i32 } [ %1299, %1298 ], [ %1297, %1296 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %109) #7
  br label %1372

1301:                                             ; preds = %1349, %1333, %1331, %1329, %1327, %1325, %1323, %1320, %1317, %1292, %1290, %1288, %1286, %1284, %1282, %1279, %1276
  %1302 = landingpad { ptr, i32 }
          cleanup
  br label %1372

1303:                                             ; preds = %1292, %1278
  %1304 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %110, i32 noundef 88)
          to label %1305 unwind label %.thread1302

1305:                                             ; preds = %1303
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1304, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %110)
          to label %1307 unwind label %.thread1306

.thread1306:                                      ; preds = %1305
  %1306 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %110) #7
  br label %1311

1307:                                             ; preds = %1305
  invoke void @__cxa_throw(ptr nonnull %1304, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1309

.thread1302:                                      ; preds = %1303
  %1308 = landingpad { ptr, i32 }
          cleanup
  br label %1311

1309:                                             ; preds = %1307
  %1310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %110) #7
  br label %1372

1311:                                             ; preds = %.thread1306, %.thread1302
  %.pn10581305 = phi { ptr, i32 } [ %1308, %.thread1302 ], [ %1306, %.thread1306 ]
  call void @__cxa_free_exception(ptr %1304) #7
  br label %1372

1312:                                             ; preds = %1274
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %111) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %111, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1313 unwind label %1335

1313:                                             ; preds = %1312
  %1314 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %111)
          to label %1315 unwind label %1337

1315:                                             ; preds = %1313
  %1316 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1314)
  %.not1051 = icmp eq i32 %1316, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %111) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %111) #7
  br i1 %.not1051, label %1349, label %1317

1317:                                             ; preds = %1315
  %1318 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1319 unwind label %1301

1319:                                             ; preds = %1317
  br i1 %1318, label %1320, label %1340

1320:                                             ; preds = %1319
  %1321 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1321, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1323 unwind label %1301

1323:                                             ; preds = %1320
  %1324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1322, ptr noundef nonnull @.str.1)
          to label %1325 unwind label %1301

1325:                                             ; preds = %1323
  %1326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1324, ptr noundef nonnull @.str.2)
          to label %1327 unwind label %1301

1327:                                             ; preds = %1325
  %1328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1326, ptr noundef nonnull @.str.3)
          to label %1329 unwind label %1301

1329:                                             ; preds = %1327
  %1330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1328, i32 noundef 1967)
          to label %1331 unwind label %1301

1331:                                             ; preds = %1329
  %1332 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1330, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1333 unwind label %1301

1333:                                             ; preds = %1331
  %1334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1332, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1340 unwind label %1301

1335:                                             ; preds = %1312
  %1336 = landingpad { ptr, i32 }
          cleanup
  br label %1339

1337:                                             ; preds = %1313
  %1338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %111) #7
  br label %1339

1339:                                             ; preds = %1337, %1335
  %.pn1049 = phi { ptr, i32 } [ %1338, %1337 ], [ %1336, %1335 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %111) #7
  br label %1372

1340:                                             ; preds = %1333, %1319
  %1341 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %112, i32 noundef 14)
          to label %1342 unwind label %.thread1308

1342:                                             ; preds = %1340
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1341, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %112)
          to label %1344 unwind label %.thread1312

.thread1312:                                      ; preds = %1342
  %1343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %112) #7
  br label %1348

1344:                                             ; preds = %1342
  invoke void @__cxa_throw(ptr nonnull %1341, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1346

.thread1308:                                      ; preds = %1340
  %1345 = landingpad { ptr, i32 }
          cleanup
  br label %1348

1346:                                             ; preds = %1344
  %1347 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %112) #7
  br label %1372

1348:                                             ; preds = %.thread1312, %.thread1308
  %.pn10561311 = phi { ptr, i32 } [ %1345, %.thread1308 ], [ %1343, %.thread1312 ]
  call void @__cxa_free_exception(ptr %1341) #7
  br label %1372

1349:                                             ; preds = %1315
  %1350 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1351 unwind label %1301

1351:                                             ; preds = %1349
  %1352 = getelementptr inbounds i8, ptr %1350, i64 8
  %1353 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1352)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %113) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %115, ptr noundef nonnull align 8 dereferenceable(32) %108)
          to label %1354 unwind label %1361

1354:                                             ; preds = %1351
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %116) #7
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %117) #7
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %117)
  %1355 = call i24 @_ZNK3AST8Function5Flags9set_constEv(ptr noundef nonnull align 1 dereferenceable(3) %117)
  store i24 %1355, ptr %116, align 4
  %1356 = call i24 @_ZNK3AST8Function5Flags10set_unsafeEv(ptr noundef nonnull align 1 dereferenceable(3) %116)
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %114, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %115, i24 %1356)
          to label %1357 unwind label %1363

1357:                                             ; preds = %1354
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %113, ptr noundef nonnull %114)
          to label %1358 unwind label %1365

1358:                                             ; preds = %1357
  %1359 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %113)
          to label %1360 unwind label %1367

1360:                                             ; preds = %1358
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %113) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %114) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %117) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %113) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  br label %3654

1361:                                             ; preds = %1351
  %1362 = landingpad { ptr, i32 }
          cleanup
  br label %1371

1363:                                             ; preds = %1354
  %1364 = landingpad { ptr, i32 }
          cleanup
  br label %1370

1365:                                             ; preds = %1357
  %1366 = landingpad { ptr, i32 }
          cleanup
  br label %1369

1367:                                             ; preds = %1358
  %1368 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %113) #7
  br label %1369

1369:                                             ; preds = %1367, %1365
  %.pn1052 = phi { ptr, i32 } [ %1368, %1367 ], [ %1366, %1365 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %114) #7
  br label %1370

1370:                                             ; preds = %1369, %1363
  %.pn1052.pn = phi { ptr, i32 } [ %.pn1052, %1369 ], [ %1364, %1363 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %117) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %116) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %115) #7
  br label %1371

1371:                                             ; preds = %1370, %1361
  %.pn1052.pn.pn = phi { ptr, i32 } [ %.pn1052.pn, %1370 ], [ %1362, %1361 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %113) #7
  br label %1372

1372:                                             ; preds = %1346, %1309, %1348, %1311, %1371, %1339, %1301, %1300
  %.pn1058.pn = phi { ptr, i32 } [ %.pn10581305, %1311 ], [ %1310, %1309 ], [ %1302, %1301 ], [ %.pn10561311, %1348 ], [ %1347, %1346 ], [ %.pn1052.pn.pn, %1371 ], [ %.pn1049, %1339 ], [ %.pn1046, %1300 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %108) #7
  br label %1373

1373:                                             ; preds = %1372, %1294
  %.pn1058.pn.pn = phi { ptr, i32 } [ %.pn1058.pn, %1372 ], [ %1295, %1294 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %108) #7
  br label %3664

1374:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %118) #7
  %1375 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %1376 unwind label %1405

1376:                                             ; preds = %1374
  %1377 = icmp eq i32 %1375, 19
  br i1 %1377, label %1378, label %1382

1378:                                             ; preds = %1376
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %119) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %119, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1379 unwind label %1407

1379:                                             ; preds = %1378
  %1380 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %119)
          to label %1381 unwind label %1409

1381:                                             ; preds = %1379
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull align 8 dereferenceable(32) %1380)
          to label %.critedge1206 unwind label %1409

1382:                                             ; preds = %1376
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %120) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %118, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %120)
          to label %.critedge1202 unwind label %1411

.critedge1202:                                    ; preds = %1382
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #7
  br label %.critedge1205

.critedge1206:                                    ; preds = %1381
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %119) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %119) #7
  br label %.critedge1205

.critedge1205:                                    ; preds = %.critedge1202, %.critedge1206
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %121) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %121, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1383 unwind label %1414

1383:                                             ; preds = %.critedge1205
  %1384 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %121)
          to label %1385 unwind label %1416

1385:                                             ; preds = %1383
  %1386 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1384)
  %.not1032 = icmp eq i32 %1386, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %121) #7
  br i1 %.not1032, label %1430, label %1387

1387:                                             ; preds = %1385
  %1388 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1389 unwind label %1419

1389:                                             ; preds = %1387
  br i1 %1388, label %1390, label %1421

1390:                                             ; preds = %1389
  %1391 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1392 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1391, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1393 unwind label %1419

1393:                                             ; preds = %1390
  %1394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1392, ptr noundef nonnull @.str.1)
          to label %1395 unwind label %1419

1395:                                             ; preds = %1393
  %1396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1394, ptr noundef nonnull @.str.2)
          to label %1397 unwind label %1419

1397:                                             ; preds = %1395
  %1398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1396, ptr noundef nonnull @.str.3)
          to label %1399 unwind label %1419

1399:                                             ; preds = %1397
  %1400 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1398, i32 noundef 1973)
          to label %1401 unwind label %1419

1401:                                             ; preds = %1399
  %1402 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1400, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1403 unwind label %1419

1403:                                             ; preds = %1401
  %1404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1402, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1421 unwind label %1419

1405:                                             ; preds = %1374
  %1406 = landingpad { ptr, i32 }
          cleanup
  br label %1490

1407:                                             ; preds = %1378
  %1408 = landingpad { ptr, i32 }
          cleanup
  br label %1413

1409:                                             ; preds = %1379, %1381
  %1410 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %119) #7
  br label %1413

1411:                                             ; preds = %1382
  %1412 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %120) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %120) #7
  br label %1490

1413:                                             ; preds = %1409, %1407
  %.pn1027.pn.ph = phi { ptr, i32 } [ %1408, %1407 ], [ %1410, %1409 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %119) #7
  br label %1490

1414:                                             ; preds = %.critedge1205
  %1415 = landingpad { ptr, i32 }
          cleanup
  br label %1418

1416:                                             ; preds = %1383
  %1417 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #7
  br label %1418

1418:                                             ; preds = %1416, %1414
  %.pn1030 = phi { ptr, i32 } [ %1417, %1416 ], [ %1415, %1414 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %121) #7
  br label %1489

1419:                                             ; preds = %1467, %1451, %1449, %1447, %1445, %1443, %1441, %1438, %1435, %1403, %1401, %1399, %1397, %1395, %1393, %1390, %1387
  %1420 = landingpad { ptr, i32 }
          cleanup
  br label %1489

1421:                                             ; preds = %1403, %1389
  %1422 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %122, i32 noundef 88)
          to label %1423 unwind label %.thread1322

1423:                                             ; preds = %1421
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1422, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %122)
          to label %1425 unwind label %.thread1326

.thread1326:                                      ; preds = %1423
  %1424 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %122) #7
  br label %1429

1425:                                             ; preds = %1423
  invoke void @__cxa_throw(ptr nonnull %1422, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1427

.thread1322:                                      ; preds = %1421
  %1426 = landingpad { ptr, i32 }
          cleanup
  br label %1429

1427:                                             ; preds = %1425
  %1428 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %122) #7
  br label %1489

1429:                                             ; preds = %.thread1326, %.thread1322
  %.pn10421325 = phi { ptr, i32 } [ %1426, %.thread1322 ], [ %1424, %.thread1326 ]
  call void @__cxa_free_exception(ptr %1422) #7
  br label %1489

1430:                                             ; preds = %1385
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %123) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %123, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1431 unwind label %1453

1431:                                             ; preds = %1430
  %1432 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %123)
          to label %1433 unwind label %1455

1433:                                             ; preds = %1431
  %1434 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1432)
  %.not1035 = icmp eq i32 %1434, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %123) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %123) #7
  br i1 %.not1035, label %1467, label %1435

1435:                                             ; preds = %1433
  %1436 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1437 unwind label %1419

1437:                                             ; preds = %1435
  br i1 %1436, label %1438, label %1458

1438:                                             ; preds = %1437
  %1439 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1440 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1439, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1441 unwind label %1419

1441:                                             ; preds = %1438
  %1442 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1440, ptr noundef nonnull @.str.1)
          to label %1443 unwind label %1419

1443:                                             ; preds = %1441
  %1444 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1442, ptr noundef nonnull @.str.2)
          to label %1445 unwind label %1419

1445:                                             ; preds = %1443
  %1446 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1444, ptr noundef nonnull @.str.3)
          to label %1447 unwind label %1419

1447:                                             ; preds = %1445
  %1448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1446, i32 noundef 1974)
          to label %1449 unwind label %1419

1449:                                             ; preds = %1447
  %1450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1448, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1451 unwind label %1419

1451:                                             ; preds = %1449
  %1452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1450, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1458 unwind label %1419

1453:                                             ; preds = %1430
  %1454 = landingpad { ptr, i32 }
          cleanup
  br label %1457

1455:                                             ; preds = %1431
  %1456 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %123) #7
  br label %1457

1457:                                             ; preds = %1455, %1453
  %.pn1033 = phi { ptr, i32 } [ %1456, %1455 ], [ %1454, %1453 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %123) #7
  br label %1489

1458:                                             ; preds = %1451, %1437
  %1459 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %124, i32 noundef 14)
          to label %1460 unwind label %.thread1328

1460:                                             ; preds = %1458
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1459, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %124)
          to label %1462 unwind label %.thread1332

.thread1332:                                      ; preds = %1460
  %1461 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %124) #7
  br label %1466

1462:                                             ; preds = %1460
  invoke void @__cxa_throw(ptr nonnull %1459, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1464

.thread1328:                                      ; preds = %1458
  %1463 = landingpad { ptr, i32 }
          cleanup
  br label %1466

1464:                                             ; preds = %1462
  %1465 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %124) #7
  br label %1489

1466:                                             ; preds = %.thread1332, %.thread1328
  %.pn10401331 = phi { ptr, i32 } [ %1463, %.thread1328 ], [ %1461, %.thread1332 ]
  call void @__cxa_free_exception(ptr %1459) #7
  br label %1489

1467:                                             ; preds = %1433
  %1468 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1469 unwind label %1419

1469:                                             ; preds = %1467
  %1470 = getelementptr inbounds i8, ptr %1468, i64 8
  %1471 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1470)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %125) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %118)
          to label %1472 unwind label %1478

1472:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %128) #7
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %128)
  %1473 = call i24 @_ZNK3AST8Function5Flags9set_constEv(ptr noundef nonnull align 1 dereferenceable(3) %128)
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %126, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %127, i24 %1473)
          to label %1474 unwind label %1480

1474:                                             ; preds = %1472
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %125, ptr noundef nonnull %126)
          to label %1475 unwind label %1482

1475:                                             ; preds = %1474
  %1476 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %125)
          to label %1477 unwind label %1484

1477:                                             ; preds = %1475
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %125) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %126) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %125) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  br label %3654

1478:                                             ; preds = %1469
  %1479 = landingpad { ptr, i32 }
          cleanup
  br label %1488

1480:                                             ; preds = %1472
  %1481 = landingpad { ptr, i32 }
          cleanup
  br label %1487

1482:                                             ; preds = %1474
  %1483 = landingpad { ptr, i32 }
          cleanup
  br label %1486

1484:                                             ; preds = %1475
  %1485 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %125) #7
  br label %1486

1486:                                             ; preds = %1484, %1482
  %.pn1036 = phi { ptr, i32 } [ %1485, %1484 ], [ %1483, %1482 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %126) #7
  br label %1487

1487:                                             ; preds = %1486, %1480
  %.pn1036.pn = phi { ptr, i32 } [ %.pn1036, %1486 ], [ %1481, %1480 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %128) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #7
  br label %1488

1488:                                             ; preds = %1487, %1478
  %.pn1036.pn.pn = phi { ptr, i32 } [ %.pn1036.pn, %1487 ], [ %1479, %1478 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %125) #7
  br label %1489

1489:                                             ; preds = %1464, %1427, %1466, %1429, %1488, %1457, %1419, %1418
  %.pn1042.pn = phi { ptr, i32 } [ %.pn10421325, %1429 ], [ %1428, %1427 ], [ %1420, %1419 ], [ %.pn10401331, %1466 ], [ %1465, %1464 ], [ %.pn1036.pn.pn, %1488 ], [ %.pn1033, %1457 ], [ %.pn1030, %1418 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %118) #7
  br label %1490

1490:                                             ; preds = %1411, %1413, %1489, %1405
  %.pn1042.pn.pn = phi { ptr, i32 } [ %.pn1042.pn, %1489 ], [ %.pn1027.pn.ph, %1413 ], [ %1412, %1411 ], [ %1406, %1405 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %118) #7
  br label %3664

1491:                                             ; preds = %1113
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %129) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %129, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1492 unwind label %1514

1492:                                             ; preds = %1491
  %1493 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %129)
          to label %1494 unwind label %1516

1494:                                             ; preds = %1492
  %1495 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1493)
  %.not1020 = icmp eq i32 %1495, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %129) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %129) #7
  br i1 %.not1020, label %1528, label %1496

1496:                                             ; preds = %1494
  %1497 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1498 unwind label %617

1498:                                             ; preds = %1496
  br i1 %1497, label %1499, label %1519

1499:                                             ; preds = %1498
  %1500 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1500, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1502 unwind label %617

1502:                                             ; preds = %1499
  %1503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1501, ptr noundef nonnull @.str.1)
          to label %1504 unwind label %617

1504:                                             ; preds = %1502
  %1505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1503, ptr noundef nonnull @.str.2)
          to label %1506 unwind label %617

1506:                                             ; preds = %1504
  %1507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1505, ptr noundef nonnull @.str.3)
          to label %1508 unwind label %617

1508:                                             ; preds = %1506
  %1509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1507, i32 noundef 1979)
          to label %1510 unwind label %617

1510:                                             ; preds = %1508
  %1511 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1509, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1512 unwind label %617

1512:                                             ; preds = %1510
  %1513 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1511, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1519 unwind label %617

1514:                                             ; preds = %1491
  %1515 = landingpad { ptr, i32 }
          cleanup
  br label %1518

1516:                                             ; preds = %1492
  %1517 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %129) #7
  br label %1518

1518:                                             ; preds = %1516, %1514
  %.pn1018 = phi { ptr, i32 } [ %1517, %1516 ], [ %1515, %1514 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %129) #7
  br label %3664

1519:                                             ; preds = %1512, %1498
  %1520 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %130, i32 noundef 14)
          to label %1521 unwind label %.thread1334

1521:                                             ; preds = %1519
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1520, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %130)
          to label %1523 unwind label %.thread1338

.thread1338:                                      ; preds = %1521
  %1522 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #7
  br label %1527

1523:                                             ; preds = %1521
  invoke void @__cxa_throw(ptr nonnull %1520, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1525

.thread1334:                                      ; preds = %1519
  %1524 = landingpad { ptr, i32 }
          cleanup
  br label %1527

1525:                                             ; preds = %1523
  %1526 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %130) #7
  br label %3664

1527:                                             ; preds = %.thread1338, %.thread1334
  %.pn10251337 = phi { ptr, i32 } [ %1524, %.thread1334 ], [ %1522, %.thread1338 ]
  call void @__cxa_free_exception(ptr %1520) #7
  br label %3664

1528:                                             ; preds = %1494
  %1529 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1530 unwind label %617

1530:                                             ; preds = %1528
  %1531 = getelementptr inbounds i8, ptr %1529, i64 8
  %1532 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1531)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %131) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %134) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %133, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %134)
          to label %1533 unwind label %1539

1533:                                             ; preds = %1530
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %135) #7
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %135)
  %1534 = call i24 @_ZNK3AST8Function5Flags9set_constEv(ptr noundef nonnull align 1 dereferenceable(3) %135)
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %132, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %133, i24 %1534)
          to label %1535 unwind label %1541

1535:                                             ; preds = %1533
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %131, ptr noundef nonnull %132)
          to label %1536 unwind label %1543

1536:                                             ; preds = %1535
  %1537 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %131)
          to label %1538 unwind label %1545

1538:                                             ; preds = %1536
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %131) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %132) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %131) #7
  br label %3654

1539:                                             ; preds = %1530
  %1540 = landingpad { ptr, i32 }
          cleanup
  br label %1549

1541:                                             ; preds = %1533
  %1542 = landingpad { ptr, i32 }
          cleanup
  br label %1548

1543:                                             ; preds = %1535
  %1544 = landingpad { ptr, i32 }
          cleanup
  br label %1547

1545:                                             ; preds = %1536
  %1546 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %131) #7
  br label %1547

1547:                                             ; preds = %1545, %1543
  %.pn1021 = phi { ptr, i32 } [ %1546, %1545 ], [ %1544, %1543 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %132) #7
  br label %1548

1548:                                             ; preds = %1547, %1541
  %.pn1021.pn = phi { ptr, i32 } [ %.pn1021, %1547 ], [ %1542, %1541 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %135) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %133) #7
  br label %1549

1549:                                             ; preds = %1548, %1539
  %.pn1021.pn.pn = phi { ptr, i32 } [ %.pn1021.pn, %1548 ], [ %1540, %1539 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %134) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %134) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %131) #7
  br label %3664

1550:                                             ; preds = %1113
  %1551 = call ptr @__cxa_allocate_exception(i64 96) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %137) #7
  store <4 x i32> <i32 14, i32 22, i32 81, i32 88>, ptr %137, align 16, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %138) #7
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #7
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %136, ptr nonnull %137, i64 4, ptr noundef nonnull align 1 dereferenceable(1) %138)
          to label %1552 unwind label %.thread1340

1552:                                             ; preds = %1550
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %1551, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %136)
          to label %1553 unwind label %1555

1553:                                             ; preds = %1552
  invoke void @__cxa_throw(ptr nonnull %1551, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1555

.thread1340:                                      ; preds = %1550
  %1554 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %138) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %137) #7
  br label %1557

1555:                                             ; preds = %1552, %1553
  %.0668 = phi i1 [ false, %1553 ], [ true, %1552 ]
  %1556 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %136) #7
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %138) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %138) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %137) #7
  br i1 %.0668, label %1557, label %3664

1557:                                             ; preds = %.thread1340, %1555
  %.pn10851343 = phi { ptr, i32 } [ %1554, %.thread1340 ], [ %1556, %1555 ]
  call void @__cxa_free_exception(ptr %1551) #7
  br label %3664

1558:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %139) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %139, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1559 unwind label %1569

1559:                                             ; preds = %1558
  %1560 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %139)
          to label %1561 unwind label %1571

1561:                                             ; preds = %1559
  %1562 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1560)
  %1563 = icmp eq i32 %1562, 78
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %139) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %139) #7
  br i1 %1563, label %1564, label %1579

1564:                                             ; preds = %1561
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %140) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %140, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1565 unwind label %1574

1565:                                             ; preds = %1564
  %1566 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %140)
          to label %1567 unwind label %1576

1567:                                             ; preds = %1565
  %1568 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1566)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %140) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %140) #7
  br label %1579

1569:                                             ; preds = %1558
  %1570 = landingpad { ptr, i32 }
          cleanup
  br label %1573

1571:                                             ; preds = %1559
  %1572 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %139) #7
  br label %1573

1573:                                             ; preds = %1571, %1569
  %.pn988 = phi { ptr, i32 } [ %1572, %1571 ], [ %1570, %1569 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %139) #7
  br label %3664

1574:                                             ; preds = %1564
  %1575 = landingpad { ptr, i32 }
          cleanup
  br label %1578

1576:                                             ; preds = %1565
  %1577 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %140) #7
  br label %1578

1578:                                             ; preds = %1576, %1574
  %.pn990 = phi { ptr, i32 } [ %1577, %1576 ], [ %1575, %1574 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %140) #7
  br label %3664

1579:                                             ; preds = %1567, %1561
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %141, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1580 unwind label %1606

1580:                                             ; preds = %1579
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %141)
          to label %1581 unwind label %1608

1581:                                             ; preds = %1580
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %141) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %142) #7
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %142, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1582 unwind label %1610

1582:                                             ; preds = %1581
  %1583 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %142)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %142) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %143) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %143, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1584 unwind label %1612

1584:                                             ; preds = %1582
  %1585 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %143)
          to label %1586 unwind label %1614

1586:                                             ; preds = %1584
  %1587 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1585)
  %.not994 = icmp eq i32 %1587, 33
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %143) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %143) #7
  br i1 %.not994, label %1626, label %1588

1588:                                             ; preds = %1586
  %1589 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1590 unwind label %1606

1590:                                             ; preds = %1588
  br i1 %1589, label %1591, label %1617

1591:                                             ; preds = %1590
  %1592 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1593 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1592, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1594 unwind label %1606

1594:                                             ; preds = %1591
  %1595 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1593, ptr noundef nonnull @.str.1)
          to label %1596 unwind label %1606

1596:                                             ; preds = %1594
  %1597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1595, ptr noundef nonnull @.str.2)
          to label %1598 unwind label %1606

1598:                                             ; preds = %1596
  %1599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1597, ptr noundef nonnull @.str.3)
          to label %1600 unwind label %1606

1600:                                             ; preds = %1598
  %1601 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1599, i32 noundef 1999)
          to label %1602 unwind label %1606

1602:                                             ; preds = %1600
  %1603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1601, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1604 unwind label %1606

1604:                                             ; preds = %1602
  %1605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1603, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1617 unwind label %1606

1606:                                             ; preds = %1604, %1602, %1600, %1598, %1596, %1594, %1591, %1588, %1579
  %1607 = landingpad { ptr, i32 }
          cleanup
  br label %3664

1608:                                             ; preds = %1580
  %1609 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %141) #7
  br label %3664

1610:                                             ; preds = %1581
  %1611 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %142) #7
  br label %3664

1612:                                             ; preds = %1582
  %1613 = landingpad { ptr, i32 }
          cleanup
  br label %1616

1614:                                             ; preds = %1584
  %1615 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %143) #7
  br label %1616

1616:                                             ; preds = %1614, %1612
  %.pn992 = phi { ptr, i32 } [ %1615, %1614 ], [ %1613, %1612 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %143) #7
  br label %3664

1617:                                             ; preds = %1604, %1590
  %1618 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %144, i32 noundef 33)
          to label %1619 unwind label %.thread1344

1619:                                             ; preds = %1617
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1618, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %144)
          to label %1621 unwind label %.thread1348

.thread1348:                                      ; preds = %1619
  %1620 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %144) #7
  br label %1625

1621:                                             ; preds = %1619
  invoke void @__cxa_throw(ptr nonnull %1618, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1623

.thread1344:                                      ; preds = %1617
  %1622 = landingpad { ptr, i32 }
          cleanup
  br label %1625

1623:                                             ; preds = %1621
  %1624 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %144) #7
  br label %3664

1625:                                             ; preds = %.thread1348, %.thread1344
  %.pn10131347 = phi { ptr, i32 } [ %1622, %.thread1344 ], [ %1620, %.thread1348 ]
  call void @__cxa_free_exception(ptr %1618) #7
  br label %3664

1626:                                             ; preds = %1586
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %145) #7
  invoke void @_Z10Parse_TypeR11TokenStreamb(ptr dead_on_unwind nonnull writable sret(%class.TypeRef) align 8 %145, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext true)
          to label %1627 unwind label %1650

1627:                                             ; preds = %1626
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %146) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %146, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1628 unwind label %1652

1628:                                             ; preds = %1627
  %1629 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %146)
          to label %1630 unwind label %1654

1630:                                             ; preds = %1628
  %1631 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1629)
  %.not997 = icmp eq i32 %1631, 50
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %146) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %146) #7
  br i1 %.not997, label %1668, label %1632

1632:                                             ; preds = %1630
  %1633 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1634 unwind label %1657

1634:                                             ; preds = %1632
  br i1 %1633, label %1635, label %1659

1635:                                             ; preds = %1634
  %1636 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1637 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1636, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1638 unwind label %1657

1638:                                             ; preds = %1635
  %1639 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1637, ptr noundef nonnull @.str.1)
          to label %1640 unwind label %1657

1640:                                             ; preds = %1638
  %1641 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1639, ptr noundef nonnull @.str.2)
          to label %1642 unwind label %1657

1642:                                             ; preds = %1640
  %1643 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1641, ptr noundef nonnull @.str.3)
          to label %1644 unwind label %1657

1644:                                             ; preds = %1642
  %1645 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1643, i32 noundef 2002)
          to label %1646 unwind label %1657

1646:                                             ; preds = %1644
  %1647 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1645, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1648 unwind label %1657

1648:                                             ; preds = %1646
  %1649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1647, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1659 unwind label %1657

1650:                                             ; preds = %1626
  %1651 = landingpad { ptr, i32 }
          cleanup
  br label %1731

1652:                                             ; preds = %1627
  %1653 = landingpad { ptr, i32 }
          cleanup
  br label %1656

1654:                                             ; preds = %1628
  %1655 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %146) #7
  br label %1656

1656:                                             ; preds = %1654, %1652
  %.pn995 = phi { ptr, i32 } [ %1655, %1654 ], [ %1653, %1652 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %146) #7
  br label %1730

1657:                                             ; preds = %1648, %1646, %1644, %1642, %1640, %1638, %1635, %1632
  %1658 = landingpad { ptr, i32 }
          cleanup
  br label %1730

1659:                                             ; preds = %1648, %1634
  %1660 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %147, i32 noundef 50)
          to label %1661 unwind label %.thread1350

1661:                                             ; preds = %1659
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1660, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %147)
          to label %1663 unwind label %.thread1354

.thread1354:                                      ; preds = %1661
  %1662 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %147) #7
  br label %1667

1663:                                             ; preds = %1661
  invoke void @__cxa_throw(ptr nonnull %1660, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1665

.thread1350:                                      ; preds = %1659
  %1664 = landingpad { ptr, i32 }
          cleanup
  br label %1667

1665:                                             ; preds = %1663
  %1666 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %147) #7
  br label %1730

1667:                                             ; preds = %.thread1354, %.thread1350
  %.pn10091353 = phi { ptr, i32 } [ %1664, %.thread1350 ], [ %1662, %.thread1354 ]
  call void @__cxa_free_exception(ptr %1660) #7
  br label %1730

1668:                                             ; preds = %1630
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %148) #7
  invoke void @_Z10Parse_ExprR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::Expr") align 8 %148, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1669 unwind label %1692

1669:                                             ; preds = %1668
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %149) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %149, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1670 unwind label %1694

1670:                                             ; preds = %1669
  %1671 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %149)
          to label %1672 unwind label %1696

1672:                                             ; preds = %1670
  %1673 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1671)
  %.not1000 = icmp eq i32 %1673, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %149) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %149) #7
  br i1 %.not1000, label %1710, label %1674

1674:                                             ; preds = %1672
  %1675 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1676 unwind label %1699

1676:                                             ; preds = %1674
  br i1 %1675, label %1677, label %1701

1677:                                             ; preds = %1676
  %1678 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1679 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1678, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1680 unwind label %1699

1680:                                             ; preds = %1677
  %1681 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1679, ptr noundef nonnull @.str.1)
          to label %1682 unwind label %1699

1682:                                             ; preds = %1680
  %1683 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1681, ptr noundef nonnull @.str.2)
          to label %1684 unwind label %1699

1684:                                             ; preds = %1682
  %1685 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1683, ptr noundef nonnull @.str.3)
          to label %1686 unwind label %1699

1686:                                             ; preds = %1684
  %1687 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1685, i32 noundef 2006)
          to label %1688 unwind label %1699

1688:                                             ; preds = %1686
  %1689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1687, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1690 unwind label %1699

1690:                                             ; preds = %1688
  %1691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1689, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1701 unwind label %1699

1692:                                             ; preds = %1668
  %1693 = landingpad { ptr, i32 }
          cleanup
  br label %1729

1694:                                             ; preds = %1669
  %1695 = landingpad { ptr, i32 }
          cleanup
  br label %1698

1696:                                             ; preds = %1670
  %1697 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %149) #7
  br label %1698

1698:                                             ; preds = %1696, %1694
  %.pn998 = phi { ptr, i32 } [ %1697, %1696 ], [ %1695, %1694 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %149) #7
  br label %1728

1699:                                             ; preds = %1690, %1688, %1686, %1684, %1682, %1680, %1677, %1674
  %1700 = landingpad { ptr, i32 }
          cleanup
  br label %1728

1701:                                             ; preds = %1690, %1676
  %1702 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %150, i32 noundef 32)
          to label %1703 unwind label %.thread1356

1703:                                             ; preds = %1701
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1702, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %150)
          to label %1705 unwind label %.thread1360

.thread1360:                                      ; preds = %1703
  %1704 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %150) #7
  br label %1709

1705:                                             ; preds = %1703
  invoke void @__cxa_throw(ptr nonnull %1702, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1707

.thread1356:                                      ; preds = %1701
  %1706 = landingpad { ptr, i32 }
          cleanup
  br label %1709

1707:                                             ; preds = %1705
  %1708 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %150) #7
  br label %1728

1709:                                             ; preds = %.thread1360, %.thread1356
  %.pn10051359 = phi { ptr, i32 } [ %1706, %.thread1356 ], [ %1704, %.thread1360 ]
  call void @__cxa_free_exception(ptr %1702) #7
  br label %1728

1710:                                             ; preds = %1672
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %151) #7
  invoke void @_ZN7TypeRefC2EOS_(ptr noundef nonnull align 8 dereferenceable(120) %153, ptr noundef nonnull align 8 dereferenceable(120) %145)
          to label %1711 unwind label %1717

1711:                                             ; preds = %1710
  %1712 = select i1 %1563, i32 2, i32 1
  call void @_ZN3AST4ExprC2EOS0_(ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 8 dereferenceable(16) %148) #7
  invoke void @_ZN3AST6StaticC2ENS0_5ClassE7TypeRefNS_4ExprE(ptr noundef nonnull align 8 dereferenceable(216) %152, i32 noundef %1712, ptr noundef nonnull %153, ptr noundef nonnull %154)
          to label %1713 unwind label %1719

1713:                                             ; preds = %1711
  invoke void @_ZN3AST4ItemC2ENS_6StaticE(ptr noundef nonnull align 8 dereferenceable(488) %151, ptr noundef nonnull %152)
          to label %1714 unwind label %1721

1714:                                             ; preds = %1713
  %1715 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %151)
          to label %1716 unwind label %1723

1716:                                             ; preds = %1714
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %151) #7
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %152) #7
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #7
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %153) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %151) #7
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %148) #7
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %145) #7
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %145) #7
  br label %3654

1717:                                             ; preds = %1710
  %1718 = landingpad { ptr, i32 }
          cleanup
  br label %1727

1719:                                             ; preds = %1711
  %1720 = landingpad { ptr, i32 }
          cleanup
  br label %1726

1721:                                             ; preds = %1713
  %1722 = landingpad { ptr, i32 }
          cleanup
  br label %1725

1723:                                             ; preds = %1714
  %1724 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %151) #7
  br label %1725

1725:                                             ; preds = %1723, %1721
  %.pn1001 = phi { ptr, i32 } [ %1724, %1723 ], [ %1722, %1721 ]
  call void @_ZN3AST6StaticD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %152) #7
  br label %1726

1726:                                             ; preds = %1725, %1719
  %.pn1001.pn = phi { ptr, i32 } [ %.pn1001, %1725 ], [ %1720, %1719 ]
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %154) #7
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %153) #7
  br label %1727

1727:                                             ; preds = %1726, %1717
  %.pn1001.pn.pn = phi { ptr, i32 } [ %.pn1001.pn, %1726 ], [ %1718, %1717 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %151) #7
  br label %1728

1728:                                             ; preds = %1707, %1709, %1727, %1699, %1698
  %.pn1005.pn = phi { ptr, i32 } [ %.pn10051359, %1709 ], [ %1708, %1707 ], [ %1700, %1699 ], [ %.pn1001.pn.pn, %1727 ], [ %.pn998, %1698 ]
  call void @_ZN3AST4ExprD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %148) #7
  br label %1729

1729:                                             ; preds = %1728, %1692
  %.pn1005.pn.pn = phi { ptr, i32 } [ %.pn1005.pn, %1728 ], [ %1693, %1692 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %148) #7
  br label %1730

1730:                                             ; preds = %1665, %1667, %1729, %1657, %1656
  %.pn1009.pn = phi { ptr, i32 } [ %.pn10091353, %1667 ], [ %1666, %1665 ], [ %1658, %1657 ], [ %.pn1005.pn.pn, %1729 ], [ %.pn995, %1656 ]
  call void @_ZN7TypeRefD1Ev(ptr noundef nonnull align 8 dereferenceable(120) %145) #7
  br label %1731

1731:                                             ; preds = %1730, %1650
  %.pn1009.pn.pn = phi { ptr, i32 } [ %.pn1009.pn, %1730 ], [ %1651, %1650 ]
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %145) #7
  br label %3664

1732:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %155) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %155, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1733 unwind label %1737

1733:                                             ; preds = %1732
  %1734 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %155)
          to label %1735 unwind label %1739

1735:                                             ; preds = %1733
  %1736 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1734)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %155) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %155) #7
  switch i32 %1736, label %2128 [
    i32 82, label %1742
    i32 88, label %1865
    i32 87, label %1924
    i32 90, label %1981
    i32 14, label %2021
  ]

1737:                                             ; preds = %1732
  %1738 = landingpad { ptr, i32 }
          cleanup
  br label %1741

1739:                                             ; preds = %1733
  %1740 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %155) #7
  br label %1741

1741:                                             ; preds = %1739, %1737
  %.pn928 = phi { ptr, i32 } [ %1740, %1739 ], [ %1738, %1737 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %155) #7
  br label %3664

1742:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %156) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %157) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull @.str.11, ptr noundef nonnull align 1 dereferenceable(1) %157)
          to label %1743 unwind label %1753

1743:                                             ; preds = %1742
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %157) #7
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %158) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %158, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1744 unwind label %1755

1744:                                             ; preds = %1743
  %1745 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %158)
          to label %1746 unwind label %1757

1746:                                             ; preds = %1744
  %1747 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1745)
  %1748 = icmp eq i32 %1747, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %158) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %158) #7
  br i1 %1748, label %1749, label %1762

1749:                                             ; preds = %1746
  %1750 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1751 unwind label %1760

1751:                                             ; preds = %1749
  %1752 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %156, ptr noundef nonnull align 8 dereferenceable(32) %1750) #7
  br label %1767

1753:                                             ; preds = %1742
  %1754 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %157) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %157) #7
  br label %1864

1755:                                             ; preds = %1743
  %1756 = landingpad { ptr, i32 }
          cleanup
  br label %1759

1757:                                             ; preds = %1744
  %1758 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %158) #7
  br label %1759

1759:                                             ; preds = %1757, %1755
  %.pn968 = phi { ptr, i32 } [ %1758, %1757 ], [ %1756, %1755 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %158) #7
  br label %1863

1760:                                             ; preds = %1841, %1825, %1823, %1821, %1819, %1817, %1815, %1812, %1809, %1788, %1786, %1784, %1782, %1780, %1778, %1775, %1772, %1762, %1749
  %1761 = landingpad { ptr, i32 }
          cleanup
  br label %1863

1762:                                             ; preds = %1746
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %159, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1763 unwind label %1760

1763:                                             ; preds = %1762
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %159)
          to label %1764 unwind label %1765

1764:                                             ; preds = %1763
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %159) #7
  br label %1767

1765:                                             ; preds = %1763
  %1766 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %159) #7
  br label %1863

1767:                                             ; preds = %1751, %1764
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %160) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %160, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1768 unwind label %1790

1768:                                             ; preds = %1767
  %1769 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %160)
          to label %1770 unwind label %1792

1770:                                             ; preds = %1768
  %1771 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1769)
  %.not972 = icmp eq i32 %1771, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %160) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %160) #7
  br i1 %.not972, label %1804, label %1772

1772:                                             ; preds = %1770
  %1773 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1774 unwind label %1760

1774:                                             ; preds = %1772
  br i1 %1773, label %1775, label %1795

1775:                                             ; preds = %1774
  %1776 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1777 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1776, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1778 unwind label %1760

1778:                                             ; preds = %1775
  %1779 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1777, ptr noundef nonnull @.str.1)
          to label %1780 unwind label %1760

1780:                                             ; preds = %1778
  %1781 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1779, ptr noundef nonnull @.str.2)
          to label %1782 unwind label %1760

1782:                                             ; preds = %1780
  %1783 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1781, ptr noundef nonnull @.str.3)
          to label %1784 unwind label %1760

1784:                                             ; preds = %1782
  %1785 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1783, i32 noundef 2025)
          to label %1786 unwind label %1760

1786:                                             ; preds = %1784
  %1787 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1785, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1788 unwind label %1760

1788:                                             ; preds = %1786
  %1789 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1787, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1795 unwind label %1760

1790:                                             ; preds = %1767
  %1791 = landingpad { ptr, i32 }
          cleanup
  br label %1794

1792:                                             ; preds = %1768
  %1793 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %160) #7
  br label %1794

1794:                                             ; preds = %1792, %1790
  %.pn970 = phi { ptr, i32 } [ %1793, %1792 ], [ %1791, %1790 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %160) #7
  br label %1863

1795:                                             ; preds = %1788, %1774
  %1796 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %161, i32 noundef 88)
          to label %1797 unwind label %.thread1362

1797:                                             ; preds = %1795
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1796, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %161)
          to label %1799 unwind label %.thread1366

.thread1366:                                      ; preds = %1797
  %1798 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %161) #7
  br label %1803

1799:                                             ; preds = %1797
  invoke void @__cxa_throw(ptr nonnull %1796, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1801

.thread1362:                                      ; preds = %1795
  %1800 = landingpad { ptr, i32 }
          cleanup
  br label %1803

1801:                                             ; preds = %1799
  %1802 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %161) #7
  br label %1863

1803:                                             ; preds = %.thread1366, %.thread1362
  %.pn9821365 = phi { ptr, i32 } [ %1800, %.thread1362 ], [ %1798, %.thread1366 ]
  call void @__cxa_free_exception(ptr %1796) #7
  br label %1863

1804:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %162) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %162, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1805 unwind label %1827

1805:                                             ; preds = %1804
  %1806 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %162)
          to label %1807 unwind label %1829

1807:                                             ; preds = %1805
  %1808 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1806)
  %.not975 = icmp eq i32 %1808, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %162) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %162) #7
  br i1 %.not975, label %1841, label %1809

1809:                                             ; preds = %1807
  %1810 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1811 unwind label %1760

1811:                                             ; preds = %1809
  br i1 %1810, label %1812, label %1832

1812:                                             ; preds = %1811
  %1813 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1814 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1813, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1815 unwind label %1760

1815:                                             ; preds = %1812
  %1816 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1814, ptr noundef nonnull @.str.1)
          to label %1817 unwind label %1760

1817:                                             ; preds = %1815
  %1818 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1816, ptr noundef nonnull @.str.2)
          to label %1819 unwind label %1760

1819:                                             ; preds = %1817
  %1820 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1818, ptr noundef nonnull @.str.3)
          to label %1821 unwind label %1760

1821:                                             ; preds = %1819
  %1822 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1820, i32 noundef 2026)
          to label %1823 unwind label %1760

1823:                                             ; preds = %1821
  %1824 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1822, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1825 unwind label %1760

1825:                                             ; preds = %1823
  %1826 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1824, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1832 unwind label %1760

1827:                                             ; preds = %1804
  %1828 = landingpad { ptr, i32 }
          cleanup
  br label %1831

1829:                                             ; preds = %1805
  %1830 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %162) #7
  br label %1831

1831:                                             ; preds = %1829, %1827
  %.pn973 = phi { ptr, i32 } [ %1830, %1829 ], [ %1828, %1827 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %162) #7
  br label %1863

1832:                                             ; preds = %1825, %1811
  %1833 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %163, i32 noundef 14)
          to label %1834 unwind label %.thread1368

1834:                                             ; preds = %1832
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1833, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %163)
          to label %1836 unwind label %.thread1372

.thread1372:                                      ; preds = %1834
  %1835 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %163) #7
  br label %1840

1836:                                             ; preds = %1834
  invoke void @__cxa_throw(ptr nonnull %1833, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1838

.thread1368:                                      ; preds = %1832
  %1837 = landingpad { ptr, i32 }
          cleanup
  br label %1840

1838:                                             ; preds = %1836
  %1839 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %163) #7
  br label %1863

1840:                                             ; preds = %.thread1372, %.thread1368
  %.pn9801371 = phi { ptr, i32 } [ %1837, %.thread1368 ], [ %1835, %.thread1372 ]
  call void @__cxa_free_exception(ptr %1833) #7
  br label %1863

1841:                                             ; preds = %1807
  %1842 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1843 unwind label %1760

1843:                                             ; preds = %1841
  %1844 = getelementptr inbounds i8, ptr %1842, i64 8
  %1845 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1844)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %164) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %166, ptr noundef nonnull align 8 dereferenceable(32) %156)
          to label %1846 unwind label %1852

1846:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %167) #7
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %167)
  %1847 = call i24 @_ZNK3AST8Function5Flags10set_unsafeEv(ptr noundef nonnull align 1 dereferenceable(3) %167)
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %165, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %166, i24 %1847)
          to label %1848 unwind label %1854

1848:                                             ; preds = %1846
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %164, ptr noundef nonnull %165)
          to label %1849 unwind label %1856

1849:                                             ; preds = %1848
  %1850 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %164)
          to label %1851 unwind label %1858

1851:                                             ; preds = %1849
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %164) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %165) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %167) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %164) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #7
  br label %3654

1852:                                             ; preds = %1843
  %1853 = landingpad { ptr, i32 }
          cleanup
  br label %1862

1854:                                             ; preds = %1846
  %1855 = landingpad { ptr, i32 }
          cleanup
  br label %1861

1856:                                             ; preds = %1848
  %1857 = landingpad { ptr, i32 }
          cleanup
  br label %1860

1858:                                             ; preds = %1849
  %1859 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %164) #7
  br label %1860

1860:                                             ; preds = %1858, %1856
  %.pn976 = phi { ptr, i32 } [ %1859, %1858 ], [ %1857, %1856 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %165) #7
  br label %1861

1861:                                             ; preds = %1860, %1854
  %.pn976.pn = phi { ptr, i32 } [ %.pn976, %1860 ], [ %1855, %1854 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %167) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %166) #7
  br label %1862

1862:                                             ; preds = %1861, %1852
  %.pn976.pn.pn = phi { ptr, i32 } [ %.pn976.pn, %1861 ], [ %1853, %1852 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %164) #7
  br label %1863

1863:                                             ; preds = %1838, %1801, %1840, %1803, %1862, %1831, %1794, %1765, %1760, %1759
  %.pn982.pn = phi { ptr, i32 } [ %.pn9821365, %1803 ], [ %1802, %1801 ], [ %1761, %1760 ], [ %.pn9801371, %1840 ], [ %1839, %1838 ], [ %.pn976.pn.pn, %1862 ], [ %.pn973, %1831 ], [ %.pn970, %1794 ], [ %1766, %1765 ], [ %.pn968, %1759 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %156) #7
  br label %1864

1864:                                             ; preds = %1863, %1753
  %.pn982.pn.pn = phi { ptr, i32 } [ %.pn982.pn, %1863 ], [ %1754, %1753 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %156) #7
  br label %3664

1865:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %168) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %168, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1866 unwind label %1888

1866:                                             ; preds = %1865
  %1867 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %168)
          to label %1868 unwind label %1890

1868:                                             ; preds = %1866
  %1869 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1867)
  %.not961 = icmp eq i32 %1869, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %168) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %168) #7
  br i1 %.not961, label %1902, label %1870

1870:                                             ; preds = %1868
  %1871 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1872 unwind label %617

1872:                                             ; preds = %1870
  br i1 %1871, label %1873, label %1893

1873:                                             ; preds = %1872
  %1874 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1875 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1874, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1876 unwind label %617

1876:                                             ; preds = %1873
  %1877 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1875, ptr noundef nonnull @.str.1)
          to label %1878 unwind label %617

1878:                                             ; preds = %1876
  %1879 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1877, ptr noundef nonnull @.str.2)
          to label %1880 unwind label %617

1880:                                             ; preds = %1878
  %1881 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1879, ptr noundef nonnull @.str.3)
          to label %1882 unwind label %617

1882:                                             ; preds = %1880
  %1883 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1881, i32 noundef 2032)
          to label %1884 unwind label %617

1884:                                             ; preds = %1882
  %1885 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1883, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1886 unwind label %617

1886:                                             ; preds = %1884
  %1887 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1885, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1893 unwind label %617

1888:                                             ; preds = %1865
  %1889 = landingpad { ptr, i32 }
          cleanup
  br label %1892

1890:                                             ; preds = %1866
  %1891 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %168) #7
  br label %1892

1892:                                             ; preds = %1890, %1888
  %.pn959 = phi { ptr, i32 } [ %1891, %1890 ], [ %1889, %1888 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %168) #7
  br label %3664

1893:                                             ; preds = %1886, %1872
  %1894 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %169, i32 noundef 14)
          to label %1895 unwind label %.thread1374

1895:                                             ; preds = %1893
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1894, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %169)
          to label %1897 unwind label %.thread1378

.thread1378:                                      ; preds = %1895
  %1896 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %169) #7
  br label %1901

1897:                                             ; preds = %1895
  invoke void @__cxa_throw(ptr nonnull %1894, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1899

.thread1374:                                      ; preds = %1893
  %1898 = landingpad { ptr, i32 }
          cleanup
  br label %1901

1899:                                             ; preds = %1897
  %1900 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %169) #7
  br label %3664

1901:                                             ; preds = %.thread1378, %.thread1374
  %.pn9661377 = phi { ptr, i32 } [ %1898, %.thread1374 ], [ %1896, %.thread1378 ]
  call void @__cxa_free_exception(ptr %1894) #7
  br label %3664

1902:                                             ; preds = %1868
  %1903 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1904 unwind label %617

1904:                                             ; preds = %1902
  %1905 = getelementptr inbounds i8, ptr %1903, i64 8
  %1906 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1905)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %170) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %173) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %172, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %173)
          to label %1907 unwind label %1913

1907:                                             ; preds = %1904
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %174) #7
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %174)
  %1908 = call i24 @_ZNK3AST8Function5Flags10set_unsafeEv(ptr noundef nonnull align 1 dereferenceable(3) %174)
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %171, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %172, i24 %1908)
          to label %1909 unwind label %1915

1909:                                             ; preds = %1907
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %170, ptr noundef nonnull %171)
          to label %1910 unwind label %1917

1910:                                             ; preds = %1909
  %1911 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %170)
          to label %1912 unwind label %1919

1912:                                             ; preds = %1910
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %170) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %171) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %174) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %170) #7
  br label %3654

1913:                                             ; preds = %1904
  %1914 = landingpad { ptr, i32 }
          cleanup
  br label %1923

1915:                                             ; preds = %1907
  %1916 = landingpad { ptr, i32 }
          cleanup
  br label %1922

1917:                                             ; preds = %1909
  %1918 = landingpad { ptr, i32 }
          cleanup
  br label %1921

1919:                                             ; preds = %1910
  %1920 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %170) #7
  br label %1921

1921:                                             ; preds = %1919, %1917
  %.pn962 = phi { ptr, i32 } [ %1920, %1919 ], [ %1918, %1917 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %171) #7
  br label %1922

1922:                                             ; preds = %1921, %1915
  %.pn962.pn = phi { ptr, i32 } [ %.pn962, %1921 ], [ %1916, %1915 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %174) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %172) #7
  br label %1923

1923:                                             ; preds = %1922, %1913
  %.pn962.pn.pn = phi { ptr, i32 } [ %.pn962.pn, %1922 ], [ %1914, %1913 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %173) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %173) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %170) #7
  br label %3664

1924:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %175) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %175, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1925 unwind label %1947

1925:                                             ; preds = %1924
  %1926 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %175)
          to label %1927 unwind label %1949

1927:                                             ; preds = %1925
  %1928 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1926)
  %.not953 = icmp eq i32 %1928, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %175) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %175) #7
  br i1 %.not953, label %1961, label %1929

1929:                                             ; preds = %1927
  %1930 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1931 unwind label %617

1931:                                             ; preds = %1929
  br i1 %1930, label %1932, label %1952

1932:                                             ; preds = %1931
  %1933 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1934 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1933, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %1935 unwind label %617

1935:                                             ; preds = %1932
  %1936 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1934, ptr noundef nonnull @.str.1)
          to label %1937 unwind label %617

1937:                                             ; preds = %1935
  %1938 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1936, ptr noundef nonnull @.str.2)
          to label %1939 unwind label %617

1939:                                             ; preds = %1937
  %1940 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1938, ptr noundef nonnull @.str.3)
          to label %1941 unwind label %617

1941:                                             ; preds = %1939
  %1942 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1940, i32 noundef 2039)
          to label %1943 unwind label %617

1943:                                             ; preds = %1941
  %1944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1942, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %1945 unwind label %617

1945:                                             ; preds = %1943
  %1946 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1944, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1952 unwind label %617

1947:                                             ; preds = %1924
  %1948 = landingpad { ptr, i32 }
          cleanup
  br label %1951

1949:                                             ; preds = %1925
  %1950 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %175) #7
  br label %1951

1951:                                             ; preds = %1949, %1947
  %.pn951 = phi { ptr, i32 } [ %1950, %1949 ], [ %1948, %1947 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %175) #7
  br label %3664

1952:                                             ; preds = %1945, %1931
  %1953 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %176, i32 noundef 14)
          to label %1954 unwind label %.thread1380

1954:                                             ; preds = %1952
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1953, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %176)
          to label %1956 unwind label %.thread1384

.thread1384:                                      ; preds = %1954
  %1955 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %176) #7
  br label %1960

1956:                                             ; preds = %1954
  invoke void @__cxa_throw(ptr nonnull %1953, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %1958

.thread1380:                                      ; preds = %1952
  %1957 = landingpad { ptr, i32 }
          cleanup
  br label %1960

1958:                                             ; preds = %1956
  %1959 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %176) #7
  br label %3664

1960:                                             ; preds = %.thread1384, %.thread1380
  %.pn9571383 = phi { ptr, i32 } [ %1957, %.thread1380 ], [ %1955, %.thread1384 ]
  call void @__cxa_free_exception(ptr %1953) #7
  br label %3664

1961:                                             ; preds = %1927
  %1962 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %1963 unwind label %617

1963:                                             ; preds = %1961
  %1964 = getelementptr inbounds i8, ptr %1962, i64 8
  %1965 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %1964)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %177) #7
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::GenericParams") align 8 %178, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1966 unwind label %1971

1966:                                             ; preds = %1963
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Trait") align 8 %177, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %178)
          to label %1967 unwind label %1973

1967:                                             ; preds = %1966
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %178) #7
  call void @_ZN3AST5Trait13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(128) %177)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %179) #7
  call void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128) %180, ptr noundef nonnull align 8 dereferenceable(128) %177) #7
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %179, ptr noundef nonnull %180)
          to label %1968 unwind label %1975

1968:                                             ; preds = %1967
  %1969 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %179)
          to label %1970 unwind label %1977

1970:                                             ; preds = %1968
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %179) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %180) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %179) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %177) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %177) #7
  br label %3654

1971:                                             ; preds = %1963
  %1972 = landingpad { ptr, i32 }
          cleanup
  br label %1980

1973:                                             ; preds = %1966
  %1974 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %178) #7
  br label %1980

1975:                                             ; preds = %1967
  %1976 = landingpad { ptr, i32 }
          cleanup
  br label %1979

1977:                                             ; preds = %1968
  %1978 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %179) #7
  br label %1979

1979:                                             ; preds = %1977, %1975
  %.pn954 = phi { ptr, i32 } [ %1978, %1977 ], [ %1976, %1975 ]
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %180) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %179) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %177) #7
  br label %1980

1980:                                             ; preds = %1979, %1973, %1971
  %.pn954.pn = phi { ptr, i32 } [ %.pn954, %1979 ], [ %1974, %1973 ], [ %1972, %1971 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %177) #7
  br label %3664

1981:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %181) #7
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %182, ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  invoke void @_Z10Parse_ImplR11TokenStreamN3AST13AttributeListEb(ptr dead_on_unwind nonnull writable sret(%"class.AST::Item") align 8 %181, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %182, i1 noundef zeroext true)
          to label %1982 unwind label %1987

1982:                                             ; preds = %1981
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %182) #7
  %1983 = call noundef zeroext i1 @_ZNK3AST4Item7is_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %181)
  br i1 %1983, label %1984, label %1991

1984:                                             ; preds = %1982
  %1985 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZN3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488) %181)
  %1986 = call noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Impl3defEv(ptr noundef nonnull align 8 dereferenceable(472) %1985)
  br label %2007

1987:                                             ; preds = %1981
  %1988 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %182) #7
  br label %2020

1989:                                             ; preds = %1999
  %1990 = landingpad { ptr, i32 }
          cleanup
  br label %2019

1991:                                             ; preds = %1982
  %1992 = call noundef zeroext i1 @_ZNK3AST4Item10is_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %181)
  br i1 %1992, label %1993, label %1995

1993:                                             ; preds = %1991
  %1994 = call noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488) %181)
  br label %2007

1995:                                             ; preds = %1991
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %183) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %183, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %1996 unwind label %2000

1996:                                             ; preds = %1995
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %185) #7
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %184, ptr noundef nonnull align 1 dereferenceable(1) %185) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull %184)
          to label %1997 unwind label %2002

1997:                                             ; preds = %1996
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %183) #7
  %1998 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1998, ptr noundef nonnull @.str.16)
          to label %1999 unwind label %2005

1999:                                             ; preds = %1997
  invoke void @__cxa_throw(ptr nonnull %1998, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %3674 unwind label %1989

2000:                                             ; preds = %1995
  %2001 = landingpad { ptr, i32 }
          cleanup
  br label %2004

2002:                                             ; preds = %1996
  %2003 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %184) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %185) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %183) #7
  br label %2004

2004:                                             ; preds = %2002, %2000
  %.pn944 = phi { ptr, i32 } [ %2003, %2002 ], [ %2001, %2000 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %183) #7
  br label %2019

2005:                                             ; preds = %1997
  %2006 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %1998) #7
  br label %2019

2007:                                             ; preds = %1993, %1984
  %.sink = phi ptr [ %1994, %1993 ], [ %1986, %1984 ]
  call void @_ZN3AST7ImplDef13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(448) %.sink)
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %186)
  call void @_ZN3AST13AttributeListC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %187)
  invoke void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.AST::Visibility") align 8 %188)
          to label %2008 unwind label %2011

2008:                                             ; preds = %2007
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef nonnull @.str)
          to label %2009 unwind label %2013

2009:                                             ; preds = %2008
  call void @_ZN3AST4ItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(488) %190, ptr noundef nonnull align 8 dereferenceable(488) %181) #7
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %186, ptr noundef nonnull %187, ptr noundef nonnull %188, ptr noundef nonnull %189, ptr noundef nonnull %190)
          to label %2010 unwind label %2015

2010:                                             ; preds = %2009
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %190) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %189) #7
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %188) #7
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %187) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #7
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %181) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %181) #7
  br label %3663

2011:                                             ; preds = %2007
  %2012 = landingpad { ptr, i32 }
          cleanup
  br label %2018

2013:                                             ; preds = %2008
  %2014 = landingpad { ptr, i32 }
          cleanup
  br label %2017

2015:                                             ; preds = %2009
  %2016 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %190) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %189) #7
  br label %2017

2017:                                             ; preds = %2015, %2013
  %.pn946 = phi { ptr, i32 } [ %2016, %2015 ], [ %2014, %2013 ]
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %188) #7
  br label %2018

2018:                                             ; preds = %2017, %2011
  %.pn946.pn = phi { ptr, i32 } [ %.pn946, %2017 ], [ %2012, %2011 ]
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %187) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %186) #7
  br label %2019

2019:                                             ; preds = %2018, %2005, %2004, %1989
  %.pn946.pn.pn = phi { ptr, i32 } [ %.pn946.pn, %2018 ], [ %1990, %1989 ], [ %2006, %2005 ], [ %.pn944, %2004 ]
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %181) #7
  br label %2020

2020:                                             ; preds = %2019, %1987
  %.pn946.pn.pn.pn = phi { ptr, i32 } [ %.pn946.pn.pn, %2019 ], [ %1988, %1987 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %181) #7
  br label %3664

2021:                                             ; preds = %1735
  %2022 = load i32, ptr @gTargetVersion, align 4, !tbaa !15
  %2023 = icmp sgt i32 %2022, 0
  br i1 %2023, label %2024, label %2128

2024:                                             ; preds = %2021
  %2025 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2026 unwind label %617

2026:                                             ; preds = %2024
  %2027 = getelementptr inbounds i8, ptr %2025, i64 8
  %2028 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %2027, ptr noundef nonnull @.str.22)
          to label %2029 unwind label %617

2029:                                             ; preds = %2026
  br i1 %2028, label %2030, label %2128

2030:                                             ; preds = %2029
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %191) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %191, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2031 unwind label %2053

2031:                                             ; preds = %2030
  %2032 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %191)
          to label %2033 unwind label %2055

2033:                                             ; preds = %2031
  %2034 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2032)
  %.not932 = icmp eq i32 %2034, 87
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %191) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %191) #7
  br i1 %.not932, label %2067, label %2035

2035:                                             ; preds = %2033
  %2036 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2037 unwind label %617

2037:                                             ; preds = %2035
  br i1 %2036, label %2038, label %2058

2038:                                             ; preds = %2037
  %2039 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2040 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2039, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2041 unwind label %617

2041:                                             ; preds = %2038
  %2042 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2040, ptr noundef nonnull @.str.1)
          to label %2043 unwind label %617

2043:                                             ; preds = %2041
  %2044 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2042, ptr noundef nonnull @.str.2)
          to label %2045 unwind label %617

2045:                                             ; preds = %2043
  %2046 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2044, ptr noundef nonnull @.str.3)
          to label %2047 unwind label %617

2047:                                             ; preds = %2045
  %2048 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2046, i32 noundef 2063)
          to label %2049 unwind label %617

2049:                                             ; preds = %2047
  %2050 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2048, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2051 unwind label %617

2051:                                             ; preds = %2049
  %2052 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2050, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2058 unwind label %617

2053:                                             ; preds = %2030
  %2054 = landingpad { ptr, i32 }
          cleanup
  br label %2057

2055:                                             ; preds = %2031
  %2056 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %191) #7
  br label %2057

2057:                                             ; preds = %2055, %2053
  %.pn930 = phi { ptr, i32 } [ %2056, %2055 ], [ %2054, %2053 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %191) #7
  br label %3664

2058:                                             ; preds = %2051, %2037
  %2059 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %192, i32 noundef 87)
          to label %2060 unwind label %.thread1386

2060:                                             ; preds = %2058
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2059, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %192)
          to label %2062 unwind label %.thread1390

.thread1390:                                      ; preds = %2060
  %2061 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %192) #7
  br label %2066

2062:                                             ; preds = %2060
  invoke void @__cxa_throw(ptr nonnull %2059, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2064

.thread1386:                                      ; preds = %2058
  %2063 = landingpad { ptr, i32 }
          cleanup
  br label %2066

2064:                                             ; preds = %2062
  %2065 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %192) #7
  br label %3664

2066:                                             ; preds = %.thread1390, %.thread1386
  %.pn9421389 = phi { ptr, i32 } [ %2063, %.thread1386 ], [ %2061, %.thread1390 ]
  call void @__cxa_free_exception(ptr %2059) #7
  br label %3664

2067:                                             ; preds = %2033
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %193) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %193, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2068 unwind label %2090

2068:                                             ; preds = %2067
  %2069 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %193)
          to label %2070 unwind label %2092

2070:                                             ; preds = %2068
  %2071 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2069)
  %.not935 = icmp eq i32 %2071, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %193) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %193) #7
  br i1 %.not935, label %2104, label %2072

2072:                                             ; preds = %2070
  %2073 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2074 unwind label %617

2074:                                             ; preds = %2072
  br i1 %2073, label %2075, label %2095

2075:                                             ; preds = %2074
  %2076 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2077 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2076, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2078 unwind label %617

2078:                                             ; preds = %2075
  %2079 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2077, ptr noundef nonnull @.str.1)
          to label %2080 unwind label %617

2080:                                             ; preds = %2078
  %2081 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2079, ptr noundef nonnull @.str.2)
          to label %2082 unwind label %617

2082:                                             ; preds = %2080
  %2083 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2081, ptr noundef nonnull @.str.3)
          to label %2084 unwind label %617

2084:                                             ; preds = %2082
  %2085 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2083, i32 noundef 2064)
          to label %2086 unwind label %617

2086:                                             ; preds = %2084
  %2087 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2085, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2088 unwind label %617

2088:                                             ; preds = %2086
  %2089 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2087, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2095 unwind label %617

2090:                                             ; preds = %2067
  %2091 = landingpad { ptr, i32 }
          cleanup
  br label %2094

2092:                                             ; preds = %2068
  %2093 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %193) #7
  br label %2094

2094:                                             ; preds = %2092, %2090
  %.pn933 = phi { ptr, i32 } [ %2093, %2092 ], [ %2091, %2090 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %193) #7
  br label %3664

2095:                                             ; preds = %2088, %2074
  %2096 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %194, i32 noundef 14)
          to label %2097 unwind label %.thread1392

2097:                                             ; preds = %2095
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2096, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %194)
          to label %2099 unwind label %.thread1396

.thread1396:                                      ; preds = %2097
  %2098 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %194) #7
  br label %2103

2099:                                             ; preds = %2097
  invoke void @__cxa_throw(ptr nonnull %2096, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2101

.thread1392:                                      ; preds = %2095
  %2100 = landingpad { ptr, i32 }
          cleanup
  br label %2103

2101:                                             ; preds = %2099
  %2102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %194) #7
  br label %3664

2103:                                             ; preds = %.thread1396, %.thread1392
  %.pn9401395 = phi { ptr, i32 } [ %2100, %.thread1392 ], [ %2098, %.thread1396 ]
  call void @__cxa_free_exception(ptr %2096) #7
  br label %3664

2104:                                             ; preds = %2070
  %2105 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2106 unwind label %617

2106:                                             ; preds = %2104
  %2107 = getelementptr inbounds i8, ptr %2105, i64 8
  %2108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2107)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %195) #7
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::GenericParams") align 8 %196, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2109 unwind label %2115

2109:                                             ; preds = %2106
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Trait") align 8 %195, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %196)
          to label %2110 unwind label %2117

2110:                                             ; preds = %2109
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %196) #7
  call void @_ZN3AST5Trait13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(128) %195)
  invoke void @_ZN3AST5Trait13set_is_markerEv(ptr noundef nonnull align 8 dereferenceable(128) %195)
          to label %2111 unwind label %2119

2111:                                             ; preds = %2110
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %197) #7
  call void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128) %198, ptr noundef nonnull align 8 dereferenceable(128) %195) #7
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %197, ptr noundef nonnull %198)
          to label %2112 unwind label %2121

2112:                                             ; preds = %2111
  %2113 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %197)
          to label %2114 unwind label %2123

2114:                                             ; preds = %2112
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %197) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %198) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %197) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %195) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %195) #7
  br label %3654

2115:                                             ; preds = %2106
  %2116 = landingpad { ptr, i32 }
          cleanup
  br label %2127

2117:                                             ; preds = %2109
  %2118 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %196) #7
  br label %2127

2119:                                             ; preds = %2110
  %2120 = landingpad { ptr, i32 }
          cleanup
  br label %2126

2121:                                             ; preds = %2111
  %2122 = landingpad { ptr, i32 }
          cleanup
  br label %2125

2123:                                             ; preds = %2112
  %2124 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %197) #7
  br label %2125

2125:                                             ; preds = %2123, %2121
  %.pn936 = phi { ptr, i32 } [ %2124, %2123 ], [ %2122, %2121 ]
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %198) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %197) #7
  br label %2126

2126:                                             ; preds = %2125, %2119
  %.pn936.pn = phi { ptr, i32 } [ %.pn936, %2125 ], [ %2120, %2119 ]
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %195) #7
  br label %2127

2127:                                             ; preds = %2126, %2117, %2115
  %.pn936.pn.pn = phi { ptr, i32 } [ %.pn936.pn, %2126 ], [ %2118, %2117 ], [ %2116, %2115 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %195) #7
  br label %3664

2128:                                             ; preds = %2021, %2029, %1735
  %2129 = call ptr @__cxa_allocate_exception(i64 96) #7
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %200) #7
  store i32 88, ptr %200, align 4, !tbaa !13
  %2130 = getelementptr inbounds i8, ptr %200, i64 4
  store i32 87, ptr %2130, align 4, !tbaa !13
  %2131 = getelementptr inbounds i8, ptr %200, i64 8
  store i32 90, ptr %2131, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %201) #7
  call void @_ZNSaI10eTokenTypeEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  invoke void @_ZNSt6vectorI10eTokenTypeSaIS0_EEC2ESt16initializer_listIS0_ERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %199, ptr nonnull %200, i64 3, ptr noundef nonnull align 1 dereferenceable(1) %201)
          to label %2132 unwind label %.thread1398

2132:                                             ; preds = %2128
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenSt6vectorI10eTokenTypeSaIS8_EE(ptr noundef nonnull align 8 dereferenceable(96) %2129, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %199)
          to label %2133 unwind label %2135

2133:                                             ; preds = %2132
  invoke void @__cxa_throw(ptr nonnull %2129, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2135

.thread1398:                                      ; preds = %2128
  %2134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %200) #7
  br label %2137

2135:                                             ; preds = %2132, %2133
  %.0635 = phi i1 [ false, %2133 ], [ true, %2132 ]
  %2136 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI10eTokenTypeSaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %199) #7
  call void @_ZNSt15__new_allocatorI10eTokenTypeED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %201) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %201) #7
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %200) #7
  br i1 %.0635, label %2137, label %3664

2137:                                             ; preds = %.thread1398, %2135
  %.pn9861401 = phi { ptr, i32 } [ %2134, %.thread1398 ], [ %2136, %2135 ]
  call void @__cxa_free_exception(ptr %2129) #7
  br label %3664

2138:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %202) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %202, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2139 unwind label %2161

2139:                                             ; preds = %2138
  %2140 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %202)
          to label %2141 unwind label %2163

2141:                                             ; preds = %2139
  %2142 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2140)
  %.not916 = icmp eq i32 %2142, 88
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %202) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %202) #7
  br i1 %.not916, label %2175, label %2143

2143:                                             ; preds = %2141
  %2144 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2145 unwind label %617

2145:                                             ; preds = %2143
  br i1 %2144, label %2146, label %2166

2146:                                             ; preds = %2145
  %2147 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2147, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2149 unwind label %617

2149:                                             ; preds = %2146
  %2150 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2148, ptr noundef nonnull @.str.1)
          to label %2151 unwind label %617

2151:                                             ; preds = %2149
  %2152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2150, ptr noundef nonnull @.str.2)
          to label %2153 unwind label %617

2153:                                             ; preds = %2151
  %2154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2152, ptr noundef nonnull @.str.3)
          to label %2155 unwind label %617

2155:                                             ; preds = %2153
  %2156 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2154, i32 noundef 2078)
          to label %2157 unwind label %617

2157:                                             ; preds = %2155
  %2158 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2156, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2159 unwind label %617

2159:                                             ; preds = %2157
  %2160 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2158, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2166 unwind label %617

2161:                                             ; preds = %2138
  %2162 = landingpad { ptr, i32 }
          cleanup
  br label %2165

2163:                                             ; preds = %2139
  %2164 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %202) #7
  br label %2165

2165:                                             ; preds = %2163, %2161
  %.pn914 = phi { ptr, i32 } [ %2164, %2163 ], [ %2162, %2161 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %202) #7
  br label %3664

2166:                                             ; preds = %2159, %2145
  %2167 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %203, i32 noundef 88)
          to label %2168 unwind label %.thread1402

2168:                                             ; preds = %2166
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2167, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %203)
          to label %2170 unwind label %.thread1406

.thread1406:                                      ; preds = %2168
  %2169 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %203) #7
  br label %2174

2170:                                             ; preds = %2168
  invoke void @__cxa_throw(ptr nonnull %2167, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2172

.thread1402:                                      ; preds = %2166
  %2171 = landingpad { ptr, i32 }
          cleanup
  br label %2174

2172:                                             ; preds = %2170
  %2173 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %203) #7
  br label %3664

2174:                                             ; preds = %.thread1406, %.thread1402
  %.pn9261405 = phi { ptr, i32 } [ %2171, %.thread1402 ], [ %2169, %.thread1406 ]
  call void @__cxa_free_exception(ptr %2167) #7
  br label %3664

2175:                                             ; preds = %2141
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %204) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %204, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2176 unwind label %2198

2176:                                             ; preds = %2175
  %2177 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %204)
          to label %2178 unwind label %2200

2178:                                             ; preds = %2176
  %2179 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2177)
  %.not919 = icmp eq i32 %2179, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %204) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %204) #7
  br i1 %.not919, label %2212, label %2180

2180:                                             ; preds = %2178
  %2181 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2182 unwind label %617

2182:                                             ; preds = %2180
  br i1 %2181, label %2183, label %2203

2183:                                             ; preds = %2182
  %2184 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2184, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2186 unwind label %617

2186:                                             ; preds = %2183
  %2187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2185, ptr noundef nonnull @.str.1)
          to label %2188 unwind label %617

2188:                                             ; preds = %2186
  %2189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2187, ptr noundef nonnull @.str.2)
          to label %2190 unwind label %617

2190:                                             ; preds = %2188
  %2191 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2189, ptr noundef nonnull @.str.3)
          to label %2192 unwind label %617

2192:                                             ; preds = %2190
  %2193 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2191, i32 noundef 2079)
          to label %2194 unwind label %617

2194:                                             ; preds = %2192
  %2195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2193, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2196 unwind label %617

2196:                                             ; preds = %2194
  %2197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2195, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2203 unwind label %617

2198:                                             ; preds = %2175
  %2199 = landingpad { ptr, i32 }
          cleanup
  br label %2202

2200:                                             ; preds = %2176
  %2201 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %204) #7
  br label %2202

2202:                                             ; preds = %2200, %2198
  %.pn917 = phi { ptr, i32 } [ %2201, %2200 ], [ %2199, %2198 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %204) #7
  br label %3664

2203:                                             ; preds = %2196, %2182
  %2204 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %205, i32 noundef 14)
          to label %2205 unwind label %.thread1408

2205:                                             ; preds = %2203
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2204, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %205)
          to label %2207 unwind label %.thread1412

.thread1412:                                      ; preds = %2205
  %2206 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %205) #7
  br label %2211

2207:                                             ; preds = %2205
  invoke void @__cxa_throw(ptr nonnull %2204, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2209

.thread1408:                                      ; preds = %2203
  %2208 = landingpad { ptr, i32 }
          cleanup
  br label %2211

2209:                                             ; preds = %2207
  %2210 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %205) #7
  br label %3664

2211:                                             ; preds = %.thread1412, %.thread1408
  %.pn9241411 = phi { ptr, i32 } [ %2208, %.thread1408 ], [ %2206, %.thread1412 ]
  call void @__cxa_free_exception(ptr %2204) #7
  br label %3664

2212:                                             ; preds = %2178
  %2213 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2214 unwind label %617

2214:                                             ; preds = %2212
  %2215 = getelementptr inbounds i8, ptr %2213, i64 8
  %2216 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2215)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %206) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %209) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %208, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %209)
          to label %2217 unwind label %2223

2217:                                             ; preds = %2214
  call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %210) #7
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %210)
  %2218 = call i24 @_ZNK3AST8Function5Flags9set_asyncEv(ptr noundef nonnull align 1 dereferenceable(3) %210)
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %207, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %208, i24 %2218)
          to label %2219 unwind label %2225

2219:                                             ; preds = %2217
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %206, ptr noundef nonnull %207)
          to label %2220 unwind label %2227

2220:                                             ; preds = %2219
  %2221 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %206)
          to label %2222 unwind label %2229

2222:                                             ; preds = %2220
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %206) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %207) #7
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %206) #7
  br label %3654

2223:                                             ; preds = %2214
  %2224 = landingpad { ptr, i32 }
          cleanup
  br label %2233

2225:                                             ; preds = %2217
  %2226 = landingpad { ptr, i32 }
          cleanup
  br label %2232

2227:                                             ; preds = %2219
  %2228 = landingpad { ptr, i32 }
          cleanup
  br label %2231

2229:                                             ; preds = %2220
  %2230 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %206) #7
  br label %2231

2231:                                             ; preds = %2229, %2227
  %.pn920 = phi { ptr, i32 } [ %2230, %2229 ], [ %2228, %2227 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %207) #7
  br label %2232

2232:                                             ; preds = %2231, %2225
  %.pn920.pn = phi { ptr, i32 } [ %.pn920, %2231 ], [ %2226, %2225 ]
  call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %210) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %208) #7
  br label %2233

2233:                                             ; preds = %2232, %2223
  %.pn920.pn.pn = phi { ptr, i32 } [ %.pn920.pn, %2232 ], [ %2224, %2223 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %209) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %209) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %206) #7
  br label %3664

2234:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %211) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %211, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2235 unwind label %2257

2235:                                             ; preds = %2234
  %2236 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %211)
          to label %2237 unwind label %2259

2237:                                             ; preds = %2235
  %2238 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2236)
  %.not907 = icmp eq i32 %2238, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %211) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %211) #7
  br i1 %.not907, label %2271, label %2239

2239:                                             ; preds = %2237
  %2240 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2241 unwind label %617

2241:                                             ; preds = %2239
  br i1 %2240, label %2242, label %2262

2242:                                             ; preds = %2241
  %2243 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2243, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2245 unwind label %617

2245:                                             ; preds = %2242
  %2246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2244, ptr noundef nonnull @.str.1)
          to label %2247 unwind label %617

2247:                                             ; preds = %2245
  %2248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2246, ptr noundef nonnull @.str.2)
          to label %2249 unwind label %617

2249:                                             ; preds = %2247
  %2250 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2248, ptr noundef nonnull @.str.3)
          to label %2251 unwind label %617

2251:                                             ; preds = %2249
  %2252 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2250, i32 noundef 2086)
          to label %2253 unwind label %617

2253:                                             ; preds = %2251
  %2254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2252, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2255 unwind label %617

2255:                                             ; preds = %2253
  %2256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2254, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2262 unwind label %617

2257:                                             ; preds = %2234
  %2258 = landingpad { ptr, i32 }
          cleanup
  br label %2261

2259:                                             ; preds = %2235
  %2260 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %211) #7
  br label %2261

2261:                                             ; preds = %2259, %2257
  %.pn905 = phi { ptr, i32 } [ %2260, %2259 ], [ %2258, %2257 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %211) #7
  br label %3664

2262:                                             ; preds = %2255, %2241
  %2263 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %212, i32 noundef 14)
          to label %2264 unwind label %.thread1414

2264:                                             ; preds = %2262
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2263, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %212)
          to label %2266 unwind label %.thread1418

.thread1418:                                      ; preds = %2264
  %2265 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %212) #7
  br label %2270

2266:                                             ; preds = %2264
  invoke void @__cxa_throw(ptr nonnull %2263, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2268

.thread1414:                                      ; preds = %2262
  %2267 = landingpad { ptr, i32 }
          cleanup
  br label %2270

2268:                                             ; preds = %2266
  %2269 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %212) #7
  br label %3664

2270:                                             ; preds = %.thread1418, %.thread1414
  %.pn9121417 = phi { ptr, i32 } [ %2267, %.thread1414 ], [ %2265, %.thread1418 ]
  call void @__cxa_free_exception(ptr %2263) #7
  br label %3664

2271:                                             ; preds = %2237
  %2272 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2273 unwind label %617

2273:                                             ; preds = %2271
  %2274 = getelementptr inbounds i8, ptr %2272, i64 8
  %2275 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2274)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %213) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %216) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %215, ptr noundef nonnull @.str.10, ptr noundef nonnull align 1 dereferenceable(1) %216)
          to label %2276 unwind label %2281

2276:                                             ; preds = %2273
  call void @_ZN3AST8Function5FlagsC2Ev(ptr noundef nonnull align 1 dereferenceable(3) %217)
  %.0.copyload = load i24, ptr %217, align 4
  invoke void @_Z25Parse_FunctionDefWithCodeR11TokenStreambNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST8Function5FlagsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Function") align 8 %214, ptr noundef nonnull align 8 dereferenceable(176) %1, i1 noundef zeroext false, ptr noundef nonnull %215, i24 %.0.copyload)
          to label %2277 unwind label %2283

2277:                                             ; preds = %2276
  invoke void @_ZN3AST4ItemC2ENS_8FunctionE(ptr noundef nonnull align 8 dereferenceable(488) %213, ptr noundef nonnull %214)
          to label %2278 unwind label %2285

2278:                                             ; preds = %2277
  %2279 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %213)
          to label %2280 unwind label %2287

2280:                                             ; preds = %2278
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %213) #7
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %214) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %216) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %213) #7
  br label %3654

2281:                                             ; preds = %2273
  %2282 = landingpad { ptr, i32 }
          cleanup
  br label %2291

2283:                                             ; preds = %2276
  %2284 = landingpad { ptr, i32 }
          cleanup
  br label %2290

2285:                                             ; preds = %2277
  %2286 = landingpad { ptr, i32 }
          cleanup
  br label %2289

2287:                                             ; preds = %2278
  %2288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %213) #7
  br label %2289

2289:                                             ; preds = %2287, %2285
  %.pn908 = phi { ptr, i32 } [ %2288, %2287 ], [ %2286, %2285 ]
  call void @_ZN3AST8FunctionD2Ev(ptr noundef nonnull align 8 dereferenceable(368) %214) #7
  br label %2290

2290:                                             ; preds = %2289, %2283
  %.pn908.pn = phi { ptr, i32 } [ %.pn908, %2289 ], [ %2284, %2283 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %215) #7
  br label %2291

2291:                                             ; preds = %2290, %2281
  %.pn908.pn.pn = phi { ptr, i32 } [ %.pn908.pn, %2290 ], [ %2282, %2281 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %216) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %216) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %213) #7
  br label %3664

2292:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %218) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %218, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2293 unwind label %2315

2293:                                             ; preds = %2292
  %2294 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %218)
          to label %2295 unwind label %2317

2295:                                             ; preds = %2293
  %2296 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2294)
  %.not899 = icmp eq i32 %2296, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %218) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %218) #7
  br i1 %.not899, label %2329, label %2297

2297:                                             ; preds = %2295
  %2298 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2299 unwind label %617

2299:                                             ; preds = %2297
  br i1 %2298, label %2300, label %2320

2300:                                             ; preds = %2299
  %2301 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2302 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2301, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2303 unwind label %617

2303:                                             ; preds = %2300
  %2304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2302, ptr noundef nonnull @.str.1)
          to label %2305 unwind label %617

2305:                                             ; preds = %2303
  %2306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2304, ptr noundef nonnull @.str.2)
          to label %2307 unwind label %617

2307:                                             ; preds = %2305
  %2308 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2306, ptr noundef nonnull @.str.3)
          to label %2309 unwind label %617

2309:                                             ; preds = %2307
  %2310 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2308, i32 noundef 2093)
          to label %2311 unwind label %617

2311:                                             ; preds = %2309
  %2312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2310, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2313 unwind label %617

2313:                                             ; preds = %2311
  %2314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2312, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2320 unwind label %617

2315:                                             ; preds = %2292
  %2316 = landingpad { ptr, i32 }
          cleanup
  br label %2319

2317:                                             ; preds = %2293
  %2318 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %218) #7
  br label %2319

2319:                                             ; preds = %2317, %2315
  %.pn897 = phi { ptr, i32 } [ %2318, %2317 ], [ %2316, %2315 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %218) #7
  br label %3664

2320:                                             ; preds = %2313, %2299
  %2321 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %219, i32 noundef 14)
          to label %2322 unwind label %.thread1420

2322:                                             ; preds = %2320
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2321, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %219)
          to label %2324 unwind label %.thread1424

.thread1424:                                      ; preds = %2322
  %2323 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %219) #7
  br label %2328

2324:                                             ; preds = %2322
  invoke void @__cxa_throw(ptr nonnull %2321, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2326

.thread1420:                                      ; preds = %2320
  %2325 = landingpad { ptr, i32 }
          cleanup
  br label %2328

2326:                                             ; preds = %2324
  %2327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %219) #7
  br label %3664

2328:                                             ; preds = %.thread1424, %.thread1420
  %.pn9031423 = phi { ptr, i32 } [ %2325, %.thread1420 ], [ %2323, %.thread1424 ]
  call void @__cxa_free_exception(ptr %2321) #7
  br label %3664

2329:                                             ; preds = %2295
  %2330 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2331 unwind label %617

2331:                                             ; preds = %2329
  %2332 = getelementptr inbounds i8, ptr %2330, i64 8
  %2333 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2332)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %220) #7
  invoke void @_Z15Parse_TypeAliasR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::TypeAlias") align 8 %221, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2334 unwind label %2338

2334:                                             ; preds = %2331
  invoke void @_ZN3AST4ItemC2ENS_9TypeAliasE(ptr noundef nonnull align 8 dereferenceable(488) %220, ptr noundef nonnull %221)
          to label %2335 unwind label %2340

2335:                                             ; preds = %2334
  %2336 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %220)
          to label %2337 unwind label %2342

2337:                                             ; preds = %2335
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %220) #7
  call void @_ZN3AST9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %221) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %220) #7
  br label %3654

2338:                                             ; preds = %2331
  %2339 = landingpad { ptr, i32 }
          cleanup
  br label %2345

2340:                                             ; preds = %2334
  %2341 = landingpad { ptr, i32 }
          cleanup
  br label %2344

2342:                                             ; preds = %2335
  %2343 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %220) #7
  br label %2344

2344:                                             ; preds = %2342, %2340
  %.pn900 = phi { ptr, i32 } [ %2343, %2342 ], [ %2341, %2340 ]
  call void @_ZN3AST9TypeAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(216) %221) #7
  br label %2345

2345:                                             ; preds = %2344, %2338
  %.pn900.pn = phi { ptr, i32 } [ %.pn900, %2344 ], [ %2339, %2338 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %220) #7
  br label %3664

2346:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %222) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %222, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2347 unwind label %2369

2347:                                             ; preds = %2346
  %2348 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %222)
          to label %2349 unwind label %2371

2349:                                             ; preds = %2347
  %2350 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2348)
  %.not891 = icmp eq i32 %2350, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %222) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %222) #7
  br i1 %.not891, label %2383, label %2351

2351:                                             ; preds = %2349
  %2352 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2353 unwind label %617

2353:                                             ; preds = %2351
  br i1 %2352, label %2354, label %2374

2354:                                             ; preds = %2353
  %2355 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2355, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2357 unwind label %617

2357:                                             ; preds = %2354
  %2358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2356, ptr noundef nonnull @.str.1)
          to label %2359 unwind label %617

2359:                                             ; preds = %2357
  %2360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2358, ptr noundef nonnull @.str.2)
          to label %2361 unwind label %617

2361:                                             ; preds = %2359
  %2362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2360, ptr noundef nonnull @.str.3)
          to label %2363 unwind label %617

2363:                                             ; preds = %2361
  %2364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2362, i32 noundef 2099)
          to label %2365 unwind label %617

2365:                                             ; preds = %2363
  %2366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2364, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2367 unwind label %617

2367:                                             ; preds = %2365
  %2368 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2366, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2374 unwind label %617

2369:                                             ; preds = %2346
  %2370 = landingpad { ptr, i32 }
          cleanup
  br label %2373

2371:                                             ; preds = %2347
  %2372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %222) #7
  br label %2373

2373:                                             ; preds = %2371, %2369
  %.pn889 = phi { ptr, i32 } [ %2372, %2371 ], [ %2370, %2369 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %222) #7
  br label %3664

2374:                                             ; preds = %2367, %2353
  %2375 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %223, i32 noundef 14)
          to label %2376 unwind label %.thread1426

2376:                                             ; preds = %2374
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2375, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %223)
          to label %2378 unwind label %.thread1430

.thread1430:                                      ; preds = %2376
  %2377 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %223) #7
  br label %2382

2378:                                             ; preds = %2376
  invoke void @__cxa_throw(ptr nonnull %2375, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2380

.thread1426:                                      ; preds = %2374
  %2379 = landingpad { ptr, i32 }
          cleanup
  br label %2382

2380:                                             ; preds = %2378
  %2381 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %223) #7
  br label %3664

2382:                                             ; preds = %.thread1430, %.thread1426
  %.pn8951429 = phi { ptr, i32 } [ %2379, %.thread1426 ], [ %2377, %.thread1430 ]
  call void @__cxa_free_exception(ptr %2375) #7
  br label %3664

2383:                                             ; preds = %2349
  %2384 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2385 unwind label %617

2385:                                             ; preds = %2383
  %2386 = getelementptr inbounds i8, ptr %2384, i64 8
  %2387 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2386)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %224) #7
  invoke void @_Z12Parse_StructR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Struct") align 8 %225, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %2388 unwind label %2392

2388:                                             ; preds = %2385
  invoke void @_ZN3AST4ItemC2ENS_6StructE(ptr noundef nonnull align 8 dereferenceable(488) %224, ptr noundef nonnull %225)
          to label %2389 unwind label %2394

2389:                                             ; preds = %2388
  %2390 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %224)
          to label %2391 unwind label %2396

2391:                                             ; preds = %2389
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %224) #7
  call void @_ZN3AST6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %225) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %224) #7
  br label %3654

2392:                                             ; preds = %2385
  %2393 = landingpad { ptr, i32 }
          cleanup
  br label %2399

2394:                                             ; preds = %2388
  %2395 = landingpad { ptr, i32 }
          cleanup
  br label %2398

2396:                                             ; preds = %2389
  %2397 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %224) #7
  br label %2398

2398:                                             ; preds = %2396, %2394
  %.pn892 = phi { ptr, i32 } [ %2397, %2396 ], [ %2395, %2394 ]
  call void @_ZN3AST6StructD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %225) #7
  br label %2399

2399:                                             ; preds = %2398, %2392
  %.pn892.pn = phi { ptr, i32 } [ %.pn892, %2398 ], [ %2393, %2392 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %224) #7
  br label %3664

2400:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %226) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %226, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2401 unwind label %2423

2401:                                             ; preds = %2400
  %2402 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %226)
          to label %2403 unwind label %2425

2403:                                             ; preds = %2401
  %2404 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2402)
  %.not883 = icmp eq i32 %2404, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %226) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %226) #7
  br i1 %.not883, label %2437, label %2405

2405:                                             ; preds = %2403
  %2406 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2407 unwind label %617

2407:                                             ; preds = %2405
  br i1 %2406, label %2408, label %2428

2408:                                             ; preds = %2407
  %2409 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2409, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2411 unwind label %617

2411:                                             ; preds = %2408
  %2412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2410, ptr noundef nonnull @.str.1)
          to label %2413 unwind label %617

2413:                                             ; preds = %2411
  %2414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2412, ptr noundef nonnull @.str.2)
          to label %2415 unwind label %617

2415:                                             ; preds = %2413
  %2416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2414, ptr noundef nonnull @.str.3)
          to label %2417 unwind label %617

2417:                                             ; preds = %2415
  %2418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2416, i32 noundef 2105)
          to label %2419 unwind label %617

2419:                                             ; preds = %2417
  %2420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2418, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2421 unwind label %617

2421:                                             ; preds = %2419
  %2422 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2420, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2428 unwind label %617

2423:                                             ; preds = %2400
  %2424 = landingpad { ptr, i32 }
          cleanup
  br label %2427

2425:                                             ; preds = %2401
  %2426 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %226) #7
  br label %2427

2427:                                             ; preds = %2425, %2423
  %.pn881 = phi { ptr, i32 } [ %2426, %2425 ], [ %2424, %2423 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %226) #7
  br label %3664

2428:                                             ; preds = %2421, %2407
  %2429 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %227, i32 noundef 14)
          to label %2430 unwind label %.thread1432

2430:                                             ; preds = %2428
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2429, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %227)
          to label %2432 unwind label %.thread1436

.thread1436:                                      ; preds = %2430
  %2431 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %227) #7
  br label %2436

2432:                                             ; preds = %2430
  invoke void @__cxa_throw(ptr nonnull %2429, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2434

.thread1432:                                      ; preds = %2428
  %2433 = landingpad { ptr, i32 }
          cleanup
  br label %2436

2434:                                             ; preds = %2432
  %2435 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %227) #7
  br label %3664

2436:                                             ; preds = %.thread1436, %.thread1432
  %.pn8871435 = phi { ptr, i32 } [ %2433, %.thread1432 ], [ %2431, %.thread1436 ]
  call void @__cxa_free_exception(ptr %2429) #7
  br label %3664

2437:                                             ; preds = %2403
  %2438 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2439 unwind label %617

2439:                                             ; preds = %2437
  %2440 = getelementptr inbounds i8, ptr %2438, i64 8
  %2441 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2440)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %228) #7
  invoke void @_Z13Parse_EnumDefR11TokenStreamRKN3AST13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Enum") align 8 %229, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %2442 unwind label %2446

2442:                                             ; preds = %2439
  invoke void @_ZN3AST4ItemC2ENS_4EnumE(ptr noundef nonnull align 8 dereferenceable(488) %228, ptr noundef nonnull %229)
          to label %2443 unwind label %2448

2443:                                             ; preds = %2442
  %2444 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %228)
          to label %2445 unwind label %2450

2445:                                             ; preds = %2443
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %228) #7
  call void @_ZN3AST4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %229) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %228) #7
  br label %3654

2446:                                             ; preds = %2439
  %2447 = landingpad { ptr, i32 }
          cleanup
  br label %2453

2448:                                             ; preds = %2442
  %2449 = landingpad { ptr, i32 }
          cleanup
  br label %2452

2450:                                             ; preds = %2443
  %2451 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %228) #7
  br label %2452

2452:                                             ; preds = %2450, %2448
  %.pn884 = phi { ptr, i32 } [ %2451, %2450 ], [ %2449, %2448 ]
  call void @_ZN3AST4EnumD2Ev(ptr noundef nonnull align 8 dereferenceable(80) %229) #7
  br label %2453

2453:                                             ; preds = %2452, %2446
  %.pn884.pn = phi { ptr, i32 } [ %.pn884, %2452 ], [ %2447, %2446 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %228) #7
  br label %3664

2454:                                             ; preds = %564
  %2455 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2456 unwind label %617

2456:                                             ; preds = %2454
  %2457 = getelementptr inbounds i8, ptr %2455, i64 8
  %2458 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %2457, ptr noundef nonnull @.str.23)
          to label %2459 unwind label %617

2459:                                             ; preds = %2456
  br i1 %2458, label %2460, label %2514

2460:                                             ; preds = %2459
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %230) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %230, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2461 unwind label %2483

2461:                                             ; preds = %2460
  %2462 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %230)
          to label %2463 unwind label %2485

2463:                                             ; preds = %2461
  %2464 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2462)
  %.not875 = icmp eq i32 %2464, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %230) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %230) #7
  br i1 %.not875, label %2497, label %2465

2465:                                             ; preds = %2463
  %2466 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2467 unwind label %617

2467:                                             ; preds = %2465
  br i1 %2466, label %2468, label %2488

2468:                                             ; preds = %2467
  %2469 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2469, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2471 unwind label %617

2471:                                             ; preds = %2468
  %2472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2470, ptr noundef nonnull @.str.1)
          to label %2473 unwind label %617

2473:                                             ; preds = %2471
  %2474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2472, ptr noundef nonnull @.str.2)
          to label %2475 unwind label %617

2475:                                             ; preds = %2473
  %2476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2474, ptr noundef nonnull @.str.3)
          to label %2477 unwind label %617

2477:                                             ; preds = %2475
  %2478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2476, i32 noundef 2113)
          to label %2479 unwind label %617

2479:                                             ; preds = %2477
  %2480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2478, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2481 unwind label %617

2481:                                             ; preds = %2479
  %2482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2480, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2488 unwind label %617

2483:                                             ; preds = %2460
  %2484 = landingpad { ptr, i32 }
          cleanup
  br label %2487

2485:                                             ; preds = %2461
  %2486 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %230) #7
  br label %2487

2487:                                             ; preds = %2485, %2483
  %.pn873 = phi { ptr, i32 } [ %2486, %2485 ], [ %2484, %2483 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %230) #7
  br label %3664

2488:                                             ; preds = %2481, %2467
  %2489 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %231, i32 noundef 14)
          to label %2490 unwind label %.thread1438

2490:                                             ; preds = %2488
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2489, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %231)
          to label %2492 unwind label %.thread1442

.thread1442:                                      ; preds = %2490
  %2491 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %231) #7
  br label %2496

2492:                                             ; preds = %2490
  invoke void @__cxa_throw(ptr nonnull %2489, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2494

.thread1438:                                      ; preds = %2488
  %2493 = landingpad { ptr, i32 }
          cleanup
  br label %2496

2494:                                             ; preds = %2492
  %2495 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %231) #7
  br label %3664

2496:                                             ; preds = %.thread1442, %.thread1438
  %.pn8791441 = phi { ptr, i32 } [ %2493, %.thread1438 ], [ %2491, %.thread1442 ]
  call void @__cxa_free_exception(ptr %2489) #7
  br label %3664

2497:                                             ; preds = %2463
  %2498 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2499 unwind label %617

2499:                                             ; preds = %2497
  %2500 = getelementptr inbounds i8, ptr %2498, i64 8
  %2501 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2500)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %232) #7
  invoke void @_Z11Parse_UnionR11TokenStreamRN3AST13AttributeListE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Union") align 8 %233, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %2502 unwind label %2506

2502:                                             ; preds = %2499
  invoke void @_ZN3AST4ItemC2ENS_5UnionE(ptr noundef nonnull align 8 dereferenceable(488) %232, ptr noundef nonnull %233)
          to label %2503 unwind label %2508

2503:                                             ; preds = %2502
  %2504 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %232)
          to label %2505 unwind label %2510

2505:                                             ; preds = %2503
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %232) #7
  call void @_ZN3AST5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(76) %233) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %232) #7
  br label %3654

2506:                                             ; preds = %2499
  %2507 = landingpad { ptr, i32 }
          cleanup
  br label %2513

2508:                                             ; preds = %2502
  %2509 = landingpad { ptr, i32 }
          cleanup
  br label %2512

2510:                                             ; preds = %2503
  %2511 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %232) #7
  br label %2512

2512:                                             ; preds = %2510, %2508
  %.pn876 = phi { ptr, i32 } [ %2511, %2510 ], [ %2509, %2508 ]
  call void @_ZN3AST5UnionD2Ev(ptr noundef nonnull align 8 dereferenceable(76) %233) #7
  br label %2513

2513:                                             ; preds = %2512, %2506
  %.pn876.pn = phi { ptr, i32 } [ %.pn876, %2512 ], [ %2507, %2506 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %232) #7
  br label %3664

2514:                                             ; preds = %2459
  %2515 = load i32, ptr @gTargetVersion, align 4, !tbaa !15
  %2516 = icmp sgt i32 %2515, 0
  br i1 %2516, label %2517, label %2621

2517:                                             ; preds = %2514
  %2518 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2519 unwind label %617

2519:                                             ; preds = %2517
  %2520 = getelementptr inbounds i8, ptr %2518, i64 8
  %2521 = invoke noundef zeroext i1 @_ZNK8RcStringeqEPKc(ptr noundef nonnull align 8 dereferenceable(8) %2520, ptr noundef nonnull @.str.22)
          to label %2522 unwind label %617

2522:                                             ; preds = %2519
  br i1 %2521, label %2523, label %2621

2523:                                             ; preds = %2522
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %234) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %234, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2524 unwind label %2546

2524:                                             ; preds = %2523
  %2525 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %234)
          to label %2526 unwind label %2548

2526:                                             ; preds = %2524
  %2527 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2525)
  %.not861 = icmp eq i32 %2527, 87
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %234) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %234) #7
  br i1 %.not861, label %2560, label %2528

2528:                                             ; preds = %2526
  %2529 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2530 unwind label %617

2530:                                             ; preds = %2528
  br i1 %2529, label %2531, label %2551

2531:                                             ; preds = %2530
  %2532 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2533 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2532, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2534 unwind label %617

2534:                                             ; preds = %2531
  %2535 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2533, ptr noundef nonnull @.str.1)
          to label %2536 unwind label %617

2536:                                             ; preds = %2534
  %2537 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2535, ptr noundef nonnull @.str.2)
          to label %2538 unwind label %617

2538:                                             ; preds = %2536
  %2539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2537, ptr noundef nonnull @.str.3)
          to label %2540 unwind label %617

2540:                                             ; preds = %2538
  %2541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2539, i32 noundef 2119)
          to label %2542 unwind label %617

2542:                                             ; preds = %2540
  %2543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2541, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2544 unwind label %617

2544:                                             ; preds = %2542
  %2545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2543, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2551 unwind label %617

2546:                                             ; preds = %2523
  %2547 = landingpad { ptr, i32 }
          cleanup
  br label %2550

2548:                                             ; preds = %2524
  %2549 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %234) #7
  br label %2550

2550:                                             ; preds = %2548, %2546
  %.pn859 = phi { ptr, i32 } [ %2549, %2548 ], [ %2547, %2546 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %234) #7
  br label %3664

2551:                                             ; preds = %2544, %2530
  %2552 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %235, i32 noundef 87)
          to label %2553 unwind label %.thread1444

2553:                                             ; preds = %2551
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2552, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %235)
          to label %2555 unwind label %.thread1448

.thread1448:                                      ; preds = %2553
  %2554 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %235) #7
  br label %2559

2555:                                             ; preds = %2553
  invoke void @__cxa_throw(ptr nonnull %2552, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2557

.thread1444:                                      ; preds = %2551
  %2556 = landingpad { ptr, i32 }
          cleanup
  br label %2559

2557:                                             ; preds = %2555
  %2558 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %235) #7
  br label %3664

2559:                                             ; preds = %.thread1448, %.thread1444
  %.pn8711447 = phi { ptr, i32 } [ %2556, %.thread1444 ], [ %2554, %.thread1448 ]
  call void @__cxa_free_exception(ptr %2552) #7
  br label %3664

2560:                                             ; preds = %2526
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %236) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %236, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2561 unwind label %2583

2561:                                             ; preds = %2560
  %2562 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %236)
          to label %2563 unwind label %2585

2563:                                             ; preds = %2561
  %2564 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2562)
  %.not864 = icmp eq i32 %2564, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %236) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %236) #7
  br i1 %.not864, label %2597, label %2565

2565:                                             ; preds = %2563
  %2566 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2567 unwind label %617

2567:                                             ; preds = %2565
  br i1 %2566, label %2568, label %2588

2568:                                             ; preds = %2567
  %2569 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2570 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2569, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2571 unwind label %617

2571:                                             ; preds = %2568
  %2572 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2570, ptr noundef nonnull @.str.1)
          to label %2573 unwind label %617

2573:                                             ; preds = %2571
  %2574 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2572, ptr noundef nonnull @.str.2)
          to label %2575 unwind label %617

2575:                                             ; preds = %2573
  %2576 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2574, ptr noundef nonnull @.str.3)
          to label %2577 unwind label %617

2577:                                             ; preds = %2575
  %2578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2576, i32 noundef 2120)
          to label %2579 unwind label %617

2579:                                             ; preds = %2577
  %2580 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2578, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2581 unwind label %617

2581:                                             ; preds = %2579
  %2582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2580, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2588 unwind label %617

2583:                                             ; preds = %2560
  %2584 = landingpad { ptr, i32 }
          cleanup
  br label %2587

2585:                                             ; preds = %2561
  %2586 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %236) #7
  br label %2587

2587:                                             ; preds = %2585, %2583
  %.pn862 = phi { ptr, i32 } [ %2586, %2585 ], [ %2584, %2583 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %236) #7
  br label %3664

2588:                                             ; preds = %2581, %2567
  %2589 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %237, i32 noundef 14)
          to label %2590 unwind label %.thread1450

2590:                                             ; preds = %2588
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2589, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %237)
          to label %2592 unwind label %.thread1454

.thread1454:                                      ; preds = %2590
  %2591 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %237) #7
  br label %2596

2592:                                             ; preds = %2590
  invoke void @__cxa_throw(ptr nonnull %2589, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2594

.thread1450:                                      ; preds = %2588
  %2593 = landingpad { ptr, i32 }
          cleanup
  br label %2596

2594:                                             ; preds = %2592
  %2595 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %237) #7
  br label %3664

2596:                                             ; preds = %.thread1454, %.thread1450
  %.pn8691453 = phi { ptr, i32 } [ %2593, %.thread1450 ], [ %2591, %.thread1454 ]
  call void @__cxa_free_exception(ptr %2589) #7
  br label %3664

2597:                                             ; preds = %2563
  %2598 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2599 unwind label %617

2599:                                             ; preds = %2597
  %2600 = getelementptr inbounds i8, ptr %2598, i64 8
  %2601 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2600)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %238) #7
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::GenericParams") align 8 %239, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2602 unwind label %2608

2602:                                             ; preds = %2599
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Trait") align 8 %238, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %239)
          to label %2603 unwind label %2610

2603:                                             ; preds = %2602
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %239) #7
  invoke void @_ZN3AST5Trait13set_is_markerEv(ptr noundef nonnull align 8 dereferenceable(128) %238)
          to label %2604 unwind label %2612

2604:                                             ; preds = %2603
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %240) #7
  call void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128) %241, ptr noundef nonnull align 8 dereferenceable(128) %238) #7
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %240, ptr noundef nonnull %241)
          to label %2605 unwind label %2614

2605:                                             ; preds = %2604
  %2606 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %240)
          to label %2607 unwind label %2616

2607:                                             ; preds = %2605
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %240) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %241) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %240) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %238) #7
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %238) #7
  br label %3654

2608:                                             ; preds = %2599
  %2609 = landingpad { ptr, i32 }
          cleanup
  br label %2620

2610:                                             ; preds = %2602
  %2611 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %239) #7
  br label %2620

2612:                                             ; preds = %2603
  %2613 = landingpad { ptr, i32 }
          cleanup
  br label %2619

2614:                                             ; preds = %2604
  %2615 = landingpad { ptr, i32 }
          cleanup
  br label %2618

2616:                                             ; preds = %2605
  %2617 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %240) #7
  br label %2618

2618:                                             ; preds = %2616, %2614
  %.pn865 = phi { ptr, i32 } [ %2617, %2616 ], [ %2615, %2614 ]
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %241) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %240) #7
  br label %2619

2619:                                             ; preds = %2618, %2612
  %.pn865.pn = phi { ptr, i32 } [ %.pn865, %2618 ], [ %2613, %2612 ]
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %238) #7
  br label %2620

2620:                                             ; preds = %2619, %2610, %2608
  %.pn865.pn.pn = phi { ptr, i32 } [ %.pn865.pn, %2619 ], [ %2611, %2610 ], [ %2609, %2608 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %238) #7
  br label %3664

2621:                                             ; preds = %2522, %2514
  %2622 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %2622, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %.invoke unwind label %2623

2623:                                             ; preds = %2621
  %2624 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %2622) #7
  br label %3664

2625:                                             ; preds = %564
  call void @_ZN4SpanC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %242)
  call void @_ZN3AST13AttributeListC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %243)
  invoke void @_ZN3AST10Visibility11make_globalEv(ptr dead_on_unwind nonnull writable sret(%"class.AST::Visibility") align 8 %244)
          to label %2626 unwind label %2630

2626:                                             ; preds = %2625
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %245, ptr noundef nonnull @.str)
          to label %2627 unwind label %2632

2627:                                             ; preds = %2626
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %247, ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  invoke void @_Z10Parse_ImplR11TokenStreamN3AST13AttributeListEb(ptr dead_on_unwind nonnull writable sret(%"class.AST::Item") align 8 %246, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %247, i1 noundef zeroext false)
          to label %2628 unwind label %2634

2628:                                             ; preds = %2627
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %242, ptr noundef nonnull %243, ptr noundef nonnull %244, ptr noundef nonnull %245, ptr noundef nonnull %246)
          to label %2629 unwind label %2636

2629:                                             ; preds = %2628
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %246) #7
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %247) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #7
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %244) #7
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %243) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #7
  br label %3663

2630:                                             ; preds = %2625
  %2631 = landingpad { ptr, i32 }
          cleanup
  br label %2640

2632:                                             ; preds = %2626
  %2633 = landingpad { ptr, i32 }
          cleanup
  br label %2639

2634:                                             ; preds = %2627
  %2635 = landingpad { ptr, i32 }
          cleanup
  br label %2638

2636:                                             ; preds = %2628
  %2637 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %246) #7
  br label %2638

2638:                                             ; preds = %2636, %2634
  %.pn855 = phi { ptr, i32 } [ %2637, %2636 ], [ %2635, %2634 ]
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %247) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %245) #7
  br label %2639

2639:                                             ; preds = %2638, %2632
  %.pn855.pn = phi { ptr, i32 } [ %.pn855, %2638 ], [ %2633, %2632 ]
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %244) #7
  br label %2640

2640:                                             ; preds = %2639, %2630
  %.pn855.pn.pn = phi { ptr, i32 } [ %.pn855.pn, %2639 ], [ %2631, %2630 ]
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %243) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %242) #7
  br label %3664

2641:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %248) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %248, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2642 unwind label %2664

2642:                                             ; preds = %2641
  %2643 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %248)
          to label %2644 unwind label %2666

2644:                                             ; preds = %2642
  %2645 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2643)
  %.not834 = icmp eq i32 %2645, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %248) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %248) #7
  br i1 %.not834, label %2678, label %2646

2646:                                             ; preds = %2644
  %2647 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2648 unwind label %617

2648:                                             ; preds = %2646
  br i1 %2647, label %2649, label %2669

2649:                                             ; preds = %2648
  %2650 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2650, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2652 unwind label %617

2652:                                             ; preds = %2649
  %2653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2651, ptr noundef nonnull @.str.1)
          to label %2654 unwind label %617

2654:                                             ; preds = %2652
  %2655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2653, ptr noundef nonnull @.str.2)
          to label %2656 unwind label %617

2656:                                             ; preds = %2654
  %2657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2655, ptr noundef nonnull @.str.3)
          to label %2658 unwind label %617

2658:                                             ; preds = %2656
  %2659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2657, i32 noundef 2136)
          to label %2660 unwind label %617

2660:                                             ; preds = %2658
  %2661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2659, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2662 unwind label %617

2662:                                             ; preds = %2660
  %2663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2661, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2669 unwind label %617

2664:                                             ; preds = %2641
  %2665 = landingpad { ptr, i32 }
          cleanup
  br label %2668

2666:                                             ; preds = %2642
  %2667 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %248) #7
  br label %2668

2668:                                             ; preds = %2666, %2664
  %.pn832 = phi { ptr, i32 } [ %2667, %2666 ], [ %2665, %2664 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %248) #7
  br label %3664

2669:                                             ; preds = %2662, %2648
  %2670 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %249, i32 noundef 14)
          to label %2671 unwind label %.thread1456

2671:                                             ; preds = %2669
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2670, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %249)
          to label %2673 unwind label %.thread1460

.thread1460:                                      ; preds = %2671
  %2672 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %249) #7
  br label %2677

2673:                                             ; preds = %2671
  invoke void @__cxa_throw(ptr nonnull %2670, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2675

.thread1456:                                      ; preds = %2669
  %2674 = landingpad { ptr, i32 }
          cleanup
  br label %2677

2675:                                             ; preds = %2673
  %2676 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %249) #7
  br label %3664

2677:                                             ; preds = %.thread1460, %.thread1456
  %.pn8531459 = phi { ptr, i32 } [ %2674, %.thread1456 ], [ %2672, %.thread1460 ]
  call void @__cxa_free_exception(ptr %2670) #7
  br label %3664

2678:                                             ; preds = %2644
  %2679 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2680 unwind label %617

2680:                                             ; preds = %2678
  %2681 = getelementptr inbounds i8, ptr %2679, i64 8
  %2682 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %2681)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %250) #7
  invoke void @_Z22Parse_GenericParamsOptR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::GenericParams") align 8 %250, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2683 unwind label %2724

2683:                                             ; preds = %2680
  %2684 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %2685 unwind label %2726

2685:                                             ; preds = %2683
  %2686 = icmp eq i32 %2684, 50
  br i1 %2686, label %2687, label %2766

2687:                                             ; preds = %2685
  call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %251) #7
  invoke void @_ZN3AST10TraitAliasC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %251)
          to label %2688 unwind label %2728

2688:                                             ; preds = %2687
  %2689 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN3AST13GenericParamsaSEOS0_(ptr noundef nonnull align 8 dereferenceable(48) %251, ptr noundef nonnull align 8 dereferenceable(48) %250) #7
  %2690 = getelementptr inbounds i8, ptr %257, i64 8
  %2691 = getelementptr inbounds i8, ptr %251, i64 48
  br label %2692

2692:                                             ; preds = %2699, %2688
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %252, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2693 unwind label %.loopexit

2693:                                             ; preds = %2692
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %252) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %253) #7
  invoke void @_ZNK11TokenStream10start_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.ProtoSpan) align 8 %253, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2694 unwind label %2730

2694:                                             ; preds = %2693
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %254) #7
  invoke void @_Z13Parse_HRB_OptR11TokenStream(ptr dead_on_unwind nonnull writable sret(%"class.AST::HigherRankedBounds") align 8 %254, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2695 unwind label %2732

2695:                                             ; preds = %2694
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %255) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %257) #7
  store ptr %254, ptr %257, align 8, !tbaa !5
  store ptr %1, ptr %2690, align 8, !tbaa !5
  call void @"_ZNSt8functionIF14Type_TraitPathvEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %256, ptr noundef nonnull align 8 dereferenceable(16) %257) #7
  invoke void @_Z11get_spannedI14Type_TraitPathE7SpannedIT_ER11TokenStreamSt8functionIFS2_vEE(ptr dead_on_unwind nonnull writable sret(%struct.Spanned.226) align 8 %255, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %256)
          to label %2696 unwind label %2734

2696:                                             ; preds = %2695
  invoke void @_ZNSt6vectorI7SpannedI14Type_TraitPathESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %2691, ptr noundef nonnull align 8 dereferenceable(40) %255)
          to label %2697 unwind label %2736

2697:                                             ; preds = %2696
  call void @_ZN7SpannedI14Type_TraitPathED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %255) #7
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %257) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %255) #7
  call void @_ZN3AST18HigherRankedBoundsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %254) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %254) #7
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %253) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %253) #7
  %2698 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %2699 unwind label %.loopexit

2699:                                             ; preds = %2697
  %2700 = icmp eq i32 %2698, 41
  br i1 %2700, label %2692, label %2701, !llvm.loop !17

2701:                                             ; preds = %2699
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %258) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %258, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2702 unwind label %2741

2702:                                             ; preds = %2701
  %2703 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %258)
          to label %2704 unwind label %2743

2704:                                             ; preds = %2702
  %2705 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2703)
  %.not844 = icmp eq i32 %2705, 32
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %258) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %258) #7
  br i1 %.not844, label %2755, label %2706

2706:                                             ; preds = %2704
  %2707 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2708 unwind label %.loopexit.split-lp

2708:                                             ; preds = %2706
  br i1 %2707, label %2709, label %2746

2709:                                             ; preds = %2708
  %2710 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2711 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2710, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2712 unwind label %.loopexit.split-lp

2712:                                             ; preds = %2709
  %2713 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2711, ptr noundef nonnull @.str.1)
          to label %2714 unwind label %.loopexit.split-lp

2714:                                             ; preds = %2712
  %2715 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2713, ptr noundef nonnull @.str.2)
          to label %2716 unwind label %.loopexit.split-lp

2716:                                             ; preds = %2714
  %2717 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2715, ptr noundef nonnull @.str.3)
          to label %2718 unwind label %.loopexit.split-lp

2718:                                             ; preds = %2716
  %2719 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2717, i32 noundef 2152)
          to label %2720 unwind label %.loopexit.split-lp

2720:                                             ; preds = %2718
  %2721 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2719, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2722 unwind label %.loopexit.split-lp

2722:                                             ; preds = %2720
  %2723 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2721, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2746 unwind label %.loopexit.split-lp

2724:                                             ; preds = %2680
  %2725 = landingpad { ptr, i32 }
          cleanup
  br label %2781

2726:                                             ; preds = %2683
  %2727 = landingpad { ptr, i32 }
          cleanup
  br label %2780

2728:                                             ; preds = %2687
  %2729 = landingpad { ptr, i32 }
          cleanup
  br label %2765

.loopexit:                                        ; preds = %2692, %2697
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %2764

.loopexit.split-lp:                               ; preds = %2706, %2709, %2712, %2714, %2716, %2718, %2720, %2722
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %2764

2730:                                             ; preds = %2693
  %2731 = landingpad { ptr, i32 }
          cleanup
  br label %2740

2732:                                             ; preds = %2694
  %2733 = landingpad { ptr, i32 }
          cleanup
  br label %2739

2734:                                             ; preds = %2695
  %2735 = landingpad { ptr, i32 }
          cleanup
  br label %2738

2736:                                             ; preds = %2696
  %2737 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7SpannedI14Type_TraitPathED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %255) #7
  br label %2738

2738:                                             ; preds = %2736, %2734
  %.pn838 = phi { ptr, i32 } [ %2737, %2736 ], [ %2735, %2734 ]
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %256) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %257) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %255) #7
  call void @_ZN3AST18HigherRankedBoundsD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %254) #7
  br label %2739

2739:                                             ; preds = %2738, %2732
  %.pn838.pn = phi { ptr, i32 } [ %.pn838, %2738 ], [ %2733, %2732 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %254) #7
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %253) #7
  br label %2740

2740:                                             ; preds = %2739, %2730
  %.pn838.pn.pn = phi { ptr, i32 } [ %.pn838.pn, %2739 ], [ %2731, %2730 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %253) #7
  br label %2764

2741:                                             ; preds = %2701
  %2742 = landingpad { ptr, i32 }
          cleanup
  br label %2745

2743:                                             ; preds = %2702
  %2744 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %258) #7
  br label %2745

2745:                                             ; preds = %2743, %2741
  %.pn842 = phi { ptr, i32 } [ %2744, %2743 ], [ %2742, %2741 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %258) #7
  br label %2764

2746:                                             ; preds = %2722, %2708
  %2747 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %259, i32 noundef 32)
          to label %2748 unwind label %.thread1462

2748:                                             ; preds = %2746
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2747, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %259)
          to label %2750 unwind label %.thread1466

.thread1466:                                      ; preds = %2748
  %2749 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %259) #7
  br label %2754

2750:                                             ; preds = %2748
  invoke void @__cxa_throw(ptr nonnull %2747, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2752

.thread1462:                                      ; preds = %2746
  %2751 = landingpad { ptr, i32 }
          cleanup
  br label %2754

2752:                                             ; preds = %2750
  %2753 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %259) #7
  br label %2764

2754:                                             ; preds = %.thread1466, %.thread1462
  %.pn8471465 = phi { ptr, i32 } [ %2751, %.thread1462 ], [ %2749, %.thread1466 ]
  call void @__cxa_free_exception(ptr %2747) #7
  br label %2764

2755:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %260) #7
  call void @_ZN3AST10TraitAliasC2EOS0_(ptr noundef nonnull align 8 dereferenceable(72) %261, ptr noundef nonnull align 8 dereferenceable(72) %251) #7
  invoke void @_ZN3AST4ItemC2ENS_10TraitAliasE(ptr noundef nonnull align 8 dereferenceable(488) %260, ptr noundef nonnull %261)
          to label %2756 unwind label %2759

2756:                                             ; preds = %2755
  %2757 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %260)
          to label %2758 unwind label %2761

2758:                                             ; preds = %2756
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %260) #7
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %261) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %260) #7
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %251) #7
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %251) #7
  br label %2779

2759:                                             ; preds = %2755
  %2760 = landingpad { ptr, i32 }
          cleanup
  br label %2763

2761:                                             ; preds = %2756
  %2762 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %260) #7
  br label %2763

2763:                                             ; preds = %2761, %2759
  %.pn845 = phi { ptr, i32 } [ %2762, %2761 ], [ %2760, %2759 ]
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %261) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %260) #7
  br label %2764

2764:                                             ; preds = %.loopexit, %.loopexit.split-lp, %2752, %2754, %2763, %2745, %2740
  %.pn847.pn = phi { ptr, i32 } [ %.pn8471465, %2754 ], [ %2753, %2752 ], [ %.pn845, %2763 ], [ %.pn842, %2745 ], [ %.pn838.pn.pn, %2740 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN3AST10TraitAliasD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %251) #7
  br label %2765

2765:                                             ; preds = %2764, %2728
  %.pn847.pn.pn = phi { ptr, i32 } [ %.pn847.pn, %2764 ], [ %2729, %2728 ]
  call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %251) #7
  br label %2780

2766:                                             ; preds = %2685
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %262) #7
  call void @_ZN3AST13GenericParamsC2EOS0_(ptr noundef nonnull align 8 dereferenceable(48) %264, ptr noundef nonnull align 8 dereferenceable(48) %250) #7
  invoke void @_Z14Parse_TraitDefR11TokenStreamRKN3AST13AttributeListENS1_13GenericParamsE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Trait") align 8 %263, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull %264)
          to label %2767 unwind label %2771

2767:                                             ; preds = %2766
  invoke void @_ZN3AST4ItemC2ENS_5TraitE(ptr noundef nonnull align 8 dereferenceable(488) %262, ptr noundef nonnull %263)
          to label %2768 unwind label %2773

2768:                                             ; preds = %2767
  %2769 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %262)
          to label %2770 unwind label %2775

2770:                                             ; preds = %2768
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %262) #7
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %263) #7
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %264) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %262) #7
  br label %2779

2771:                                             ; preds = %2766
  %2772 = landingpad { ptr, i32 }
          cleanup
  br label %2778

2773:                                             ; preds = %2767
  %2774 = landingpad { ptr, i32 }
          cleanup
  br label %2777

2775:                                             ; preds = %2768
  %2776 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %262) #7
  br label %2777

2777:                                             ; preds = %2775, %2773
  %.pn835 = phi { ptr, i32 } [ %2776, %2775 ], [ %2774, %2773 ]
  call void @_ZN3AST5TraitD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %263) #7
  br label %2778

2778:                                             ; preds = %2777, %2771
  %.pn835.pn = phi { ptr, i32 } [ %.pn835, %2777 ], [ %2772, %2771 ]
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %264) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %262) #7
  br label %2780

2779:                                             ; preds = %2770, %2758
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %250) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %250) #7
  br label %3654

2780:                                             ; preds = %2778, %2765, %2726
  %.pn847.pn.pn.pn = phi { ptr, i32 } [ %.pn847.pn.pn, %2765 ], [ %.pn835.pn, %2778 ], [ %2727, %2726 ]
  call void @_ZN3AST13GenericParamsD2Ev(ptr noundef nonnull align 8 dereferenceable(48) %250) #7
  br label %2781

2781:                                             ; preds = %2780, %2724
  %.pn847.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn847.pn.pn.pn, %2780 ], [ %2725, %2724 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %250) #7
  br label %3664

2782:                                             ; preds = %564
  %2783 = load i32, ptr @gTargetVersion, align 4, !tbaa !15
  %2784 = icmp sgt i32 %2783, 0
  br i1 %2784, label %2785, label %2922

2785:                                             ; preds = %2782
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %265) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %265, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2786 unwind label %2808

2786:                                             ; preds = %2785
  %2787 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %265)
          to label %2788 unwind label %2810

2788:                                             ; preds = %2786
  %2789 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2787)
  %.not817 = icmp eq i32 %2789, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %265) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %265) #7
  br i1 %.not817, label %2822, label %2790

2790:                                             ; preds = %2788
  %2791 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2792 unwind label %617

2792:                                             ; preds = %2790
  br i1 %2791, label %2793, label %2813

2793:                                             ; preds = %2792
  %2794 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2795 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2794, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2796 unwind label %617

2796:                                             ; preds = %2793
  %2797 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2795, ptr noundef nonnull @.str.1)
          to label %2798 unwind label %617

2798:                                             ; preds = %2796
  %2799 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2797, ptr noundef nonnull @.str.2)
          to label %2800 unwind label %617

2800:                                             ; preds = %2798
  %2801 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2799, ptr noundef nonnull @.str.3)
          to label %2802 unwind label %617

2802:                                             ; preds = %2800
  %2803 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2801, i32 noundef 2164)
          to label %2804 unwind label %617

2804:                                             ; preds = %2802
  %2805 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2803, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2806 unwind label %617

2806:                                             ; preds = %2804
  %2807 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2805, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2813 unwind label %617

2808:                                             ; preds = %2785
  %2809 = landingpad { ptr, i32 }
          cleanup
  br label %2812

2810:                                             ; preds = %2786
  %2811 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %265) #7
  br label %2812

2812:                                             ; preds = %2810, %2808
  %.pn815 = phi { ptr, i32 } [ %2811, %2810 ], [ %2809, %2808 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %265) #7
  br label %3664

2813:                                             ; preds = %2806, %2792
  %2814 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %266, i32 noundef 14)
          to label %2815 unwind label %.thread1468

2815:                                             ; preds = %2813
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2814, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %266)
          to label %2817 unwind label %.thread1472

.thread1472:                                      ; preds = %2815
  %2816 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %266) #7
  br label %2821

2817:                                             ; preds = %2815
  invoke void @__cxa_throw(ptr nonnull %2814, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2819

.thread1468:                                      ; preds = %2813
  %2818 = landingpad { ptr, i32 }
          cleanup
  br label %2821

2819:                                             ; preds = %2817
  %2820 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %266) #7
  br label %3664

2821:                                             ; preds = %.thread1472, %.thread1468
  %.pn8301471 = phi { ptr, i32 } [ %2818, %.thread1468 ], [ %2816, %.thread1472 ]
  call void @__cxa_free_exception(ptr %2814) #7
  br label %3664

2822:                                             ; preds = %2788
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %267) #7
  %2823 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2824 unwind label %2839

2824:                                             ; preds = %2822
  %2825 = getelementptr inbounds i8, ptr %2823, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef nonnull align 8 dereferenceable(8) %2825)
  %2826 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2827 unwind label %2841

2827:                                             ; preds = %2824
  br i1 %2826, label %2828, label %2843

2828:                                             ; preds = %2827
  %2829 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2830 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2829, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2831 unwind label %2841

2831:                                             ; preds = %2828
  %2832 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2830, ptr noundef nonnull @.str.24)
          to label %2833 unwind label %2841

2833:                                             ; preds = %2831
  %2834 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2832, ptr noundef nonnull align 8 dereferenceable(8) %267)
          to label %2835 unwind label %2841

2835:                                             ; preds = %2833
  %2836 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2834, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2837 unwind label %2841

2837:                                             ; preds = %2835
  %2838 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2836, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2843 unwind label %2841

2839:                                             ; preds = %2822
  %2840 = landingpad { ptr, i32 }
          cleanup
  br label %2921

2841:                                             ; preds = %2837, %2835, %2833, %2831, %2828, %2824
  %2842 = landingpad { ptr, i32 }
          cleanup
  br label %2920

2843:                                             ; preds = %2837, %2827
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %268) #7
  call void @_ZN13MacroRulesPtrC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %268)
  %2844 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %2845 unwind label %2854

2845:                                             ; preds = %2843
  %2846 = icmp eq i32 %2844, 25
  br i1 %2846, label %2847, label %2863

2847:                                             ; preds = %2845
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %269) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %269, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2848 unwind label %2856

2848:                                             ; preds = %2847
  %2849 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %269)
          to label %2850 unwind label %2858

2850:                                             ; preds = %2848
  %2851 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2849)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %269) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %269) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %270) #7
  invoke void @_Z16Parse_MacroRulesR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.MacroRulesPtr) align 8 %270, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2852 unwind label %2861

2852:                                             ; preds = %2850
  %2853 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN13MacroRulesPtraSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %268, ptr noundef nonnull align 8 dereferenceable(8) %270)
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %270) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %270) #7
  br label %2886

2854:                                             ; preds = %2878, %2863, %2843
  %2855 = landingpad { ptr, i32 }
          cleanup
  br label %2919

2856:                                             ; preds = %2847
  %2857 = landingpad { ptr, i32 }
          cleanup
  br label %2860

2858:                                             ; preds = %2848
  %2859 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %269) #7
  br label %2860

2860:                                             ; preds = %2858, %2856
  %.pn820 = phi { ptr, i32 } [ %2859, %2858 ], [ %2857, %2856 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %269) #7
  br label %2919

2861:                                             ; preds = %2850
  %2862 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %270) #7
  br label %2919

2863:                                             ; preds = %2845
  %2864 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %1, i32 noundef 0)
          to label %2865 unwind label %2854

2865:                                             ; preds = %2863
  %2866 = icmp eq i32 %2864, 23
  br i1 %2866, label %2867, label %2872

2867:                                             ; preds = %2865
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %271) #7
  invoke void @_Z25Parse_MacroRulesSingleArmR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.MacroRulesPtr) align 8 %271, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2868 unwind label %2870

2868:                                             ; preds = %2867
  %2869 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN13MacroRulesPtraSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %268, ptr noundef nonnull align 8 dereferenceable(8) %271)
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %271) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %271) #7
  br label %2886

2870:                                             ; preds = %2867
  %2871 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %271) #7
  br label %2919

2872:                                             ; preds = %2865
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %272) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %272, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2873 unwind label %2879

2873:                                             ; preds = %2872
  %2874 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %272)
          to label %2875 unwind label %2881

2875:                                             ; preds = %2873
  %2876 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2874)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %272) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %272) #7
  %2877 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %2877, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2878 unwind label %2884

2878:                                             ; preds = %2875
  invoke void @__cxa_throw(ptr nonnull %2877, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2854

2879:                                             ; preds = %2872
  %2880 = landingpad { ptr, i32 }
          cleanup
  br label %2883

2881:                                             ; preds = %2873
  %2882 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %272) #7
  br label %2883

2883:                                             ; preds = %2881, %2879
  %.pn818 = phi { ptr, i32 } [ %2882, %2881 ], [ %2880, %2879 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %272) #7
  br label %2919

2884:                                             ; preds = %2875
  %2885 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %2877) #7
  br label %2919

2886:                                             ; preds = %2868, %2852
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %273) #7
  invoke void @_ZN5Ident7ModPathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273)
          to label %2887 unwind label %2904

2887:                                             ; preds = %2886
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %274) #7
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef nonnull @.str)
          to label %2888 unwind label %2906

2888:                                             ; preds = %2887
  %2889 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef nonnull align 8 dereferenceable(8) %274)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %274) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #7
  %2890 = getelementptr inbounds i8, ptr %3, i64 8
  %2891 = getelementptr inbounds i8, ptr %273, i64 8
  %2892 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorI8RcStringSaIS0_EEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %2891, ptr noundef nonnull align 8 dereferenceable(24) %2890)
          to label %2893 unwind label %2908

2893:                                             ; preds = %2888
  %2894 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %268)
  invoke void @_ZN5Ident7ModPathC2EOS0_(ptr noundef nonnull align 8 dereferenceable(32) %275, ptr noundef nonnull align 8 dereferenceable(32) %273)
          to label %2895 unwind label %2908

2895:                                             ; preds = %2893
  %2896 = getelementptr inbounds i8, ptr %2894, i64 32
  invoke void @_ZN5Ident7Hygiene12set_mod_pathENS_7ModPathE(ptr noundef nonnull align 8 dereferenceable(8) %2896, ptr noundef nonnull %275)
          to label %2897 unwind label %2910

2897:                                             ; preds = %2895
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #7
  %2898 = call noundef ptr @_ZN13MacroRulesPtrptEv(ptr noundef nonnull align 8 dereferenceable(8) %268)
  %2899 = getelementptr inbounds i8, ptr %2898, i64 9
  store i8 1, ptr %2899, align 1, !tbaa !18
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #7
  %2900 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSERKS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %267)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %276) #7
  call void @_ZN13MacroRulesPtrC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef nonnull align 8 dereferenceable(8) %268)
  invoke void @_ZN3AST4ItemC2E13MacroRulesPtr(ptr noundef nonnull align 8 dereferenceable(488) %276, ptr noundef nonnull %277)
          to label %2901 unwind label %2914

2901:                                             ; preds = %2897
  %2902 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %276)
          to label %2903 unwind label %2916

2903:                                             ; preds = %2901
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %276) #7
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %277) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %276) #7
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #7
  br label %3654

2904:                                             ; preds = %2886
  %2905 = landingpad { ptr, i32 }
          cleanup
  br label %2913

2906:                                             ; preds = %2887
  %2907 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %274) #7
  br label %2912

2908:                                             ; preds = %2893, %2888
  %2909 = landingpad { ptr, i32 }
          cleanup
  br label %2912

2910:                                             ; preds = %2895
  %2911 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %275) #7
  br label %2912

2912:                                             ; preds = %2910, %2908, %2906
  %.pn822 = phi { ptr, i32 } [ %2911, %2910 ], [ %2909, %2908 ], [ %2907, %2906 ]
  call void @_ZN5Ident7ModPathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %273) #7
  br label %2913

2913:                                             ; preds = %2912, %2904
  %.pn822.pn = phi { ptr, i32 } [ %.pn822, %2912 ], [ %2905, %2904 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %273) #7
  br label %2919

2914:                                             ; preds = %2897
  %2915 = landingpad { ptr, i32 }
          cleanup
  br label %2918

2916:                                             ; preds = %2901
  %2917 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %276) #7
  br label %2918

2918:                                             ; preds = %2916, %2914
  %.pn825 = phi { ptr, i32 } [ %2917, %2916 ], [ %2915, %2914 ]
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %277) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %276) #7
  br label %2919

2919:                                             ; preds = %2918, %2913, %2884, %2883, %2870, %2861, %2860, %2854
  %.pn825.pn = phi { ptr, i32 } [ %.pn825, %2918 ], [ %.pn822.pn, %2913 ], [ %2862, %2861 ], [ %.pn820, %2860 ], [ %2871, %2870 ], [ %2855, %2854 ], [ %2885, %2884 ], [ %.pn818, %2883 ]
  call void @_ZN13MacroRulesPtrD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %268) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %268) #7
  br label %2920

2920:                                             ; preds = %2919, %2841
  %.pn825.pn.pn = phi { ptr, i32 } [ %.pn825.pn, %2919 ], [ %2842, %2841 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %267) #7
  br label %2921

2921:                                             ; preds = %2920, %2839
  %.pn825.pn.pn.pn = phi { ptr, i32 } [ %.pn825.pn.pn, %2920 ], [ %2840, %2839 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %267) #7
  br label %3664

2922:                                             ; preds = %2782
  %2923 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %2923, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %.invoke unwind label %2924

2924:                                             ; preds = %2922
  %2925 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %2923) #7
  br label %3664

2926:                                             ; preds = %564
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %278) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %278, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %2927 unwind label %2949

2927:                                             ; preds = %2926
  %2928 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %278)
          to label %2929 unwind label %2951

2929:                                             ; preds = %2927
  %2930 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %2928)
  %.not = icmp eq i32 %2930, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %278) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %278) #7
  br i1 %.not, label %2963, label %2931

2931:                                             ; preds = %2929
  %2932 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2933 unwind label %617

2933:                                             ; preds = %2931
  br i1 %2932, label %2934, label %2954

2934:                                             ; preds = %2933
  %2935 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2936 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2935, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2937 unwind label %617

2937:                                             ; preds = %2934
  %2938 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2936, ptr noundef nonnull @.str.1)
          to label %2939 unwind label %617

2939:                                             ; preds = %2937
  %2940 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2938, ptr noundef nonnull @.str.2)
          to label %2941 unwind label %617

2941:                                             ; preds = %2939
  %2942 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2940, ptr noundef nonnull @.str.3)
          to label %2943 unwind label %617

2943:                                             ; preds = %2941
  %2944 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %2942, i32 noundef 2201)
          to label %2945 unwind label %617

2945:                                             ; preds = %2943
  %2946 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2944, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2947 unwind label %617

2947:                                             ; preds = %2945
  %2948 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2946, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2954 unwind label %617

2949:                                             ; preds = %2926
  %2950 = landingpad { ptr, i32 }
          cleanup
  br label %2953

2951:                                             ; preds = %2927
  %2952 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %278) #7
  br label %2953

2953:                                             ; preds = %2951, %2949
  %.pn712 = phi { ptr, i32 } [ %2952, %2951 ], [ %2950, %2949 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %278) #7
  br label %3664

2954:                                             ; preds = %2947, %2933
  %2955 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %279, i32 noundef 14)
          to label %2956 unwind label %.thread1474

2956:                                             ; preds = %2954
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %2955, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %279)
          to label %2958 unwind label %.thread1478

.thread1478:                                      ; preds = %2956
  %2957 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %279) #7
  br label %2962

2958:                                             ; preds = %2956
  invoke void @__cxa_throw(ptr nonnull %2955, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %2960

.thread1474:                                      ; preds = %2954
  %2959 = landingpad { ptr, i32 }
          cleanup
  br label %2962

2960:                                             ; preds = %2958
  %2961 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %279) #7
  br label %3664

2962:                                             ; preds = %.thread1478, %.thread1474
  %.pn8131477 = phi { ptr, i32 } [ %2959, %.thread1474 ], [ %2957, %.thread1478 ]
  call void @__cxa_free_exception(ptr %2955) #7
  br label %3664

2963:                                             ; preds = %2929
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %280) #7
  %2964 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %2965 unwind label %2982

2965:                                             ; preds = %2963
  %2966 = getelementptr inbounds i8, ptr %2964, i64 8
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull align 8 dereferenceable(8) %2966)
  %2967 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %2968 unwind label %2984

2968:                                             ; preds = %2965
  br i1 %2967, label %2969, label %2986

2969:                                             ; preds = %2968
  %2970 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %2971 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %2970, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %2972 unwind label %2984

2972:                                             ; preds = %2969
  %2973 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2971, ptr noundef nonnull @.str.25)
          to label %2974 unwind label %2984

2974:                                             ; preds = %2972
  %2975 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %2973, ptr noundef nonnull align 8 dereferenceable(8) %280)
          to label %2976 unwind label %2984

2976:                                             ; preds = %2974
  %2977 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %2975, ptr noundef nonnull @.str.26)
          to label %2978 unwind label %2984

2978:                                             ; preds = %2976
  %2979 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %2977, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %2980 unwind label %2984

2980:                                             ; preds = %2978
  %2981 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %2979, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %2986 unwind label %2984

2982:                                             ; preds = %2963
  %2983 = landingpad { ptr, i32 }
          cleanup
  br label %3648

2984:                                             ; preds = %2980, %2978, %2976, %2974, %2972, %2969, %2965
  %2985 = landingpad { ptr, i32 }
          cleanup
  br label %3647

2986:                                             ; preds = %2980, %2968
  call void @llvm.lifetime.start.p0(i64 480, ptr nonnull %281) #7
  call void @_ZN8RcStringC2ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %283, ptr noundef nonnull align 8 dereferenceable(8) %280)
  invoke void @_ZNK3AST12AbsolutePathplE8RcString(ptr dead_on_unwind nonnull writable sret(%"struct.AST::AbsolutePath") align 8 %282, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull %283)
          to label %2987 unwind label %2995

2987:                                             ; preds = %2986
  invoke void @_ZN3AST6ModuleC2ENS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(480) %281, ptr noundef nonnull %282)
          to label %2988 unwind label %2997

2988:                                             ; preds = %2987
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %283) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %284) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %285) #7
  %2989 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  store ptr %2989, ptr %285, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %286) #7
  %2990 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  store ptr %2990, ptr %286, align 8
  %2991 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef nonnull align 8 dereferenceable(8) %286) #7
  br i1 %2991, label %.lr.ph1508, label %._crit_edge1509

._crit_edge1509:                                  ; preds = %3049, %2988
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %286) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %292) #7
  call void @_ZN7helpers4pathC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292)
  %2992 = getelementptr inbounds i8, ptr %2, i64 8
  %2993 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %2992, ptr noundef nonnull @.str.29)
  %2994 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  %.not727 = icmp eq i64 %2994, 0
  br i1 %2993, label %3053, label %3072

2995:                                             ; preds = %2986
  %2996 = landingpad { ptr, i32 }
          cleanup
  br label %2999

2997:                                             ; preds = %2987
  %2998 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST12AbsolutePathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %282) #7
  br label %2999

2999:                                             ; preds = %2997, %2995
  %.pn714 = phi { ptr, i32 } [ %2998, %2997 ], [ %2996, %2995 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %283) #7
  br label %3646

.lr.ph1508:                                       ; preds = %2988, %3049
  %3000 = call noundef nonnull align 8 dereferenceable(169) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %285) #7
  %3001 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST9Attribute4nameEv(ptr noundef nonnull align 8 dereferenceable(169) %3000)
  %3002 = invoke noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24) %3001, ptr noundef nonnull @.str.27)
          to label %3003 unwind label %3013

3003:                                             ; preds = %.lr.ph1508
  br i1 %3002, label %3004, label %3017

3004:                                             ; preds = %3003
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %287) #7
  %3005 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  %3006 = getelementptr inbounds i8, ptr %3005, i64 8
  %3007 = load ptr, ptr %3006, align 8, !tbaa !34
  %3008 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  %3009 = getelementptr inbounds i8, ptr %3008, i64 16
  %3010 = load ptr, ptr %3009, align 8, !tbaa !36
  invoke void @_ZNK3AST9Attribute19parse_equals_stringB5cxx11ERKNS_5CrateERKNS_6ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %287, ptr noundef nonnull align 8 dereferenceable(169) %3000, ptr noundef nonnull align 8 dereferenceable(1112) %3007, ptr noundef nonnull align 8 dereferenceable(480) %3010)
          to label %3011 unwind label %3015

3011:                                             ; preds = %3004
  %3012 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %287) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %287) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #7
  br label %3049

3013:                                             ; preds = %3017, %.lr.ph1508
  %3014 = landingpad { ptr, i32 }
          cleanup
  br label %3052

3015:                                             ; preds = %3004
  %3016 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %287) #7
  br label %3052

3017:                                             ; preds = %3003
  %3018 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST9Attribute4nameEv(ptr noundef nonnull align 8 dereferenceable(169) %3000)
  %3019 = invoke noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24) %3018, ptr noundef nonnull @.str.28)
          to label %3020 unwind label %3013

3020:                                             ; preds = %3017
  br i1 %3019, label %3021, label %3049

3021:                                             ; preds = %3020
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %288) #7
  invoke void @_Z14check_cfg_attrRKN3AST9AttributeE(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.81") align 8 %288, ptr noundef nonnull align 8 dereferenceable(169) %3000)
          to label %3022 unwind label %3026

3022:                                             ; preds = %3021
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %289) #7
  %3023 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #7
  store ptr %3023, ptr %289, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %290) #7
  %3024 = call ptr @_ZNSt6vectorIN3AST9AttributeESaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %288) #7
  store ptr %3024, ptr %290, align 8
  %3025 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull align 8 dereferenceable(8) %290) #7
  br i1 %3025, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %3045, %3022
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #7
  call void @_ZNSt6vectorIN3AST9AttributeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %288) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %288) #7
  br label %3049

3026:                                             ; preds = %3021
  %3027 = landingpad { ptr, i32 }
          cleanup
  br label %3052

.lr.ph:                                           ; preds = %3022, %3045
  %3028 = call noundef nonnull align 8 dereferenceable(169) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %289) #7
  %3029 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNK3AST9Attribute4nameEv(ptr noundef nonnull align 8 dereferenceable(169) %3028)
  %3030 = invoke noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24) %3029, ptr noundef nonnull @.str.27)
          to label %3031 unwind label %3041

3031:                                             ; preds = %.lr.ph
  br i1 %3030, label %3032, label %3045

3032:                                             ; preds = %3031
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %291) #7
  %3033 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  %3034 = getelementptr inbounds i8, ptr %3033, i64 8
  %3035 = load ptr, ptr %3034, align 8, !tbaa !34
  %3036 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  %3037 = getelementptr inbounds i8, ptr %3036, i64 16
  %3038 = load ptr, ptr %3037, align 8, !tbaa !36
  invoke void @_ZNK3AST9Attribute19parse_equals_stringB5cxx11ERKNS_5CrateERKNS_6ModuleE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %291, ptr noundef nonnull align 8 dereferenceable(169) %3028, ptr noundef nonnull align 8 dereferenceable(1112) %3035, ptr noundef nonnull align 8 dereferenceable(480) %3038)
          to label %3039 unwind label %3043

3039:                                             ; preds = %3032
  %3040 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull align 8 dereferenceable(32) %291) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %291) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %291) #7
  br label %3045

3041:                                             ; preds = %.lr.ph
  %3042 = landingpad { ptr, i32 }
          cleanup
  br label %3048

3043:                                             ; preds = %3032
  %3044 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %291) #7
  br label %3048

3045:                                             ; preds = %3039, %3031
  %3046 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %289) #7
  %3047 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %289, ptr noundef nonnull align 8 dereferenceable(8) %290) #7
  br i1 %3047, label %.lr.ph, label %._crit_edge

3048:                                             ; preds = %3043, %3041
  %.pn804 = phi { ptr, i32 } [ %3044, %3043 ], [ %3042, %3041 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %290) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %289) #7
  call void @_ZNSt6vectorIN3AST9AttributeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %288) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %288) #7
  br label %3052

3049:                                             ; preds = %._crit_edge, %3020, %3011
  %3050 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %285) #7
  %3051 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPN3AST9AttributeESt6vectorIS2_SaIS2_EEEEbRKNS_17__normal_iteratorIT_T0_EESC_(ptr noundef nonnull align 8 dereferenceable(8) %285, ptr noundef nonnull align 8 dereferenceable(8) %286) #7
  br i1 %3051, label %.lr.ph1508, label %._crit_edge1509

3052:                                             ; preds = %3026, %3048, %3015, %3013
  %.pn807 = phi { ptr, i32 } [ %3016, %3015 ], [ %3014, %3013 ], [ %.pn804, %3048 ], [ %3027, %3026 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %286) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %285) #7
  br label %3645

3053:                                             ; preds = %._crit_edge1509
  br i1 %.not727, label %3067, label %3054

3054:                                             ; preds = %3053
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %293) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %293, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3055 unwind label %3060

3055:                                             ; preds = %3054
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %295) #7
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %294, ptr noundef nonnull align 1 dereferenceable(1) %295) #7
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %293, i32 noundef 0, ptr noundef nonnull %294)
          to label %3056 unwind label %3062

3056:                                             ; preds = %3055
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %295) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %293) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %293) #7
  %3057 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3057, ptr noundef nonnull @.str.7)
          to label %.invoke1513 unwind label %3065

3058:                                             ; preds = %.invoke1513, %3216, %3184, %3182, %3180, %3178, %3176, %3174, %3171, %3168, %3161, %3141, %3139, %3137, %3135, %3133, %3131, %3128, %3125
  %3059 = landingpad { ptr, i32 }
          cleanup
  br label %3644

3060:                                             ; preds = %3054
  %3061 = landingpad { ptr, i32 }
          cleanup
  br label %3064

3062:                                             ; preds = %3055
  %3063 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %294) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %295) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %293) #7
  br label %3064

3064:                                             ; preds = %3062, %3060
  %.pn800 = phi { ptr, i32 } [ %3063, %3062 ], [ %3061, %3060 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %293) #7
  br label %3644

3065:                                             ; preds = %3056
  %3066 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3057) #7
  br label %3644

3067:                                             ; preds = %3053
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %296) #7
  invoke void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32) %296, ptr noundef nonnull @.str.29)
          to label %3068 unwind label %3070

3068:                                             ; preds = %3067
  %3069 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %296) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %296) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #7
  br label %3125

3070:                                             ; preds = %3067
  %3071 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %296) #7
  br label %3644

3072:                                             ; preds = %._crit_edge1509
  br i1 %.not727, label %3087, label %3073

3073:                                             ; preds = %3072
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %297) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %298) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %299, ptr noundef nonnull align 8 dereferenceable(32) %2992)
          to label %3074 unwind label %3079

3074:                                             ; preds = %3073
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %298, ptr noundef nonnull %299)
          to label %3075 unwind label %3081

3075:                                             ; preds = %3074
  %3076 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %297, ptr noundef nonnull align 8 dereferenceable(32) %298, ptr noundef %3076)
          to label %3077 unwind label %3083

3077:                                             ; preds = %3075
  %3078 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %297) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #7
  br label %3125

3079:                                             ; preds = %3073
  %3080 = landingpad { ptr, i32 }
          cleanup
  br label %3086

3081:                                             ; preds = %3074
  %3082 = landingpad { ptr, i32 }
          cleanup
  br label %3085

3083:                                             ; preds = %3075
  %3084 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %298) #7
  br label %3085

3085:                                             ; preds = %3083, %3081
  %.pn724 = phi { ptr, i32 } [ %3084, %3083 ], [ %3082, %3081 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %299) #7
  br label %3086

3086:                                             ; preds = %3085, %3079
  %.pn724.pn = phi { ptr, i32 } [ %.pn724, %3085 ], [ %3080, %3079 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %298) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %297) #7
  br label %3644

3087:                                             ; preds = %3072
  %3088 = load i8, ptr %2, align 8, !tbaa !37, !range !42, !noundef !43
  %3089 = trunc nuw i8 %3088 to i1
  br i1 %3089, label %3090, label %3104

3090:                                             ; preds = %3087
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %300) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %301) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %302, ptr noundef nonnull align 8 dereferenceable(32) %2992)
          to label %3091 unwind label %3096

3091:                                             ; preds = %3090
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %301, ptr noundef nonnull %302)
          to label %3092 unwind label %3098

3092:                                             ; preds = %3091
  %3093 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %280)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %300, ptr noundef nonnull align 8 dereferenceable(32) %301, ptr noundef %3093)
          to label %3094 unwind label %3100

3094:                                             ; preds = %3092
  %3095 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %300) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %301) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #7
  br label %3125

3096:                                             ; preds = %3090
  %3097 = landingpad { ptr, i32 }
          cleanup
  br label %3103

3098:                                             ; preds = %3091
  %3099 = landingpad { ptr, i32 }
          cleanup
  br label %3102

3100:                                             ; preds = %3092
  %3101 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %301) #7
  br label %3102

3102:                                             ; preds = %3100, %3098
  %.pn721 = phi { ptr, i32 } [ %3101, %3100 ], [ %3099, %3098 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %302) #7
  br label %3103

3103:                                             ; preds = %3102, %3096
  %.pn721.pn = phi { ptr, i32 } [ %.pn721, %3102 ], [ %3097, %3096 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %301) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %300) #7
  br label %3644

3104:                                             ; preds = %3087
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %303) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %304) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %305) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %306, ptr noundef nonnull align 8 dereferenceable(32) %2992)
          to label %3105 unwind label %3114

3105:                                             ; preds = %3104
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %305, ptr noundef nonnull %306)
          to label %3106 unwind label %3116

3106:                                             ; preds = %3105
  %3107 = getelementptr inbounds i8, ptr %3, i64 8
  %3108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %3107) #7
  %3109 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %3108)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %304, ptr noundef nonnull align 8 dereferenceable(32) %305, ptr noundef %3109)
          to label %3110 unwind label %3118

3110:                                             ; preds = %3106
  %3111 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %280)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %303, ptr noundef nonnull align 8 dereferenceable(32) %304, ptr noundef %3111)
          to label %3112 unwind label %3120

3112:                                             ; preds = %3110
  %3113 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN7helpers4pathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull align 8 dereferenceable(32) %303) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %303) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #7
  br label %3125

3114:                                             ; preds = %3104
  %3115 = landingpad { ptr, i32 }
          cleanup
  br label %3124

3116:                                             ; preds = %3105
  %3117 = landingpad { ptr, i32 }
          cleanup
  br label %3123

3118:                                             ; preds = %3106
  %3119 = landingpad { ptr, i32 }
          cleanup
  br label %3122

3120:                                             ; preds = %3110
  %3121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %304) #7
  br label %3122

3122:                                             ; preds = %3120, %3118
  %.pn717 = phi { ptr, i32 } [ %3121, %3120 ], [ %3119, %3118 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %305) #7
  br label %3123

3123:                                             ; preds = %3122, %3116
  %.pn717.pn = phi { ptr, i32 } [ %.pn717, %3122 ], [ %3117, %3116 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %306) #7
  br label %3124

3124:                                             ; preds = %3123, %3114
  %.pn717.pn.pn = phi { ptr, i32 } [ %.pn717.pn, %3123 ], [ %3115, %3114 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %305) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %304) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %303) #7
  br label %3644

3125:                                             ; preds = %3068, %3094, %3112, %3077
  %.0316 = phi i8 [ 1, %3068 ], [ 1, %3077 ], [ 1, %3094 ], [ 0, %3112 ]
  %3126 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3127 unwind label %3058

3127:                                             ; preds = %3125
  br i1 %3126, label %3128, label %3143

3128:                                             ; preds = %3127
  %3129 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3129, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3131 unwind label %3058

3131:                                             ; preds = %3128
  %3132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3130, ptr noundef nonnull @.str.30)
          to label %3133 unwind label %3058

3133:                                             ; preds = %3131
  %3134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8RcString(ptr noundef nonnull align 8 dereferenceable(8) %3132, ptr noundef nonnull align 8 dereferenceable(8) %280)
          to label %3135 unwind label %3058

3135:                                             ; preds = %3133
  %3136 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3134, ptr noundef nonnull @.str.31)
          to label %3137 unwind label %3058

3137:                                             ; preds = %3135
  %3138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN7helperslsERSoRKNS_4pathE(ptr noundef nonnull align 8 dereferenceable(8) %3136, ptr noundef nonnull align 8 dereferenceable(32) %292)
          to label %3139 unwind label %3058

3139:                                             ; preds = %3137
  %3140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3138, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3141 unwind label %3058

3141:                                             ; preds = %3139
  %3142 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3140, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3143 unwind label %3058

3143:                                             ; preds = %3141, %3127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %307) #7
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %307, ptr noundef nonnull align 8 dereferenceable(32) %292)
          to label %3144 unwind label %3152

3144:                                             ; preds = %3143
  %3145 = getelementptr inbounds i8, ptr %281, i64 104
  %3146 = getelementptr inbounds i8, ptr %281, i64 112
  %3147 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(32) %307) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %307) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #7
  store i8 %.0316, ptr %3145, align 8, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %308) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %308, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3148 unwind label %3154

3148:                                             ; preds = %3144
  %3149 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %308)
          to label %3150 unwind label %3156

3150:                                             ; preds = %3148
  %3151 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3149)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %308) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %308) #7
  switch i32 %3151, label %3622 [
    i32 25, label %3159
    i32 32, label %3202
  ]

3152:                                             ; preds = %3143
  %3153 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %307) #7
  br label %3644

3154:                                             ; preds = %3144
  %3155 = landingpad { ptr, i32 }
          cleanup
  br label %3158

3156:                                             ; preds = %3148
  %3157 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %308) #7
  br label %3158

3158:                                             ; preds = %3156, %3154
  %.pn728 = phi { ptr, i32 } [ %3157, %3156 ], [ %3155, %3154 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %308) #7
  br label %3644

3159:                                             ; preds = %3150
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %309) #7
  %3160 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %292)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %309, ptr noundef nonnull align 8 dereferenceable(32) %3160, ptr noundef nonnull @.str.32)
          to label %3161 unwind label %3186

3161:                                             ; preds = %3159
  %3162 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %309) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %309) #7
  invoke void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(480) %281, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %3163 unwind label %3058

3163:                                             ; preds = %3161
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %310) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %310, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3164 unwind label %3188

3164:                                             ; preds = %3163
  %3165 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %310)
          to label %3166 unwind label %3190

3166:                                             ; preds = %3164
  %3167 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3165)
  %.not792 = icmp eq i32 %3167, 26
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %310) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %310) #7
  br i1 %.not792, label %3630, label %3168

3168:                                             ; preds = %3166
  %3169 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3170 unwind label %3058

3170:                                             ; preds = %3168
  br i1 %3169, label %3171, label %3193

3171:                                             ; preds = %3170
  %3172 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3173 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3172, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3174 unwind label %3058

3174:                                             ; preds = %3171
  %3175 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3173, ptr noundef nonnull @.str.1)
          to label %3176 unwind label %3058

3176:                                             ; preds = %3174
  %3177 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3175, ptr noundef nonnull @.str.2)
          to label %3178 unwind label %3058

3178:                                             ; preds = %3176
  %3179 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3177, ptr noundef nonnull @.str.3)
          to label %3180 unwind label %3058

3180:                                             ; preds = %3178
  %3181 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3179, i32 noundef 2278)
          to label %3182 unwind label %3058

3182:                                             ; preds = %3180
  %3183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3181, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3184 unwind label %3058

3184:                                             ; preds = %3182
  %3185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3183, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3193 unwind label %3058

3186:                                             ; preds = %3159
  %3187 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %309) #7
  br label %3644

3188:                                             ; preds = %3163
  %3189 = landingpad { ptr, i32 }
          cleanup
  br label %3192

3190:                                             ; preds = %3164
  %3191 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %310) #7
  br label %3192

3192:                                             ; preds = %3190, %3188
  %.pn790 = phi { ptr, i32 } [ %3191, %3190 ], [ %3189, %3188 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %310) #7
  br label %3644

3193:                                             ; preds = %3184, %3170
  %3194 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %311, i32 noundef 26)
          to label %3195 unwind label %.thread1480

3195:                                             ; preds = %3193
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3194, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %311)
          to label %3197 unwind label %.thread1484

.thread1484:                                      ; preds = %3195
  %3196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %311) #7
  br label %3201

3197:                                             ; preds = %3195
  invoke void @__cxa_throw(ptr nonnull %3194, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %3199

.thread1480:                                      ; preds = %3193
  %3198 = landingpad { ptr, i32 }
          cleanup
  br label %3201

3199:                                             ; preds = %3197
  %3200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %311) #7
  br label %3644

3201:                                             ; preds = %.thread1484, %.thread1480
  %.pn7961483 = phi { ptr, i32 } [ %3198, %.thread1480 ], [ %3196, %.thread1484 ]
  call void @__cxa_free_exception(ptr %3194) #7
  br label %3644

3202:                                             ; preds = %3150
  %3203 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %292)
  %3204 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %3203, ptr noundef nonnull @.str.29)
  br i1 %3204, label %3205, label %3216

3205:                                             ; preds = %3202
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %312) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %312, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3206 unwind label %3209

3206:                                             ; preds = %3205
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %314) #7
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %313, ptr noundef nonnull align 1 dereferenceable(1) %314) #7
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %312, i32 noundef 0, ptr noundef nonnull %313)
          to label %3207 unwind label %3211

3207:                                             ; preds = %3206
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %314) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %312) #7
  %3208 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3208, ptr noundef nonnull @.str.7)
          to label %.invoke1513 unwind label %3214

3209:                                             ; preds = %3205
  %3210 = landingpad { ptr, i32 }
          cleanup
  br label %3213

3211:                                             ; preds = %3206
  %3212 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %313) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %314) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %312) #7
  br label %3213

3213:                                             ; preds = %3211, %3209
  %.pn788 = phi { ptr, i32 } [ %3212, %3211 ], [ %3210, %3209 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %312) #7
  br label %3644

3214:                                             ; preds = %3207
  %3215 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3208) #7
  br label %3644

3216:                                             ; preds = %3202
  %3217 = invoke noundef zeroext i1 @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H14check_item_cfgE_0RKS9_(ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %3218 unwind label %3058

3218:                                             ; preds = %3216
  br i1 %3217, label %3229, label %3219

3219:                                             ; preds = %3218
  %3220 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %280)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %315) #7
  invoke void @_ZN3AST4ItemC2Ev(ptr noundef nonnull align 8 dereferenceable(488) %315)
          to label %3221 unwind label %3224

3221:                                             ; preds = %3219
  %3222 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %315)
          to label %3223 unwind label %3226

3223:                                             ; preds = %3221
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %315) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %315) #7
  br label %3630

3224:                                             ; preds = %3219
  %3225 = landingpad { ptr, i32 }
          cleanup
  br label %3228

3226:                                             ; preds = %3221
  %3227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %315) #7
  br label %3228

3228:                                             ; preds = %3226, %3224
  %.pn730 = phi { ptr, i32 } [ %3227, %3226 ], [ %3225, %3224 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %315) #7
  br label %3644

3229:                                             ; preds = %3218
  %3230 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  %3231 = icmp eq i64 %3230, 0
  br i1 %3231, label %3232, label %3464

3232:                                             ; preds = %3229
  %3233 = load i8, ptr %2, align 8, !tbaa !37, !range !42, !noundef !43
  %3234 = trunc nuw i8 %3233 to i1
  br i1 %3234, label %3464, label %3235

3235:                                             ; preds = %3232
  %3236 = getelementptr inbounds i8, ptr %3, i64 8
  %3237 = call noundef i64 @_ZNKSt6vectorI8RcStringSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3236) #7
  %.not732 = icmp eq i64 %3237, 0
  br i1 %.not732, label %3238, label %3250

3238:                                             ; preds = %3235
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %316) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %316, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3239 unwind label %3243

3239:                                             ; preds = %3238
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %318) #7
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %317, ptr noundef nonnull align 1 dereferenceable(1) %318) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %316, ptr noundef nonnull %317)
          to label %3240 unwind label %3245

3240:                                             ; preds = %3239
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %318) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %316) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %316) #7
  %3241 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3241, ptr noundef nonnull @.str.16)
          to label %.invoke1513 unwind label %3248

.invoke1513:                                      ; preds = %3056, %3240, %3207
  %3242 = phi ptr [ %3208, %3207 ], [ %3241, %3240 ], [ %3057, %3056 ]
  invoke void @__cxa_throw(ptr nonnull %3242, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %.cont1514 unwind label %3058

.cont1514:                                        ; preds = %.invoke1513
  unreachable

3243:                                             ; preds = %3238
  %3244 = landingpad { ptr, i32 }
          cleanup
  br label %3247

3245:                                             ; preds = %3239
  %3246 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %317) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %318) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %316) #7
  br label %3247

3247:                                             ; preds = %3245, %3243
  %.pn733 = phi { ptr, i32 } [ %3246, %3245 ], [ %3244, %3243 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %316) #7
  br label %3644

3248:                                             ; preds = %3240
  %3249 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3241) #7
  br label %3644

3250:                                             ; preds = %3235
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %319) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %320) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %321) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %322) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %323) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %324, ptr noundef nonnull align 8 dereferenceable(32) %2992)
          to label %3251 unwind label %3284

3251:                                             ; preds = %3250
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %323, ptr noundef nonnull %324)
          to label %3252 unwind label %3286

3252:                                             ; preds = %3251
  %3253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %3236) #7
  %3254 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %3253)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %322, ptr noundef nonnull align 8 dereferenceable(32) %323, ptr noundef %3254)
          to label %3255 unwind label %3288

3255:                                             ; preds = %3252
  %3256 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %280)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %321, ptr noundef nonnull align 8 dereferenceable(32) %322, ptr noundef %3256)
          to label %3257 unwind label %3290

3257:                                             ; preds = %3255
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %320, ptr noundef nonnull align 8 dereferenceable(32) %321, ptr noundef nonnull @.str.33)
          to label %3258 unwind label %3292

3258:                                             ; preds = %3257
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %319, ptr noundef nonnull align 8 dereferenceable(32) %320)
          to label %3259 unwind label %3294

3259:                                             ; preds = %3258
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %320) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %325) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %326) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %327) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %328) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %329) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %330, ptr noundef nonnull align 8 dereferenceable(32) %2992)
          to label %3260 unwind label %3301

3260:                                             ; preds = %3259
  invoke void @_Z7dirnameNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %329, ptr noundef nonnull %330)
          to label %3261 unwind label %3303

3261:                                             ; preds = %3260
  %3262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNKSt6vectorI8RcStringSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %3236) #7
  %3263 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %3262)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %328, ptr noundef nonnull align 8 dereferenceable(32) %329, ptr noundef %3263)
          to label %3264 unwind label %3305

3264:                                             ; preds = %3261
  %3265 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %280)
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %327, ptr noundef nonnull align 8 dereferenceable(32) %328, ptr noundef %3265)
          to label %3266 unwind label %3307

3266:                                             ; preds = %3264
  invoke void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %326, ptr noundef nonnull align 8 dereferenceable(32) %327, ptr noundef nonnull @.str.34)
          to label %3267 unwind label %3309

3267:                                             ; preds = %3266
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %325, ptr noundef nonnull align 8 dereferenceable(32) %326)
          to label %3268 unwind label %3311

3268:                                             ; preds = %3267
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %328) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %326) #7
  %3269 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3270 unwind label %3318

3270:                                             ; preds = %3268
  br i1 %3269, label %3271, label %3320

3271:                                             ; preds = %3270
  %3272 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3272, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3274 unwind label %3318

3274:                                             ; preds = %3271
  %3275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3273, ptr noundef nonnull align 8 dereferenceable(32) %2992)
          to label %3276 unwind label %3318

3276:                                             ; preds = %3274
  %3277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3275, ptr noundef nonnull @.str.14)
          to label %3278 unwind label %3318

3278:                                             ; preds = %3276
  %3279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3ASTlsERSoRKNS_12AbsolutePathE(ptr noundef nonnull align 8 dereferenceable(8) %3277, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %3280 unwind label %3318

3280:                                             ; preds = %3278
  %3281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3279, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3282 unwind label %3318

3282:                                             ; preds = %3280
  %3283 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3281, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3320 unwind label %3318

3284:                                             ; preds = %3250
  %3285 = landingpad { ptr, i32 }
          cleanup
  br label %3300

3286:                                             ; preds = %3251
  %3287 = landingpad { ptr, i32 }
          cleanup
  br label %3299

3288:                                             ; preds = %3252
  %3289 = landingpad { ptr, i32 }
          cleanup
  br label %3298

3290:                                             ; preds = %3255
  %3291 = landingpad { ptr, i32 }
          cleanup
  br label %3297

3292:                                             ; preds = %3257
  %3293 = landingpad { ptr, i32 }
          cleanup
  br label %3296

3294:                                             ; preds = %3258
  %3295 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %320) #7
  br label %3296

3296:                                             ; preds = %3294, %3292
  %.pn735 = phi { ptr, i32 } [ %3295, %3294 ], [ %3293, %3292 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %321) #7
  br label %3297

3297:                                             ; preds = %3296, %3290
  %.pn735.pn = phi { ptr, i32 } [ %.pn735, %3296 ], [ %3291, %3290 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %322) #7
  br label %3298

3298:                                             ; preds = %3297, %3288
  %.pn735.pn.pn = phi { ptr, i32 } [ %.pn735.pn, %3297 ], [ %3289, %3288 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %323) #7
  br label %3299

3299:                                             ; preds = %3298, %3286
  %.pn735.pn.pn.pn = phi { ptr, i32 } [ %.pn735.pn.pn, %3298 ], [ %3287, %3286 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %324) #7
  br label %3300

3300:                                             ; preds = %3299, %3284
  %.pn735.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn735.pn.pn.pn, %3299 ], [ %3285, %3284 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %323) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %322) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %321) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %320) #7
  br label %3463

3301:                                             ; preds = %3259
  %3302 = landingpad { ptr, i32 }
          cleanup
  br label %3317

3303:                                             ; preds = %3260
  %3304 = landingpad { ptr, i32 }
          cleanup
  br label %3316

3305:                                             ; preds = %3261
  %3306 = landingpad { ptr, i32 }
          cleanup
  br label %3315

3307:                                             ; preds = %3264
  %3308 = landingpad { ptr, i32 }
          cleanup
  br label %3314

3309:                                             ; preds = %3266
  %3310 = landingpad { ptr, i32 }
          cleanup
  br label %3313

3311:                                             ; preds = %3267
  %3312 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %326) #7
  br label %3313

3313:                                             ; preds = %3311, %3309
  %.pn741 = phi { ptr, i32 } [ %3312, %3311 ], [ %3310, %3309 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %327) #7
  br label %3314

3314:                                             ; preds = %3313, %3307
  %.pn741.pn = phi { ptr, i32 } [ %.pn741, %3313 ], [ %3308, %3307 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %328) #7
  br label %3315

3315:                                             ; preds = %3314, %3305
  %.pn741.pn.pn = phi { ptr, i32 } [ %.pn741.pn, %3314 ], [ %3306, %3305 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %329) #7
  br label %3316

3316:                                             ; preds = %3315, %3303
  %.pn741.pn.pn.pn = phi { ptr, i32 } [ %.pn741.pn.pn, %3315 ], [ %3304, %3303 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %330) #7
  br label %3317

3317:                                             ; preds = %3316, %3301
  %.pn741.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn741.pn.pn.pn, %3316 ], [ %3302, %3301 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %329) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %328) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %327) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %326) #7
  br label %3462

3318:                                             ; preds = %3350, %3348, %3346, %3344, %3342, %3339, %3336, %3334, %3332, %3330, %3328, %3326, %3323, %3320, %3282, %3280, %3278, %3276, %3274, %3271, %3268
  %3319 = landingpad { ptr, i32 }
          cleanup
  br label %3461

3320:                                             ; preds = %3270, %3282
  %3321 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3322 unwind label %3318

3322:                                             ; preds = %3320
  br i1 %3321, label %3323, label %3336

3323:                                             ; preds = %3322
  %3324 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3324, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3326 unwind label %3318

3326:                                             ; preds = %3323
  %3327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3325, ptr noundef nonnull @.str.35)
          to label %3328 unwind label %3318

3328:                                             ; preds = %3326
  %3329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3327, ptr noundef nonnull align 8 dereferenceable(32) %319)
          to label %3330 unwind label %3318

3330:                                             ; preds = %3328
  %3331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3329, ptr noundef nonnull @.str.26)
          to label %3332 unwind label %3318

3332:                                             ; preds = %3330
  %3333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3331, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3334 unwind label %3318

3334:                                             ; preds = %3332
  %3335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3333, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3336 unwind label %3318

3336:                                             ; preds = %3322, %3334
  %3337 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3338 unwind label %3318

3338:                                             ; preds = %3336
  br i1 %3337, label %3339, label %3352

3339:                                             ; preds = %3338
  %3340 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3340, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3342 unwind label %3318

3342:                                             ; preds = %3339
  %3343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3341, ptr noundef nonnull @.str.36)
          to label %3344 unwind label %3318

3344:                                             ; preds = %3342
  %3345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3343, ptr noundef nonnull align 8 dereferenceable(32) %325)
          to label %3346 unwind label %3318

3346:                                             ; preds = %3344
  %3347 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3345, ptr noundef nonnull @.str.26)
          to label %3348 unwind label %3318

3348:                                             ; preds = %3346
  %3349 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3347, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3350 unwind label %3318

3350:                                             ; preds = %3348
  %3351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3349, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3352 unwind label %3318

3352:                                             ; preds = %3350, %3338
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %331) #7
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %331, ptr noundef nonnull align 8 dereferenceable(32) %319, i32 noundef 8)
          to label %3353 unwind label %3362

3353:                                             ; preds = %3352
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %332) #7
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %332, ptr noundef nonnull align 8 dereferenceable(32) %325, i32 noundef 8)
          to label %3354 unwind label %3364

3354:                                             ; preds = %3353
  %3355 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %332)
  br i1 %3355, label %3356, label %3375

3356:                                             ; preds = %3354
  %3357 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %331)
  br i1 %3357, label %3358, label %3375

3358:                                             ; preds = %3356
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %333) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %333, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3359 unwind label %3368

3359:                                             ; preds = %3358
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %335) #7
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 1 dereferenceable(1) %335) #7
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %333, i32 noundef 0, ptr noundef nonnull %334)
          to label %3360 unwind label %3370

3360:                                             ; preds = %3359
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %335) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %333) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %333) #7
  %3361 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3361, ptr noundef nonnull @.str.7)
          to label %.invoke1515 unwind label %3373

3362:                                             ; preds = %3352
  %3363 = landingpad { ptr, i32 }
          cleanup
  br label %3460

3364:                                             ; preds = %3353
  %3365 = landingpad { ptr, i32 }
          cleanup
  br label %3459

3366:                                             ; preds = %.invoke1515, %3408, %3406, %3404, %3402, %3399, %3396, %3381, %3377
  %3367 = landingpad { ptr, i32 }
          cleanup
  br label %3458

3368:                                             ; preds = %3358
  %3369 = landingpad { ptr, i32 }
          cleanup
  br label %3372

3370:                                             ; preds = %3359
  %3371 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %334) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %335) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %333) #7
  br label %3372

3372:                                             ; preds = %3370, %3368
  %.pn756 = phi { ptr, i32 } [ %3371, %3370 ], [ %3369, %3368 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %333) #7
  br label %3458

3373:                                             ; preds = %3360
  %3374 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3361) #7
  br label %3458

3375:                                             ; preds = %3356, %3354
  %3376 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %332)
  br i1 %3376, label %3377, label %3379

3377:                                             ; preds = %3375
  %3378 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(32) %325)
          to label %3396 unwind label %3366

3379:                                             ; preds = %3375
  %3380 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %331)
  br i1 %3380, label %3381, label %3383

3381:                                             ; preds = %3379
  %3382 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(32) %319)
          to label %3396 unwind label %3366

3383:                                             ; preds = %3379
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %336) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %336, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3384 unwind label %3389

3384:                                             ; preds = %3383
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %338) #7
  store ptr %280, ptr %338, align 8, !tbaa !5
  %3385 = getelementptr inbounds i8, ptr %338, i64 8
  store ptr %2, ptr %3385, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %337, ptr noundef nonnull align 8 dereferenceable(16) %338) #7
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %336, i32 noundef 0, ptr noundef nonnull %337)
          to label %3386 unwind label %3391

3386:                                             ; preds = %3384
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %338) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %336) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %336) #7
  %3387 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3387, ptr noundef nonnull @.str.7)
          to label %.invoke1515 unwind label %3394

.invoke1515:                                      ; preds = %3360, %3386
  %3388 = phi ptr [ %3387, %3386 ], [ %3361, %3360 ]
  invoke void @__cxa_throw(ptr nonnull %3388, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %.cont1516 unwind label %3366

.cont1516:                                        ; preds = %.invoke1515
  unreachable

3389:                                             ; preds = %3383
  %3390 = landingpad { ptr, i32 }
          cleanup
  br label %3393

3391:                                             ; preds = %3384
  %3392 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %337) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %338) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %336) #7
  br label %3393

3393:                                             ; preds = %3391, %3389
  %.pn747 = phi { ptr, i32 } [ %3392, %3391 ], [ %3390, %3389 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %336) #7
  br label %3458

3394:                                             ; preds = %3386
  %3395 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3387) #7
  br label %3458

3396:                                             ; preds = %3381, %3377
  %storemerge = phi i8 [ 1, %3377 ], [ 0, %3381 ]
  store i8 %storemerge, ptr %3145, align 8, !tbaa !44
  %3397 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3398 unwind label %3366

3398:                                             ; preds = %3396
  br i1 %3397, label %3399, label %3410

3399:                                             ; preds = %3398
  %3400 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3401 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3400, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3402 unwind label %3366

3402:                                             ; preds = %3399
  %3403 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3401, ptr noundef nonnull @.str.37)
          to label %3404 unwind label %3366

3404:                                             ; preds = %3402
  %3405 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3403, ptr noundef nonnull align 8 dereferenceable(32) %3146)
          to label %3406 unwind label %3366

3406:                                             ; preds = %3404
  %3407 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3405, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3408 unwind label %3366

3408:                                             ; preds = %3406
  %3409 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3407, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3410 unwind label %3366

3410:                                             ; preds = %3408, %3398
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %339) #7
  %3411 = call noundef i32 @_ZNK11TokenStream11get_editionEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  %3412 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  invoke void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256) %339, ptr noundef nonnull align 8 dereferenceable(32) %3146, i32 noundef %3411, ptr noundef nonnull byval(%struct.ParseState) align 8 %3412)
          to label %3413 unwind label %3437

3413:                                             ; preds = %3410
  invoke void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176) %339, ptr noundef nonnull align 8 dereferenceable(480) %281, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %3414 unwind label %3439

3414:                                             ; preds = %3413
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %340) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %340, ptr noundef nonnull align 8 dereferenceable(176) %339)
          to label %3415 unwind label %3441

3415:                                             ; preds = %3414
  %3416 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %340)
          to label %3417 unwind label %3443

3417:                                             ; preds = %3415
  %3418 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3416)
  %.not751 = icmp eq i32 %3418, 1
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %340) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %340) #7
  br i1 %.not751, label %3455, label %3419

3419:                                             ; preds = %3417
  %3420 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3421 unwind label %3439

3421:                                             ; preds = %3419
  br i1 %3420, label %3422, label %3446

3422:                                             ; preds = %3421
  %3423 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3424 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3423, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3425 unwind label %3439

3425:                                             ; preds = %3422
  %3426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3424, ptr noundef nonnull @.str.1)
          to label %3427 unwind label %3439

3427:                                             ; preds = %3425
  %3428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3426, ptr noundef nonnull @.str.2)
          to label %3429 unwind label %3439

3429:                                             ; preds = %3427
  %3430 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3428, ptr noundef nonnull @.str.3)
          to label %3431 unwind label %3439

3431:                                             ; preds = %3429
  %3432 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3430, i32 noundef 2323)
          to label %3433 unwind label %3439

3433:                                             ; preds = %3431
  %3434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3432, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3435 unwind label %3439

3435:                                             ; preds = %3433
  %3436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3434, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3446 unwind label %3439

3437:                                             ; preds = %3410
  %3438 = landingpad { ptr, i32 }
          cleanup
  br label %3457

3439:                                             ; preds = %3435, %3433, %3431, %3429, %3427, %3425, %3422, %3419, %3413
  %3440 = landingpad { ptr, i32 }
          cleanup
  br label %3456

3441:                                             ; preds = %3414
  %3442 = landingpad { ptr, i32 }
          cleanup
  br label %3445

3443:                                             ; preds = %3415
  %3444 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %340) #7
  br label %3445

3445:                                             ; preds = %3443, %3441
  %.pn749 = phi { ptr, i32 } [ %3444, %3443 ], [ %3442, %3441 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %340) #7
  br label %3456

3446:                                             ; preds = %3435, %3421
  %3447 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %341, i32 noundef 1)
          to label %3448 unwind label %.thread1486

3448:                                             ; preds = %3446
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3447, ptr noundef nonnull align 8 dereferenceable(176) %339, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %341)
          to label %3450 unwind label %.thread1490

.thread1490:                                      ; preds = %3448
  %3449 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %341) #7
  br label %3454

3450:                                             ; preds = %3448
  invoke void @__cxa_throw(ptr nonnull %3447, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %3452

.thread1486:                                      ; preds = %3446
  %3451 = landingpad { ptr, i32 }
          cleanup
  br label %3454

3452:                                             ; preds = %3450
  %3453 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %341) #7
  br label %3456

3454:                                             ; preds = %.thread1490, %.thread1486
  %.pn7521489 = phi { ptr, i32 } [ %3451, %.thread1486 ], [ %3449, %.thread1490 ]
  call void @__cxa_free_exception(ptr %3447) #7
  br label %3456

3455:                                             ; preds = %3417
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %339) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %339) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %332) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %332) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %331) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %331) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %325) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #7
  br label %3630

3456:                                             ; preds = %3452, %3454, %3445, %3439
  %.pn752.pn = phi { ptr, i32 } [ %.pn7521489, %3454 ], [ %3453, %3452 ], [ %3440, %3439 ], [ %.pn749, %3445 ]
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %339) #7
  br label %3457

3457:                                             ; preds = %3456, %3437
  %.pn752.pn.pn = phi { ptr, i32 } [ %.pn752.pn, %3456 ], [ %3438, %3437 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %339) #7
  br label %3458

3458:                                             ; preds = %3457, %3394, %3393, %3373, %3372, %3366
  %.pn758 = phi { ptr, i32 } [ %3367, %3366 ], [ %3374, %3373 ], [ %.pn756, %3372 ], [ %.pn752.pn.pn, %3457 ], [ %3395, %3394 ], [ %.pn747, %3393 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %332) #7
  br label %3459

3459:                                             ; preds = %3458, %3364
  %.pn758.pn = phi { ptr, i32 } [ %.pn758, %3458 ], [ %3365, %3364 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %332) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %331) #7
  br label %3460

3460:                                             ; preds = %3459, %3362
  %.pn758.pn.pn = phi { ptr, i32 } [ %.pn758.pn, %3459 ], [ %3363, %3362 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %331) #7
  br label %3461

3461:                                             ; preds = %3460, %3318
  %.pn758.pn.pn.pn = phi { ptr, i32 } [ %.pn758.pn.pn, %3460 ], [ %3319, %3318 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %325) #7
  br label %3462

3462:                                             ; preds = %3461, %3317
  %.pn758.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn758.pn.pn.pn, %3461 ], [ %.pn741.pn.pn.pn.pn, %3317 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %325) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %319) #7
  br label %3463

3463:                                             ; preds = %3462, %3300
  %.pn758.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn758.pn.pn.pn.pn, %3462 ], [ %.pn735.pn.pn.pn.pn, %3300 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %319) #7
  br label %3644

3464:                                             ; preds = %3232, %3229
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %342) #7
  %3465 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK7helpers4path3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(32) %292)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %342, ptr noundef nonnull align 8 dereferenceable(32) %3465, ptr noundef nonnull @.str.32)
          to label %3466 unwind label %3491

3466:                                             ; preds = %3464
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %343) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %344) #7
  %3467 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  %.not765 = icmp eq i64 %3467, 0
  br i1 %.not765, label %3469, label %3468

3468:                                             ; preds = %3466
  invoke void @_ZN7helpers4pathC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %344, ptr noundef nonnull align 8 dereferenceable(32) %292)
          to label %3470 unwind label %3493

3469:                                             ; preds = %3466
  invoke void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind nonnull writable sret(%"class.helpers::path") align 8 %344, ptr noundef nonnull align 8 dereferenceable(32) %292, ptr noundef nonnull @.str.33)
          to label %3470 unwind label %3493

3470:                                             ; preds = %3469, %3468
  invoke void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %343, ptr noundef nonnull align 8 dereferenceable(32) %344)
          to label %3471 unwind label %3495

3471:                                             ; preds = %3470
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %344) #7
  %3472 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3473 unwind label %3498

3473:                                             ; preds = %3471
  br i1 %3472, label %3474, label %3500

3474:                                             ; preds = %3473
  %3475 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3476 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3475, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3477 unwind label %3498

3477:                                             ; preds = %3474
  %3478 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3476, ptr noundef nonnull @.str.38)
          to label %3479 unwind label %3498

3479:                                             ; preds = %3477
  %3480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3478, ptr noundef nonnull align 8 dereferenceable(32) %342)
          to label %3481 unwind label %3498

3481:                                             ; preds = %3479
  %3482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3480, ptr noundef nonnull @.str.39)
          to label %3483 unwind label %3498

3483:                                             ; preds = %3481
  %3484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3482, ptr noundef nonnull align 8 dereferenceable(32) %343)
          to label %3485 unwind label %3498

3485:                                             ; preds = %3483
  %3486 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3484, ptr noundef nonnull @.str.26)
          to label %3487 unwind label %3498

3487:                                             ; preds = %3485
  %3488 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3486, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3489 unwind label %3498

3489:                                             ; preds = %3487
  %3490 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3488, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3500 unwind label %3498

3491:                                             ; preds = %3464
  %3492 = landingpad { ptr, i32 }
          cleanup
  br label %3621

3493:                                             ; preds = %3469, %3468
  %3494 = landingpad { ptr, i32 }
          cleanup
  br label %3497

3495:                                             ; preds = %3470
  %3496 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %344) #7
  br label %3497

3497:                                             ; preds = %3495, %3493
  %.pn766 = phi { ptr, i32 } [ %3496, %3495 ], [ %3494, %3493 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %344) #7
  br label %3620

3498:                                             ; preds = %3489, %3487, %3485, %3483, %3481, %3479, %3477, %3474, %3471
  %3499 = landingpad { ptr, i32 }
          cleanup
  br label %3619

3500:                                             ; preds = %3489, %3473
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %345) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %346) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %346, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str.34)
          to label %3501 unwind label %3511

3501:                                             ; preds = %3500
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %345, ptr noundef nonnull align 8 dereferenceable(32) %346, i32 noundef 8)
          to label %3502 unwind label %3513

3502:                                             ; preds = %3501
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #7
  call void @llvm.lifetime.start.p0(i64 520, ptr nonnull %347) #7
  invoke void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256) %347, ptr noundef nonnull align 8 dereferenceable(32) %343, i32 noundef 8)
          to label %3503 unwind label %3516

3503:                                             ; preds = %3502
  %3504 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %345)
  br i1 %3504, label %3505, label %3527

3505:                                             ; preds = %3503
  %3506 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %347)
  br i1 %3506, label %3507, label %3527

3507:                                             ; preds = %3505
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %348) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %348, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3508 unwind label %3520

3508:                                             ; preds = %3507
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %350) #7
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %349, ptr noundef nonnull align 1 dereferenceable(1) %350) #7
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %348, i32 noundef 0, ptr noundef nonnull %349)
          to label %3509 unwind label %3522

3509:                                             ; preds = %3508
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %350) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #7
  %3510 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3510, ptr noundef nonnull @.str.7)
          to label %.invoke1517 unwind label %3525

3511:                                             ; preds = %3500
  %3512 = landingpad { ptr, i32 }
          cleanup
  br label %3515

3513:                                             ; preds = %3501
  %3514 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %346) #7
  br label %3515

3515:                                             ; preds = %3513, %3511
  %.pn768 = phi { ptr, i32 } [ %3514, %3513 ], [ %3512, %3511 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %346) #7
  br label %3618

3516:                                             ; preds = %3502
  %3517 = landingpad { ptr, i32 }
          cleanup
  br label %3617

3518:                                             ; preds = %.invoke1517, %3566, %3564, %3562, %3560, %3557, %3554, %3536
  %3519 = landingpad { ptr, i32 }
          cleanup
  br label %3616

3520:                                             ; preds = %3507
  %3521 = landingpad { ptr, i32 }
          cleanup
  br label %3524

3522:                                             ; preds = %3508
  %3523 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %349) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %350) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %348) #7
  br label %3524

3524:                                             ; preds = %3522, %3520
  %.pn779 = phi { ptr, i32 } [ %3523, %3522 ], [ %3521, %3520 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %348) #7
  br label %3616

3525:                                             ; preds = %3509
  %3526 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3510) #7
  br label %3616

3527:                                             ; preds = %3505, %3503
  %3528 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %345)
  br i1 %3528, label %3529, label %3534

3529:                                             ; preds = %3527
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %351) #7
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %351, ptr noundef nonnull align 8 dereferenceable(32) %342, ptr noundef nonnull @.str.34)
          to label %3530 unwind label %3532

3530:                                             ; preds = %3529
  %3531 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(32) %351) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %351) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #7
  br label %3554

3532:                                             ; preds = %3529
  %3533 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %351) #7
  br label %3616

3534:                                             ; preds = %3527
  %3535 = call noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256) %347)
  br i1 %3535, label %3536, label %3541

3536:                                             ; preds = %3534
  %3537 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %3146, ptr noundef nonnull align 8 dereferenceable(32) %343)
          to label %3538 unwind label %3518

3538:                                             ; preds = %3536
  %3539 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %284, ptr noundef nonnull @.str)
  br i1 %3539, label %3540, label %3554

3540:                                             ; preds = %3538
  store i8 0, ptr %3145, align 8, !tbaa !44
  br label %3554

3541:                                             ; preds = %3534
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %352) #7
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %352, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %3542 unwind label %3547

3542:                                             ; preds = %3541
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %354) #7
  store ptr %280, ptr %354, align 8, !tbaa !5
  %3543 = getelementptr inbounds i8, ptr %354, i64 8
  store ptr %2, ptr %3543, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS6_12AbsolutePathENS6_13AttributeListEE3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %353, ptr noundef nonnull align 8 dereferenceable(16) %354) #7
  invoke void @_ZNK4Span5errorE9ErrorTypeSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %352, i32 noundef 0, ptr noundef nonnull %353)
          to label %3544 unwind label %3549

3544:                                             ; preds = %3542
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %354) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %352) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %352) #7
  %3545 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %3545, ptr noundef nonnull @.str.7)
          to label %.invoke1517 unwind label %3552

.invoke1517:                                      ; preds = %3509, %3544
  %3546 = phi ptr [ %3545, %3544 ], [ %3510, %3509 ]
  invoke void @__cxa_throw(ptr nonnull %3546, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %.cont1518 unwind label %3518

.cont1518:                                        ; preds = %.invoke1517
  unreachable

3547:                                             ; preds = %3541
  %3548 = landingpad { ptr, i32 }
          cleanup
  br label %3551

3549:                                             ; preds = %3542
  %3550 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %353) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %354) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %352) #7
  br label %3551

3551:                                             ; preds = %3549, %3547
  %.pn770 = phi { ptr, i32 } [ %3550, %3549 ], [ %3548, %3547 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %352) #7
  br label %3616

3552:                                             ; preds = %3544
  %3553 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3545) #7
  br label %3616

3554:                                             ; preds = %3540, %3538, %3530
  %3555 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3556 unwind label %3518

3556:                                             ; preds = %3554
  br i1 %3555, label %3557, label %3568

3557:                                             ; preds = %3556
  %3558 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3559 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3558, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3560 unwind label %3518

3560:                                             ; preds = %3557
  %3561 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3559, ptr noundef nonnull @.str.37)
          to label %3562 unwind label %3518

3562:                                             ; preds = %3560
  %3563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %3561, ptr noundef nonnull align 8 dereferenceable(32) %3146)
          to label %3564 unwind label %3518

3564:                                             ; preds = %3562
  %3565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3563, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3566 unwind label %3518

3566:                                             ; preds = %3564
  %3567 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3565, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3568 unwind label %3518

3568:                                             ; preds = %3566, %3556
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %355) #7
  %3569 = call noundef i32 @_ZNK11TokenStream11get_editionEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  %3570 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN11TokenStream11parse_stateEv(ptr noundef nonnull align 8 dereferenceable(176) %1)
  invoke void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256) %355, ptr noundef nonnull align 8 dereferenceable(32) %3146, i32 noundef %3569, ptr noundef nonnull byval(%struct.ParseState) align 8 %3570)
          to label %3571 unwind label %3595

3571:                                             ; preds = %3568
  invoke void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176) %355, ptr noundef nonnull align 8 dereferenceable(480) %281, ptr noundef nonnull align 8 dereferenceable(24) %4)
          to label %3572 unwind label %3597

3572:                                             ; preds = %3571
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %356) #7
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %356, ptr noundef nonnull align 8 dereferenceable(176) %355)
          to label %3573 unwind label %3599

3573:                                             ; preds = %3572
  %3574 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull align 8 dereferenceable(88) %356)
          to label %3575 unwind label %3601

3575:                                             ; preds = %3573
  %3576 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %3574)
  %.not774 = icmp eq i32 %3576, 1
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %356) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %356) #7
  br i1 %.not774, label %3613, label %3577

3577:                                             ; preds = %3575
  %3578 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %3579 unwind label %3597

3579:                                             ; preds = %3577
  br i1 %3578, label %3580, label %3604

3580:                                             ; preds = %3579
  %3581 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %3582 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %3581, ptr noundef nonnull @__func__._Z16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListE)
          to label %3583 unwind label %3597

3583:                                             ; preds = %3580
  %3584 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3582, ptr noundef nonnull @.str.1)
          to label %3585 unwind label %3597

3585:                                             ; preds = %3583
  %3586 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3584, ptr noundef nonnull @.str.2)
          to label %3587 unwind label %3597

3587:                                             ; preds = %3585
  %3588 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %3586, ptr noundef nonnull @.str.3)
          to label %3589 unwind label %3597

3589:                                             ; preds = %3587
  %3590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %3588, i32 noundef 2359)
          to label %3591 unwind label %3597

3591:                                             ; preds = %3589
  %3592 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %3590, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %3593 unwind label %3597

3593:                                             ; preds = %3591
  %3594 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %3592, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %3604 unwind label %3597

3595:                                             ; preds = %3568
  %3596 = landingpad { ptr, i32 }
          cleanup
  br label %3615

3597:                                             ; preds = %3593, %3591, %3589, %3587, %3585, %3583, %3580, %3577, %3571
  %3598 = landingpad { ptr, i32 }
          cleanup
  br label %3614

3599:                                             ; preds = %3572
  %3600 = landingpad { ptr, i32 }
          cleanup
  br label %3603

3601:                                             ; preds = %3573
  %3602 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %356) #7
  br label %3603

3603:                                             ; preds = %3601, %3599
  %.pn772 = phi { ptr, i32 } [ %3602, %3601 ], [ %3600, %3599 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %356) #7
  br label %3614

3604:                                             ; preds = %3593, %3579
  %3605 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %357, i32 noundef 1)
          to label %3606 unwind label %.thread1492

3606:                                             ; preds = %3604
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %3605, ptr noundef nonnull align 8 dereferenceable(176) %355, ptr noundef nonnull align 8 dereferenceable(88) %9, ptr noundef nonnull %357)
          to label %3608 unwind label %.thread1496

.thread1496:                                      ; preds = %3606
  %3607 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %357) #7
  br label %3612

3608:                                             ; preds = %3606
  invoke void @__cxa_throw(ptr nonnull %3605, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %3674 unwind label %3610

.thread1492:                                      ; preds = %3604
  %3609 = landingpad { ptr, i32 }
          cleanup
  br label %3612

3610:                                             ; preds = %3608
  %3611 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %357) #7
  br label %3614

3612:                                             ; preds = %.thread1496, %.thread1492
  %.pn7751495 = phi { ptr, i32 } [ %3609, %.thread1492 ], [ %3607, %.thread1496 ]
  call void @__cxa_free_exception(ptr %3605) #7
  br label %3614

3613:                                             ; preds = %3575
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %355) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %355) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %347) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %347) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %345) #7
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %345) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #7
  br label %3630

3614:                                             ; preds = %3610, %3612, %3603, %3597
  %.pn775.pn = phi { ptr, i32 } [ %.pn7751495, %3612 ], [ %3611, %3610 ], [ %3598, %3597 ], [ %.pn772, %3603 ]
  call void @_ZN5LexerD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %355) #7
  br label %3615

3615:                                             ; preds = %3614, %3595
  %.pn775.pn.pn = phi { ptr, i32 } [ %.pn775.pn, %3614 ], [ %3596, %3595 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %355) #7
  br label %3616

3616:                                             ; preds = %3615, %3552, %3551, %3532, %3525, %3524, %3518
  %.pn781 = phi { ptr, i32 } [ %3519, %3518 ], [ %3526, %3525 ], [ %.pn779, %3524 ], [ %.pn775.pn.pn, %3615 ], [ %3533, %3532 ], [ %3553, %3552 ], [ %.pn770, %3551 ]
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %347) #7
  br label %3617

3617:                                             ; preds = %3616, %3516
  %.pn781.pn = phi { ptr, i32 } [ %.pn781, %3616 ], [ %3517, %3516 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %347) #7
  call void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256) %345) #7
  br label %3618

3618:                                             ; preds = %3617, %3515
  %.pn781.pn.pn = phi { ptr, i32 } [ %.pn781.pn, %3617 ], [ %.pn768, %3515 ]
  call void @llvm.lifetime.end.p0(i64 520, ptr nonnull %345) #7
  br label %3619

3619:                                             ; preds = %3618, %3498
  %.pn781.pn.pn.pn = phi { ptr, i32 } [ %.pn781.pn.pn, %3618 ], [ %3499, %3498 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %343) #7
  br label %3620

3620:                                             ; preds = %3619, %3497
  %.pn781.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn781.pn.pn.pn, %3619 ], [ %.pn766, %3497 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %343) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %342) #7
  br label %3621

3621:                                             ; preds = %3620, %3491
  %.pn781.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn781.pn.pn.pn.pn, %3620 ], [ %3492, %3491 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %342) #7
  br label %3644

3622:                                             ; preds = %3150
  %3623 = call ptr @__cxa_allocate_exception(i64 40) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %359) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %358, ptr noundef nonnull @.str.40, ptr noundef nonnull align 1 dereferenceable(1) %359)
          to label %3624 unwind label %.thread1498

3624:                                             ; preds = %3622
  invoke void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %3623, ptr noundef nonnull %358)
          to label %3625 unwind label %3627

3625:                                             ; preds = %3624
  invoke void @__cxa_throw(ptr nonnull %3623, ptr nonnull @_ZTIN12CompileError7GenericE, ptr nonnull @_ZN12CompileError7GenericD2Ev) #8
          to label %3674 unwind label %3627

.thread1498:                                      ; preds = %3622
  %3626 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %359) #7
  br label %3629

3627:                                             ; preds = %3624, %3625
  %.0 = phi i1 [ false, %3625 ], [ true, %3624 ]
  %3628 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %358) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %359) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %359) #7
  br i1 %.0, label %3629, label %3644

3629:                                             ; preds = %.thread1498, %3627
  %.pn7981501 = phi { ptr, i32 } [ %3626, %.thread1498 ], [ %3628, %3627 ]
  call void @__cxa_free_exception(ptr %3623) #7
  br label %3644

3630:                                             ; preds = %3455, %3613, %3166, %3223
  %3631 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %280)
  call void @llvm.lifetime.start.p0(i64 488, ptr nonnull %360) #7
  invoke void @_ZN3AST6ModuleC2EOS0_(ptr noundef nonnull align 8 dereferenceable(480) %361, ptr noundef nonnull align 8 dereferenceable(480) %281)
          to label %3632 unwind label %3636

3632:                                             ; preds = %3630
  invoke void @_ZN3AST4ItemC2ENS_6ModuleE(ptr noundef nonnull align 8 dereferenceable(488) %360, ptr noundef nonnull %361)
          to label %3633 unwind label %3638

3633:                                             ; preds = %3632
  %3634 = invoke noundef nonnull align 8 dereferenceable(488) ptr @_ZN3AST4ItemaSEOS0_(ptr noundef nonnull align 8 dereferenceable(488) %30, ptr noundef nonnull align 8 dereferenceable(488) %360)
          to label %3635 unwind label %3640

3635:                                             ; preds = %3633
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %360) #7
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %361) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %360) #7
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #7
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %281) #7
  call void @llvm.lifetime.end.p0(i64 480, ptr nonnull %281) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #7
  br label %3654

3636:                                             ; preds = %3630
  %3637 = landingpad { ptr, i32 }
          cleanup
  br label %3643

3638:                                             ; preds = %3632
  %3639 = landingpad { ptr, i32 }
          cleanup
  br label %3642

3640:                                             ; preds = %3633
  %3641 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %360) #7
  br label %3642

3642:                                             ; preds = %3640, %3638
  %.pn793 = phi { ptr, i32 } [ %3641, %3640 ], [ %3639, %3638 ]
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %361) #7
  br label %3643

3643:                                             ; preds = %3642, %3636
  %.pn793.pn = phi { ptr, i32 } [ %.pn793, %3642 ], [ %3637, %3636 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %360) #7
  br label %3644

3644:                                             ; preds = %3199, %3627, %3629, %3201, %3643, %3621, %3463, %3248, %3247, %3228, %3214, %3213, %3192, %3186, %3158, %3152, %3124, %3103, %3086, %3070, %3065, %3064, %3058
  %.pn802 = phi { ptr, i32 } [ %3059, %3058 ], [ %3066, %3065 ], [ %.pn800, %3064 ], [ %.pn7981501, %3629 ], [ %3628, %3627 ], [ %3215, %3214 ], [ %.pn788, %3213 ], [ %.pn781.pn.pn.pn.pn.pn, %3621 ], [ %.pn793.pn, %3643 ], [ %.pn758.pn.pn.pn.pn.pn, %3463 ], [ %3249, %3248 ], [ %.pn733, %3247 ], [ %.pn730, %3228 ], [ %.pn7961483, %3201 ], [ %3200, %3199 ], [ %.pn790, %3192 ], [ %3187, %3186 ], [ %.pn728, %3158 ], [ %3153, %3152 ], [ %3071, %3070 ], [ %.pn724.pn, %3086 ], [ %.pn721.pn, %3103 ], [ %.pn717.pn.pn, %3124 ]
  call void @_ZN7helpers4pathD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %292) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %292) #7
  br label %3645

3645:                                             ; preds = %3644, %3052
  %.pn807.pn = phi { ptr, i32 } [ %.pn807, %3052 ], [ %.pn802, %3644 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %284) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %284) #7
  call void @_ZN3AST6ModuleD2Ev(ptr noundef nonnull align 8 dereferenceable(480) %281) #7
  br label %3646

3646:                                             ; preds = %3645, %2999
  %.pn807.pn.pn = phi { ptr, i32 } [ %.pn807.pn, %3645 ], [ %.pn714, %2999 ]
  call void @llvm.lifetime.end.p0(i64 480, ptr nonnull %281) #7
  br label %3647

3647:                                             ; preds = %3646, %2984
  %.pn807.pn.pn.pn = phi { ptr, i32 } [ %.pn807.pn.pn, %3646 ], [ %2985, %2984 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %280) #7
  br label %3648

3648:                                             ; preds = %3647, %2982
  %.pn807.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn807.pn.pn.pn, %3647 ], [ %2983, %2982 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %280) #7
  br label %3664

3649:                                             ; preds = %564
  %3650 = call ptr @__cxa_allocate_exception(i64 96) #7
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %3650, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %.invoke unwind label %3652

.invoke:                                          ; preds = %3649, %2922, %2621
  %3651 = phi ptr [ %2622, %2621 ], [ %2923, %2922 ], [ %3650, %3649 ]
  invoke void @__cxa_throw(ptr nonnull %3651, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #8
          to label %.cont unwind label %617

.cont:                                            ; preds = %.invoke
  unreachable

3652:                                             ; preds = %3649
  %3653 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %3650) #7
  br label %3664

3654:                                             ; preds = %2505, %2607, %1851, %1912, %1970, %2114, %1254, %1360, %1477, %1538, %739, %788, %807, %1068, %584, %3635, %2903, %2779, %2445, %2391, %2337, %2280, %2222, %1716
  invoke void @_ZN9ProtoSpanC2ERKS_(ptr noundef nonnull align 8 dereferenceable(24) %363, ptr noundef nonnull align 8 dereferenceable(24) %20)
          to label %3655 unwind label %617

3655:                                             ; preds = %3654
  invoke void @_ZNK11TokenStream8end_spanE9ProtoSpan(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %362, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %363)
          to label %3656 unwind label %3658

3656:                                             ; preds = %3655
  call void @_ZN3AST13AttributeListC2EOS0_(ptr noundef nonnull align 8 dereferenceable(24) %364, ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @_ZN3AST10VisibilityC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(36) %365, ptr noundef nonnull align 8 dereferenceable(36) %31) #7
  call void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %366, ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @_ZN3AST4ItemC2EOS0_(ptr noundef nonnull align 8 dereferenceable(488) %367, ptr noundef nonnull align 8 dereferenceable(488) %30) #7
  invoke void @_ZN3AST5NamedINS_4ItemEEC2E4SpanNS_13AttributeListENS_10VisibilityE8RcStringS1_(ptr noundef nonnull align 8 dereferenceable(568) %0, ptr noundef nonnull %362, ptr noundef nonnull %364, ptr noundef nonnull %365, ptr noundef nonnull %366, ptr noundef nonnull %367)
          to label %3657 unwind label %3660

3657:                                             ; preds = %3656
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %367) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %366) #7
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %365) #7
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %364) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %362) #7
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %363) #7
  br label %3663

3658:                                             ; preds = %3655
  %3659 = landingpad { ptr, i32 }
          cleanup
  br label %3662

3660:                                             ; preds = %3656
  %3661 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %367) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %366) #7
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %365) #7
  call void @_ZN3AST13AttributeListD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %364) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %362) #7
  br label %3662

3662:                                             ; preds = %3660, %3658
  %.pn1169 = phi { ptr, i32 } [ %3661, %3660 ], [ %3659, %3658 ]
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %363) #7
  br label %3664

3663:                                             ; preds = %3657, %2629, %2010
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %31) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %30) #7
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %30) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %3667

3664:                                             ; preds = %2960, %2819, %2675, %2594, %2557, %2494, %2434, %2380, %2326, %2268, %2209, %2172, %2101, %2064, %1958, %1899, %1623, %1525, %1162, %1099, %1007, %970, %914, %877, %776, %625, %1573, %1578, %1606, %1608, %1610, %1616, %1731, %1625, %2962, %2821, %2677, %2596, %2559, %2496, %2436, %2382, %2328, %2270, %2211, %2174, %2135, %2137, %2103, %2066, %1960, %1901, %1555, %1557, %1527, %1164, %1107, %1109, %1101, %1062, %1064, %1009, %972, %916, %879, %778, %627, %3662, %3652, %3648, %2953, %2924, %2921, %2812, %2781, %2668, %2640, %2623, %2620, %2587, %2550, %2513, %2487, %2453, %2427, %2399, %2373, %2345, %2319, %2291, %2261, %2233, %2202, %2165, %2127, %2094, %2057, %2020, %1980, %1951, %1923, %1892, %1864, %1741, %1549, %1518, %1490, %1373, %1269, %1155, %1149, %1147, %1119, %1092, %1055, %1049, %1041, %1040, %1035, %1000, %963, %958, %907, %870, %865, %830, %820, %808, %799, %769, %741, %637, %617, %616, %611, %576
  %.pn1173 = phi { ptr, i32 } [ %618, %617 ], [ %3653, %3652 ], [ %.pn8131477, %2962 ], [ %2961, %2960 ], [ %.pn807.pn.pn.pn.pn, %3648 ], [ %.pn1169, %3662 ], [ %.pn712, %2953 ], [ %.pn8301471, %2821 ], [ %2820, %2819 ], [ %.pn825.pn.pn.pn, %2921 ], [ %.pn815, %2812 ], [ %2925, %2924 ], [ %.pn8531459, %2677 ], [ %2676, %2675 ], [ %.pn847.pn.pn.pn.pn, %2781 ], [ %.pn832, %2668 ], [ %.pn855.pn.pn, %2640 ], [ %.pn8791441, %2496 ], [ %2495, %2494 ], [ %.pn876.pn, %2513 ], [ %.pn873, %2487 ], [ %.pn8711447, %2559 ], [ %2558, %2557 ], [ %.pn8691453, %2596 ], [ %2595, %2594 ], [ %.pn865.pn.pn, %2620 ], [ %.pn862, %2587 ], [ %.pn859, %2550 ], [ %2624, %2623 ], [ %.pn8871435, %2436 ], [ %2435, %2434 ], [ %.pn884.pn, %2453 ], [ %.pn881, %2427 ], [ %.pn8951429, %2382 ], [ %2381, %2380 ], [ %.pn892.pn, %2399 ], [ %.pn889, %2373 ], [ %.pn9031423, %2328 ], [ %2327, %2326 ], [ %.pn900.pn, %2345 ], [ %.pn897, %2319 ], [ %.pn9121417, %2270 ], [ %2269, %2268 ], [ %.pn908.pn.pn, %2291 ], [ %.pn905, %2261 ], [ %.pn9261405, %2174 ], [ %2173, %2172 ], [ %.pn9241411, %2211 ], [ %2210, %2209 ], [ %.pn920.pn.pn, %2233 ], [ %.pn917, %2202 ], [ %.pn914, %2165 ], [ %.pn9861401, %2137 ], [ %2136, %2135 ], [ %.pn9421389, %2066 ], [ %2065, %2064 ], [ %.pn9401395, %2103 ], [ %2102, %2101 ], [ %.pn936.pn.pn, %2127 ], [ %.pn933, %2094 ], [ %.pn930, %2057 ], [ %.pn946.pn.pn.pn, %2020 ], [ %.pn9571383, %1960 ], [ %1959, %1958 ], [ %.pn954.pn, %1980 ], [ %.pn951, %1951 ], [ %.pn9661377, %1901 ], [ %1900, %1899 ], [ %.pn962.pn.pn, %1923 ], [ %.pn959, %1892 ], [ %.pn982.pn.pn, %1864 ], [ %.pn928, %1741 ], [ %.pn10851343, %1557 ], [ %1556, %1555 ], [ %.pn10251337, %1527 ], [ %1526, %1525 ], [ %.pn1021.pn.pn, %1549 ], [ %.pn1018, %1518 ], [ %.pn1042.pn.pn, %1490 ], [ %.pn1058.pn.pn, %1373 ], [ %.pn10831287, %1164 ], [ %1163, %1162 ], [ %.pn1079.pn.pn, %1269 ], [ %.pn1062, %1155 ], [ %1150, %1149 ], [ %1148, %1147 ], [ %.pn1016, %1119 ], [ %.pn11611283, %1109 ], [ %1108, %1107 ], [ %.pn11281273, %1064 ], [ %1063, %1062 ], [ %.pn11221277, %1101 ], [ %1100, %1099 ], [ %.pn1119, %1092 ], [ %1042, %1041 ], [ %.pn1095, %1040 ], [ %.pn1093, %1055 ], [ %1050, %1049 ], [ %.pn1091, %1035 ], [ %.pn11081261, %972 ], [ %971, %970 ], [ %.pn11061267, %1009 ], [ %1008, %1007 ], [ %.pn1103, %1000 ], [ %.pn1100, %963 ], [ %.pn1097.pn, %958 ], [ %.pn11261249, %879 ], [ %878, %877 ], [ %.pn11241255, %916 ], [ %915, %914 ], [ %.pn1116, %907 ], [ %.pn1113, %870 ], [ %.pn1110.pn, %865 ], [ %.pn1089, %830 ], [ %.pn1130.pn.pn, %820 ], [ %809, %808 ], [ %.pn11411243, %778 ], [ %777, %776 ], [ %.pn1137.pn.pn, %799 ], [ %.pn1134, %769 ], [ %.pn1157.pn.pn, %741 ], [ %.pn1087, %637 ], [ %.pn11711227, %627 ], [ %626, %625 ], [ %.pn1166, %616 ], [ %.pn1163.pn, %611 ], [ %.pn710, %576 ], [ %.pn10131347, %1625 ], [ %1624, %1623 ], [ %1607, %1606 ], [ %.pn1009.pn.pn, %1731 ], [ %.pn992, %1616 ], [ %1611, %1610 ], [ %1609, %1608 ], [ %.pn990, %1578 ], [ %.pn988, %1573 ]
  call void @_ZN3AST10VisibilityD2Ev(ptr noundef nonnull align 8 dereferenceable(36) %31) #7
  br label %3665

3665:                                             ; preds = %3664, %570
  %.pn1173.pn = phi { ptr, i32 } [ %.pn1173, %3664 ], [ %571, %570 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #7
  call void @_ZN3AST4ItemD2Ev(ptr noundef nonnull align 8 dereferenceable(488) %30) #7
  br label %3666

3666:                                             ; preds = %3665, %568
  %.pn1173.pn.pn = phi { ptr, i32 } [ %.pn1173.pn, %3665 ], [ %569, %568 ]
  call void @llvm.lifetime.end.p0(i64 488, ptr nonnull %30) #7
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #7
  br label %3668

3667:                                             ; preds = %535, %3663
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  br label %3670

3668:                                             ; preds = %3666, %567
  %.pn1173.pn.pn.pn = phi { ptr, i32 } [ %.pn1173.pn.pn, %3666 ], [ %.pn.pn.pn.pn.pn.pn.pn, %567 ]
  call void @_ZN9ProtoSpanD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %20) #7
  br label %3669

3669:                                             ; preds = %3668, %536
  %.pn1173.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn1173.pn.pn.pn, %3668 ], [ %537, %536 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %20) #7
  br label %3671

3670:                                             ; preds = %._crit_edge1512, %3667
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #7
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #7
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #7
  ret void

3671:                                             ; preds = %.loopexit1502, %.loopexit.split-lp1503, %495, %454, %417, %497, %456, %419, %3669, %521, %515, %488, %482, %447, %410
  %.pn1194.pn = phi { ptr, i32 } [ %.pn11941209, %419 ], [ %418, %417 ], [ %.pn11921215, %456 ], [ %455, %454 ], [ %.pn11901221, %497 ], [ %496, %495 ], [ %.pn1187, %488 ], [ %483, %482 ], [ %.pn1184, %447 ], [ %.pn1181, %410 ], [ %522, %521 ], [ %.pn1179, %515 ], [ %.pn1173.pn.pn.pn.pn, %3669 ], [ %lpad.loopexit1504, %.loopexit1502 ], [ %lpad.loopexit.split-lp1505, %.loopexit.split-lp1503 ]
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #7
  br label %3672

3672:                                             ; preds = %3671, %404
  %.pn1194.pn.pn = phi { ptr, i32 } [ %.pn1194.pn, %3671 ], [ %405, %404 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #7
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #7
  br label %3673

3673:                                             ; preds = %3672, %402
  %.pn1194.pn.pn.pn = phi { ptr, i32 } [ %.pn1194.pn.pn, %3672 ], [ %403, %402 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #7
  resume { ptr, i32 } %.pn1194.pn.pn.pn

3674:                                             ; preds = %3625, %3608, %3450, %3197, %2958, %2878, %2817, %2750, %2673, %2592, %2555, %2492, %2432, %2378, %2324, %2266, %2207, %2170, %2133, %2099, %2062, %1999, %1956, %1897, %1836, %1799, %1705, %1663, %1621, %1553, %1523, %1462, %1425, %1344, %1307, %1244, %1202, %1160, %1105, %1097, %1060, %1005, %968, %912, %875, %774, %734, %687, %623, %493, %452, %415
  unreachable
}

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

declare void @_ZN5Token14take_frag_itemEv(ptr dead_on_unwind writable sret(%"struct.AST::Named") align 8, ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #3

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN3AST9AttributeESaIS1_EE9push_backEOS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(169)) local_unnamed_addr #0 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4Item10make_CrateENS0_10Data_CrateE(ptr dead_on_unwind noalias writable sret(%"class.AST::Item") align 8, ptr noundef) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H10opt_externB5cxx11ER5TokenS0_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST5Trait13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST5TraitC2EOS0_(ptr noundef nonnull align 8 dereferenceable(128), ptr noundef nonnull align 8 dereferenceable(128)) unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(472) ptr @_ZN3AST4Item7as_ImplEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Impl3defEv(ptr noundef nonnull align 8 dereferenceable(472)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN3AST7ImplDef13set_is_unsafeEv(ptr noundef nonnull align 8 dereferenceable(448)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(448) ptr @_ZN3AST4Item10as_NegImplEv(ptr noundef nonnull align 8 dereferenceable(488)) local_unnamed_addr #1 align 2

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

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

declare void @_ZN3AST5Trait13set_is_markerEv(ptr noundef nonnull align 8 dereferenceable(128)) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3AST10TraitAliasC2EOS0_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(72)) unnamed_addr #5 align 2

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

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

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

declare void @_Z16Parse_MacroRulesR11TokenStream(ptr dead_on_unwind writable sret(%class.MacroRulesPtr) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

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

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

declare void @_Z25Parse_MacroRulesSingleArmR11TokenStream(ptr dead_on_unwind writable sret(%class.MacroRulesPtr) align 8, ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #3

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Ident7Hygiene12set_mod_pathENS_7ModPathE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #0 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3AST13AttributeNameeqEPKc(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef) local_unnamed_addr #0 align 2

declare void @_ZNK3AST9Attribute19parse_equals_stringB5cxx11ERKNS_5CrateERKNS_6ModuleE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(169), ptr noundef nonnull align 8 dereferenceable(1112), ptr noundef nonnull align 8 dereferenceable(480)) local_unnamed_addr #3

declare void @_Z14check_cfg_attrRKN3AST9AttributeE(ptr dead_on_unwind writable sret(%"class.std::vector.81") align 8, ptr noundef nonnull align 8 dereferenceable(169)) local_unnamed_addr #3

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

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

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

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

declare void @_ZN7helpers4pathC1EPKc(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) unnamed_addr #3

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathdvEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathcvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #6

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z13Parse_ModRootR11TokenStreamRN3AST6ModuleERNS1_13AttributeListE(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0

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

; Function Attrs: mustprogress uwtable
declare hidden noundef zeroext i1 @_ZZ16Parse_Mod_Item_SR11TokenStreamRKN3AST6Module8FileInfoERKNS1_12AbsolutePathENS1_13AttributeListEEN1H14check_item_cfgE_0RKS9_(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #0 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7helpers4pathplEPKc(ptr dead_on_unwind noalias writable sret(%"class.helpers::path") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #0 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 #0

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEEC1ERKNSt7__cxx1112basic_stringIcS1_SaIcEEESt13_Ios_Openmode(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNSt14basic_ifstreamIcSt11char_traitsIcEE7is_openEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #1 align 2

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

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

declare void @_ZN5LexerC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN3AST7EditionE10ParseState(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, ptr noundef byval(%struct.ParseState) align 8) unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt14basic_ifstreamIcSt11char_traitsIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(256)) unnamed_addr #1 align 2

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

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

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

declare void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) unnamed_addr #3

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN3AST6ModuleC2EOS0_(ptr noundef nonnull align 8 dereferenceable(480), ptr noundef nonnull align 8 dereferenceable(480)) unnamed_addr #6 align 2

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = !{!14, !14, i64 0}
!14 = !{!"_ZTS10eTokenType", !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTS13TargetVersion", !7, i64 0}
!17 = distinct !{!17, !12}
!18 = !{!19, !20, i64 9}
!19 = !{!"_ZTS10MacroRules", !20, i64 8, !20, i64 9, !21, i64 16, !22, i64 24, !23, i64 32, !30, i64 40}
!20 = !{!"bool", !7, i64 0}
!21 = !{!"_ZTS8RcString", !6, i64 0}
!22 = !{!"_ZTSN3AST7EditionE", !7, i64 0}
!23 = !{!"_ZTSN5Ident7HygieneE", !24, i64 0}
!24 = !{!"_ZTSSt10unique_ptrIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt15__uniq_ptr_dataIN5Ident7Hygiene5InnerESt14default_deleteIS2_ELb1ELb1EE", !26, i64 0}
!26 = !{!"_ZTSSt15__uniq_ptr_implIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !27, i64 0}
!27 = !{!"_ZTSSt5tupleIJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !28, i64 0}
!28 = !{!"_ZTSSt11_Tuple_implILm0EJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !29, i64 0}
!29 = !{!"_ZTSSt10_Head_baseILm0EPN5Ident7Hygiene5InnerELb0EE", !6, i64 0}
!30 = !{!"_ZTSSt6vectorI13MacroRulesArmSaIS0_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseI13MacroRulesArmSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI13MacroRulesArmSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!35, !6, i64 8}
!35 = !{!"_ZTS10ParseState", !20, i64 0, !20, i64 1, !20, i64 2, !6, i64 8, !6, i64 16, !6, i64 24}
!36 = !{!35, !6, i64 16}
!37 = !{!38, !20, i64 0}
!38 = !{!"_ZTSN3AST6Module8FileInfoE", !20, i64 0, !20, i64 1, !39, i64 8, !39, i64 40}
!39 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !40, i64 0, !41, i64 8, !7, i64 16}
!40 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!41 = !{!"long", !7, i64 0}
!42 = !{i8 0, i8 2}
!43 = !{}
!44 = !{!45, !20, i64 104}
!45 = !{!"_ZTSN3AST6ModuleE", !46, i64 0, !51, i64 32, !55, i64 56, !59, i64 80, !38, i64 104, !20, i64 176, !7, i64 177, !63, i64 184, !63, i64 240, !63, i64 296, !63, i64 352, !68, i64 408, !72, i64 432, !76, i64 456}
!46 = !{!"_ZTSN3AST12AbsolutePathE", !21, i64 0, !47, i64 8}
!47 = !{!"_ZTSSt6vectorI8RcStringSaIS0_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseI8RcStringSaIS0_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseI8RcStringSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!51 = !{!"_ZTSSt6vectorISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !52, i64 0}
!52 = !{!"_ZTSSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE12_Vector_implE", !54, i64 0}
!54 = !{!"_ZTSNSt12_Vector_baseISt10unique_ptrIN3AST5NamedINS1_4ItemEEESt14default_deleteIS4_EESaIS7_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!55 = !{!"_ZTSSt6vectorISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !56, i64 0}
!56 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE", !57, i64 0}
!57 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE12_Vector_implE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN3AST6ModuleEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!59 = !{!"_ZTSSt6vectorIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !60, i64 0}
!60 = !{!"_ZTSSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE", !61, i64 0}
!61 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE12_Vector_implE", !62, i64 0}
!62 = !{!"_ZTSNSt12_Vector_baseIN3AST5NamedI13MacroRulesPtrEESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!63 = !{!"_ZTSSt13unordered_mapI8RcStringN3AST6Module8IndexEntESt4hashIS0_ESt8equal_toIS0_ESaISt4pairIKS0_S3_EEE", !64, i64 0}
!64 = !{!"_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, !41, i64 8, !65, i64 16, !41, i64 24, !66, i64 32, !6, i64 48}
!65 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!66 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !67, i64 0, !41, i64 8}
!67 = !{!"float", !7, i64 0}
!68 = !{!"_ZTSSt6vectorIN3AST12AbsolutePathESaIS1_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseIN3AST12AbsolutePathESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!72 = !{!"_ZTSSt6vectorIN3AST6Module11MacroImportESaIS2_EE", !73, i64 0}
!73 = !{!"_ZTSSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE", !74, i64 0}
!74 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE12_Vector_implE", !75, i64 0}
!75 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module11MacroImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!76 = !{!"_ZTSSt6vectorIN3AST6Module6ImportESaIS2_EE", !77, i64 0}
!77 = !{!"_ZTSSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE", !78, i64 0}
!78 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE12_Vector_implE", !79, i64 0}
!79 = !{!"_ZTSNSt12_Vector_baseIN3AST6Module6ImportESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}


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