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

; 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.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.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.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::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::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.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" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"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.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 }
%"struct.AST::UseItem::Ent" = type { %struct.Span, %"class.AST::Path", %class.RcString }
%"class.std::allocator" = type { i8 }
%struct.Ident = type { %"class.Ident::Hygiene", %class.RcString }
%"struct.AST::Path::Class::Data_Absolute" = type { %class.RcString, %"class.std::vector.48" }

@.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
@__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE = external hidden unnamed_addr constant [15 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88)) #3 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) #0

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() #1

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

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

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

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

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

; 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 void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4Path9new_superEjSt6vectorINS_8PathNodeESaIS2_EE(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8, i32 noundef, ptr noundef) #2 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 #1

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11TokenStream13edition_afterEN3AST7EditionE(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) #3 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 #3 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(240) ptr @_ZN7TypeRef4pathEv(ptr noundef nonnull align 8 dereferenceable(120)) #2 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)) #2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_Z15Parse_Use_InnerR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EERNS2_4PathE(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(240)) #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)) #3 align 2

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

declare void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca %"class.AST::Path", align 8
  %6 = alloca %class.RcString, align 8
  %7 = alloca %"class.std::vector.48", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca %class.Token, align 8
  %11 = alloca %class.Token, align 8
  %12 = alloca %"class.AST::Path", align 8
  %13 = alloca %"class.std::vector.48", align 8
  %14 = alloca %class.Token, align 8
  %15 = alloca %class.Token, align 8
  %16 = alloca i1, align 1
  %17 = alloca i32, align 4
  %18 = alloca %class.Token, align 8
  %19 = alloca %class.Token, align 8
  %20 = alloca i1, align 1
  %21 = alloca %class.Token, align 8
  %22 = alloca %class.Token, align 8
  %23 = alloca i1, align 1
  %24 = alloca %"class.AST::Path", align 8
  %25 = alloca %"class.std::vector.48", align 8
  %26 = alloca %class.Token, align 8
  %27 = alloca %class.Token, align 8
  %28 = alloca i1, align 1
  %29 = alloca %class.Token, align 8
  %30 = alloca %class.Token, align 8
  %31 = alloca i1, align 1
  %32 = alloca %class.RcString, align 8
  %33 = alloca %"struct.AST::UseItem::Ent", align 8
  %34 = alloca i32, align 4
  %35 = alloca %class.Token, align 8
  %36 = alloca %class.Token, align 8
  %37 = alloca i1, align 1
  %38 = alloca %class.Token, align 8
  %39 = alloca %class.Token, align 8
  %40 = alloca i1, align 1
  %41 = alloca %"class.AST::Path", align 8
  %42 = alloca %class.RcString, align 8
  %43 = alloca %"class.std::vector.48", align 8
  %44 = alloca %class.Token, align 8
  %45 = alloca %class.Token, align 8
  %46 = alloca i1, align 1
  %47 = alloca %"class.AST::Path", align 8
  %48 = alloca %class.RcString, align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::allocator", align 1
  %52 = alloca %"class.std::vector.48", align 8
  %53 = alloca %class.RcString, align 8
  %54 = alloca %class.Token, align 8
  %55 = alloca %class.Token, align 8
  %56 = alloca i1, align 1
  %57 = alloca %class.RcString, align 8
  %58 = alloca %class.RcString, align 8
  %59 = alloca %"struct.AST::UseItem::Ent", align 8
  %60 = alloca %class.Token, align 8
  %61 = alloca %class.Token, align 8
  %62 = alloca %class.Token, align 8
  %63 = alloca i1, align 1
  %64 = alloca ptr, align 8
  %65 = alloca %class.Token, align 8
  %66 = alloca %class.Token, align 8
  %67 = alloca i1, align 1
  %68 = alloca %class.Token, align 8
  %69 = alloca %class.Token, align 8
  %70 = alloca i1, align 1
  %71 = alloca %"class.AST::Path", align 8
  %72 = alloca %"class.Ident::Hygiene", align 8
  %73 = alloca %"class.std::vector.48", align 8
  %74 = alloca %class.Token, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 240, ptr %5) #8
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef @.str)
  call void @llvm.memset.p0.i64(ptr align 8 %7, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef %6, ptr noundef %7)
          to label %75 unwind label %83

75:                                               ; preds = %2
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr %10) #8
  invoke void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %76 unwind label %87

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 88, ptr %11) #8
  %77 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %11, ptr noundef nonnull align 8 dereferenceable(176) %77)
          to label %78 unwind label %91

78:                                               ; preds = %76
  %79 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %11)
          to label %80 unwind label %95

80:                                               ; preds = %78
  %81 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %79)
          to label %82 unwind label %95

82:                                               ; preds = %80
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %11) #8
  switch i32 %81, label %1107 [
    i32 111, label %100
    i32 112, label %176
    i32 83, label %388
    i32 34, label %547
    i32 6, label %942
    i32 5, label %1043
  ]

83:                                               ; preds = %2
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %8, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %9, align 4
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #8
  br label %1147

87:                                               ; preds = %75
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %8, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %9, align 4
  br label %1146

91:                                               ; preds = %76
  %92 = landingpad { ptr, i32 }
          cleanup
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %8, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %9, align 4
  br label %99

95:                                               ; preds = %80, %78
  %96 = landingpad { ptr, i32 }
          cleanup
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %8, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #8
  br label %99

99:                                               ; preds = %95, %91
  call void @llvm.lifetime.end.p0(i64 88, ptr %11) #8
  br label %1145

100:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 240, ptr %12) #8
  call void @llvm.memset.p0.i64(ptr align 8 %13, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  invoke void @_ZN3AST4Path8new_selfESt6vectorINS_8PathNodeESaIS2_EE(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %12, ptr noundef %13)
          to label %101 unwind label %132

101:                                              ; preds = %100
  %102 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %12)
          to label %103 unwind label %136

103:                                              ; preds = %101
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %12) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %12) #8
  br label %104

104:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 88, ptr %14) #8
  %105 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %14, ptr noundef nonnull align 8 dereferenceable(176) %105)
          to label %106 unwind label %141

106:                                              ; preds = %104
  %107 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %14)
          to label %108 unwind label %145

108:                                              ; preds = %106
  %109 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %107)
          to label %110 unwind label %145

110:                                              ; preds = %108
  %111 = icmp ne i32 %109, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %14) #8
  br i1 %111, label %112, label %173

112:                                              ; preds = %110
  br label %113

113:                                              ; preds = %112
  %114 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %115 unwind label %150

115:                                              ; preds = %113
  br i1 %114, label %116, label %154

116:                                              ; preds = %115
  %117 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %118 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %117, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %119 unwind label %150

119:                                              ; preds = %116
  %120 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef @.str.1)
          to label %121 unwind label %150

121:                                              ; preds = %119
  %122 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %120, ptr noundef @.str.2)
          to label %123 unwind label %150

123:                                              ; preds = %121
  %124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %122, ptr noundef @.str.3)
          to label %125 unwind label %150

125:                                              ; preds = %123
  %126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %124, i32 noundef 1529)
          to label %127 unwind label %150

127:                                              ; preds = %125
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef @_ZSt3decRSt8ios_base)
          to label %129 unwind label %150

129:                                              ; preds = %127
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %131 unwind label %150

131:                                              ; preds = %129
  br label %154

132:                                              ; preds = %100
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %8, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %9, align 4
  br label %140

136:                                              ; preds = %101
  %137 = landingpad { ptr, i32 }
          cleanup
  %138 = extractvalue { ptr, i32 } %137, 0
  store ptr %138, ptr %8, align 8
  %139 = extractvalue { ptr, i32 } %137, 1
  store i32 %139, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %12) #8
  br label %140

140:                                              ; preds = %136, %132
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %12) #8
  br label %1145

141:                                              ; preds = %104
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %8, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %9, align 4
  br label %149

145:                                              ; preds = %108, %106
  %146 = landingpad { ptr, i32 }
          cleanup
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %8, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #8
  br label %149

149:                                              ; preds = %145, %141
  call void @llvm.lifetime.end.p0(i64 88, ptr %14) #8
  br label %1145

150:                                              ; preds = %1138, %1130, %1107, %1073, %1071, %1069, %1067, %1065, %1063, %1060, %1057, %1045, %1043, %950, %944, %942, %908, %906, %904, %902, %900, %898, %895, %892, %873, %706, %662, %660, %658, %656, %654, %652, %649, %646, %632, %578, %576, %574, %572, %570, %568, %565, %562, %547, %513, %511, %509, %507, %505, %503, %500, %497, %419, %417, %415, %413, %411, %409, %406, %403, %388, %129, %127, %125, %123, %121, %119, %116, %113
  %151 = landingpad { ptr, i32 }
          cleanup
  %152 = extractvalue { ptr, i32 } %151, 0
  store ptr %152, ptr %8, align 8
  %153 = extractvalue { ptr, i32 } %151, 1
  store i32 %153, ptr %9, align 4
  br label %1145

154:                                              ; preds = %131, %115
  br label %155

155:                                              ; preds = %154
  br label %156

156:                                              ; preds = %155
  store i1 true, ptr %16, align 1
  %157 = call ptr @__cxa_allocate_exception(i64 96) #8
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %15, i32 noundef 34)
          to label %159 unwind label %161

159:                                              ; preds = %156
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %157, ptr noundef nonnull align 8 dereferenceable(176) %158, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %15)
          to label %160 unwind label %165

160:                                              ; preds = %159
  store i1 false, ptr %16, align 1
  invoke void @__cxa_throw(ptr %157, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %165

161:                                              ; preds = %156
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %8, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %9, align 4
  br label %169

165:                                              ; preds = %160, %159
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %8, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  br label %169

169:                                              ; preds = %165, %161
  %170 = load i1, ptr %16, align 1
  br i1 %170, label %171, label %172

171:                                              ; preds = %169
  call void @__cxa_free_exception(ptr %157) #8
  br label %172

172:                                              ; preds = %171, %169
  br label %1145

173:                                              ; preds = %110
  br label %174

174:                                              ; preds = %173
  br label %175

175:                                              ; preds = %174
  br label %1138

176:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  store i32 1, ptr %17, align 4, !tbaa !9
  br label %177

177:                                              ; preds = %311, %176
  %178 = load ptr, ptr %3, align 8, !tbaa !5
  %179 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %178, i32 noundef 0)
          to label %180 unwind label %218

180:                                              ; preds = %177
  %181 = icmp eq i32 %179, 34
  br i1 %181, label %182, label %187

182:                                              ; preds = %180
  %183 = load ptr, ptr %3, align 8, !tbaa !5
  %184 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %183, i32 noundef 1)
          to label %185 unwind label %218

185:                                              ; preds = %182
  %186 = icmp eq i32 %184, 112
  br label %187

187:                                              ; preds = %185, %180
  %188 = phi i1 [ false, %180 ], [ %186, %185 ]
  br i1 %188, label %189, label %314

189:                                              ; preds = %187
  br label %190

190:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 88, ptr %18) #8
  %191 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %18, ptr noundef nonnull align 8 dereferenceable(176) %191)
          to label %192 unwind label %222

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %18)
          to label %194 unwind label %226

194:                                              ; preds = %192
  %195 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %193)
          to label %196 unwind label %226

196:                                              ; preds = %194
  %197 = icmp ne i32 %195, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #8
  br i1 %197, label %198, label %250

198:                                              ; preds = %196
  br label %199

199:                                              ; preds = %198
  %200 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %201 unwind label %218

201:                                              ; preds = %199
  br i1 %200, label %202, label %231

202:                                              ; preds = %201
  %203 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %204 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %203, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %205 unwind label %218

205:                                              ; preds = %202
  %206 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %204, ptr noundef @.str.1)
          to label %207 unwind label %218

207:                                              ; preds = %205
  %208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %206, ptr noundef @.str.2)
          to label %209 unwind label %218

209:                                              ; preds = %207
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %208, ptr noundef @.str.3)
          to label %211 unwind label %218

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %210, i32 noundef 1534)
          to label %213 unwind label %218

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef @_ZSt3decRSt8ios_base)
          to label %215 unwind label %218

215:                                              ; preds = %213
  %216 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %214, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %217 unwind label %218

217:                                              ; preds = %215
  br label %231

218:                                              ; preds = %344, %342, %340, %338, %336, %334, %331, %328, %278, %276, %274, %272, %270, %268, %265, %262, %215, %213, %211, %209, %207, %205, %202, %199, %182, %177
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %8, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %9, align 4
  br label %387

222:                                              ; preds = %190
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %8, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %9, align 4
  br label %230

226:                                              ; preds = %194, %192
  %227 = landingpad { ptr, i32 }
          cleanup
  %228 = extractvalue { ptr, i32 } %227, 0
  store ptr %228, ptr %8, align 8
  %229 = extractvalue { ptr, i32 } %227, 1
  store i32 %229, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %230

230:                                              ; preds = %226, %222
  call void @llvm.lifetime.end.p0(i64 88, ptr %18) #8
  br label %387

231:                                              ; preds = %217, %201
  br label %232

232:                                              ; preds = %231
  br label %233

233:                                              ; preds = %232
  store i1 true, ptr %20, align 1
  %234 = call ptr @__cxa_allocate_exception(i64 96) #8
  %235 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %19, i32 noundef 34)
          to label %236 unwind label %238

236:                                              ; preds = %233
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %234, ptr noundef nonnull align 8 dereferenceable(176) %235, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %19)
          to label %237 unwind label %242

237:                                              ; preds = %236
  store i1 false, ptr %20, align 1
  invoke void @__cxa_throw(ptr %234, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %242

238:                                              ; preds = %233
  %239 = landingpad { ptr, i32 }
          cleanup
  %240 = extractvalue { ptr, i32 } %239, 0
  store ptr %240, ptr %8, align 8
  %241 = extractvalue { ptr, i32 } %239, 1
  store i32 %241, ptr %9, align 4
  br label %246

242:                                              ; preds = %237, %236
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %8, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %19) #8
  br label %246

246:                                              ; preds = %242, %238
  %247 = load i1, ptr %20, align 1
  br i1 %247, label %248, label %249

248:                                              ; preds = %246
  call void @__cxa_free_exception(ptr %234) #8
  br label %249

249:                                              ; preds = %248, %246
  br label %387

250:                                              ; preds = %196
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 88, ptr %21) #8
  %254 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %21, ptr noundef nonnull align 8 dereferenceable(176) %254)
          to label %255 unwind label %281

255:                                              ; preds = %253
  %256 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %21)
          to label %257 unwind label %285

257:                                              ; preds = %255
  %258 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %256)
          to label %259 unwind label %285

259:                                              ; preds = %257
  %260 = icmp ne i32 %258, 112
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %21) #8
  br i1 %260, label %261, label %309

261:                                              ; preds = %259
  br label %262

262:                                              ; preds = %261
  %263 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %264 unwind label %218

264:                                              ; preds = %262
  br i1 %263, label %265, label %290

265:                                              ; preds = %264
  %266 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %266, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %268 unwind label %218

268:                                              ; preds = %265
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef @.str.1)
          to label %270 unwind label %218

270:                                              ; preds = %268
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %269, ptr noundef @.str.2)
          to label %272 unwind label %218

272:                                              ; preds = %270
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef @.str.3)
          to label %274 unwind label %218

274:                                              ; preds = %272
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %273, i32 noundef 1535)
          to label %276 unwind label %218

276:                                              ; preds = %274
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef @_ZSt3decRSt8ios_base)
          to label %278 unwind label %218

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %280 unwind label %218

280:                                              ; preds = %278
  br label %290

281:                                              ; preds = %253
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %8, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %9, align 4
  br label %289

285:                                              ; preds = %257, %255
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %8, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  br label %289

289:                                              ; preds = %285, %281
  call void @llvm.lifetime.end.p0(i64 88, ptr %21) #8
  br label %387

290:                                              ; preds = %280, %264
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  store i1 true, ptr %23, align 1
  %293 = call ptr @__cxa_allocate_exception(i64 96) #8
  %294 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %22, i32 noundef 112)
          to label %295 unwind label %297

295:                                              ; preds = %292
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %293, ptr noundef nonnull align 8 dereferenceable(176) %294, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %22)
          to label %296 unwind label %301

296:                                              ; preds = %295
  store i1 false, ptr %23, align 1
  invoke void @__cxa_throw(ptr %293, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %301

297:                                              ; preds = %292
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %8, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %9, align 4
  br label %305

301:                                              ; preds = %296, %295
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %8, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %22) #8
  br label %305

305:                                              ; preds = %301, %297
  %306 = load i1, ptr %23, align 1
  br i1 %306, label %307, label %308

307:                                              ; preds = %305
  call void @__cxa_free_exception(ptr %293) #8
  br label %308

308:                                              ; preds = %307, %305
  br label %387

309:                                              ; preds = %259
  br label %310

310:                                              ; preds = %309
  br label %311

311:                                              ; preds = %310
  %312 = load i32, ptr %17, align 4, !tbaa !9
  %313 = add i32 %312, 1
  store i32 %313, ptr %17, align 4, !tbaa !9
  br label %177, !llvm.loop !11

314:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 240, ptr %24) #8
  %315 = load i32, ptr %17, align 4, !tbaa !9
  call void @llvm.memset.p0.i64(ptr align 8 %25, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  invoke void @_ZN3AST4Path9new_superEjSt6vectorINS_8PathNodeESaIS2_EE(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %24, i32 noundef %315, ptr noundef %25)
          to label %316 unwind label %347

316:                                              ; preds = %314
  %317 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %24)
          to label %318 unwind label %351

318:                                              ; preds = %316
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %24) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %24) #8
  br label %319

319:                                              ; preds = %318
  call void @llvm.lifetime.start.p0(i64 88, ptr %26) #8
  %320 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %26, ptr noundef nonnull align 8 dereferenceable(176) %320)
          to label %321 unwind label %356

321:                                              ; preds = %319
  %322 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %26)
          to label %323 unwind label %360

323:                                              ; preds = %321
  %324 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %322)
          to label %325 unwind label %360

325:                                              ; preds = %323
  %326 = icmp ne i32 %324, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %26) #8
  br i1 %326, label %327, label %384

327:                                              ; preds = %325
  br label %328

328:                                              ; preds = %327
  %329 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %330 unwind label %218

330:                                              ; preds = %328
  br i1 %329, label %331, label %365

331:                                              ; preds = %330
  %332 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %332, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %334 unwind label %218

334:                                              ; preds = %331
  %335 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %333, ptr noundef @.str.1)
          to label %336 unwind label %218

336:                                              ; preds = %334
  %337 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %335, ptr noundef @.str.2)
          to label %338 unwind label %218

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

340:                                              ; preds = %338
  %341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %339, i32 noundef 1539)
          to label %342 unwind label %218

342:                                              ; preds = %340
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef @_ZSt3decRSt8ios_base)
          to label %344 unwind label %218

344:                                              ; preds = %342
  %345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %346 unwind label %218

346:                                              ; preds = %344
  br label %365

347:                                              ; preds = %314
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %8, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %9, align 4
  br label %355

351:                                              ; preds = %316
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %8, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %24) #8
  br label %355

355:                                              ; preds = %351, %347
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %25) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %24) #8
  br label %387

356:                                              ; preds = %319
  %357 = landingpad { ptr, i32 }
          cleanup
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %8, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %9, align 4
  br label %364

360:                                              ; preds = %323, %321
  %361 = landingpad { ptr, i32 }
          cleanup
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %8, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #8
  br label %364

364:                                              ; preds = %360, %356
  call void @llvm.lifetime.end.p0(i64 88, ptr %26) #8
  br label %387

365:                                              ; preds = %346, %330
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366
  store i1 true, ptr %28, align 1
  %368 = call ptr @__cxa_allocate_exception(i64 96) #8
  %369 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %27, i32 noundef 34)
          to label %370 unwind label %372

370:                                              ; preds = %367
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %368, ptr noundef nonnull align 8 dereferenceable(176) %369, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %27)
          to label %371 unwind label %376

371:                                              ; preds = %370
  store i1 false, ptr %28, align 1
  invoke void @__cxa_throw(ptr %368, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %376

372:                                              ; preds = %367
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %8, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %9, align 4
  br label %380

376:                                              ; preds = %371, %370
  %377 = landingpad { ptr, i32 }
          cleanup
  %378 = extractvalue { ptr, i32 } %377, 0
  store ptr %378, ptr %8, align 8
  %379 = extractvalue { ptr, i32 } %377, 1
  store i32 %379, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  br label %380

380:                                              ; preds = %376, %372
  %381 = load i1, ptr %28, align 1
  br i1 %381, label %382, label %383

382:                                              ; preds = %380
  call void @__cxa_free_exception(ptr %368) #8
  br label %383

383:                                              ; preds = %382, %380
  br label %387

384:                                              ; preds = %325
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %1138

387:                                              ; preds = %383, %364, %355, %308, %289, %249, %230, %218
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %1145

388:                                              ; preds = %82
  %389 = load ptr, ptr %3, align 8, !tbaa !5
  %390 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %389, i32 noundef 0)
          to label %391 unwind label %150

391:                                              ; preds = %388
  %392 = icmp eq i32 %390, 93
  br i1 %392, label %393, label %487

393:                                              ; preds = %391
  br label %394

394:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 88, ptr %29) #8
  %395 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %29, ptr noundef nonnull align 8 dereferenceable(176) %395)
          to label %396 unwind label %422

396:                                              ; preds = %394
  %397 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %29)
          to label %398 unwind label %426

398:                                              ; preds = %396
  %399 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %397)
          to label %400 unwind label %426

400:                                              ; preds = %398
  %401 = icmp ne i32 %399, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %29) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %29) #8
  br i1 %401, label %402, label %450

402:                                              ; preds = %400
  br label %403

403:                                              ; preds = %402
  %404 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %405 unwind label %150

405:                                              ; preds = %403
  br i1 %404, label %406, label %431

406:                                              ; preds = %405
  %407 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %407, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %409 unwind label %150

409:                                              ; preds = %406
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef @.str.1)
          to label %411 unwind label %150

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef @.str.2)
          to label %413 unwind label %150

413:                                              ; preds = %411
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef @.str.3)
          to label %415 unwind label %150

415:                                              ; preds = %413
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %414, i32 noundef 1543)
          to label %417 unwind label %150

417:                                              ; preds = %415
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef @_ZSt3decRSt8ios_base)
          to label %419 unwind label %150

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %421 unwind label %150

421:                                              ; preds = %419
  br label %431

422:                                              ; preds = %394
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %8, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %9, align 4
  br label %430

426:                                              ; preds = %398, %396
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %8, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %29) #8
  br label %430

430:                                              ; preds = %426, %422
  call void @llvm.lifetime.end.p0(i64 88, ptr %29) #8
  br label %1145

431:                                              ; preds = %421, %405
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432
  store i1 true, ptr %31, align 1
  %434 = call ptr @__cxa_allocate_exception(i64 96) #8
  %435 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %30, i32 noundef 93)
          to label %436 unwind label %438

436:                                              ; preds = %433
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %434, ptr noundef nonnull align 8 dereferenceable(176) %435, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %30)
          to label %437 unwind label %442

437:                                              ; preds = %436
  store i1 false, ptr %31, align 1
  invoke void @__cxa_throw(ptr %434, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %442

438:                                              ; preds = %433
  %439 = landingpad { ptr, i32 }
          cleanup
  %440 = extractvalue { ptr, i32 } %439, 0
  store ptr %440, ptr %8, align 8
  %441 = extractvalue { ptr, i32 } %439, 1
  store i32 %441, ptr %9, align 4
  br label %446

442:                                              ; preds = %437, %436
  %443 = landingpad { ptr, i32 }
          cleanup
  %444 = extractvalue { ptr, i32 } %443, 0
  store ptr %444, ptr %8, align 8
  %445 = extractvalue { ptr, i32 } %443, 1
  store i32 %445, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %30) #8
  br label %446

446:                                              ; preds = %442, %438
  %447 = load i1, ptr %31, align 1
  br i1 %447, label %448, label %449

448:                                              ; preds = %446
  call void @__cxa_free_exception(ptr %434) #8
  br label %449

449:                                              ; preds = %448, %446
  br label %1145

450:                                              ; preds = %400
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %453 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind writable sret(%class.RcString) align 8 %32, ptr noundef nonnull align 8 dereferenceable(176) %453)
          to label %454 unwind label %464

454:                                              ; preds = %452
  %455 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %33) #8
  %456 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %33, i32 0, i32 0
  %457 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %456, ptr noundef nonnull align 8 dereferenceable(176) %457)
          to label %458 unwind label %468

458:                                              ; preds = %454
  %459 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %33, i32 0, i32 1
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %459, ptr noundef nonnull align 8 dereferenceable(240) %5)
          to label %460 unwind label %472

460:                                              ; preds = %458
  %461 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %33, i32 0, i32 2
  invoke void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %461, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %462 unwind label %476

462:                                              ; preds = %460
  invoke void @_ZNSt6vectorIN3AST7UseItem3EntESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %455, ptr noundef nonnull align 8 dereferenceable(256) %33)
          to label %463 unwind label %481

463:                                              ; preds = %462
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %33) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr %33) #8
  store i32 1, ptr %34, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %1142

464:                                              ; preds = %452
  %465 = landingpad { ptr, i32 }
          cleanup
  %466 = extractvalue { ptr, i32 } %465, 0
  store ptr %466, ptr %8, align 8
  %467 = extractvalue { ptr, i32 } %465, 1
  store i32 %467, ptr %9, align 4
  br label %486

468:                                              ; preds = %454
  %469 = landingpad { ptr, i32 }
          cleanup
  %470 = extractvalue { ptr, i32 } %469, 0
  store ptr %470, ptr %8, align 8
  %471 = extractvalue { ptr, i32 } %469, 1
  store i32 %471, ptr %9, align 4
  br label %485

472:                                              ; preds = %458
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %8, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %9, align 4
  br label %480

476:                                              ; preds = %460
  %477 = landingpad { ptr, i32 }
          cleanup
  %478 = extractvalue { ptr, i32 } %477, 0
  store ptr %478, ptr %8, align 8
  %479 = extractvalue { ptr, i32 } %477, 1
  store i32 %479, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %459) #8
  br label %480

480:                                              ; preds = %476, %472
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %456) #8
  br label %485

481:                                              ; preds = %462
  %482 = landingpad { ptr, i32 }
          cleanup
  %483 = extractvalue { ptr, i32 } %482, 0
  store ptr %483, ptr %8, align 8
  %484 = extractvalue { ptr, i32 } %482, 1
  store i32 %484, ptr %9, align 4
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %33) #8
  br label %485

485:                                              ; preds = %481, %480, %468
  call void @llvm.lifetime.end.p0(i64 256, ptr %33) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #8
  br label %486

486:                                              ; preds = %485, %464
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %1145

487:                                              ; preds = %391
  br label %488

488:                                              ; preds = %487
  call void @llvm.lifetime.start.p0(i64 88, ptr %35) #8
  %489 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %35, ptr noundef nonnull align 8 dereferenceable(176) %489)
          to label %490 unwind label %516

490:                                              ; preds = %488
  %491 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %35)
          to label %492 unwind label %520

492:                                              ; preds = %490
  %493 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %491)
          to label %494 unwind label %520

494:                                              ; preds = %492
  %495 = icmp ne i32 %493, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %35) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %35) #8
  br i1 %495, label %496, label %544

496:                                              ; preds = %494
  br label %497

497:                                              ; preds = %496
  %498 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %499 unwind label %150

499:                                              ; preds = %497
  br i1 %498, label %500, label %525

500:                                              ; preds = %499
  %501 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %502 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %501, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %503 unwind label %150

503:                                              ; preds = %500
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %502, ptr noundef @.str.1)
          to label %505 unwind label %150

505:                                              ; preds = %503
  %506 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef @.str.2)
          to label %507 unwind label %150

507:                                              ; preds = %505
  %508 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %506, ptr noundef @.str.3)
          to label %509 unwind label %150

509:                                              ; preds = %507
  %510 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %508, i32 noundef 1549)
          to label %511 unwind label %150

511:                                              ; preds = %509
  %512 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %510, ptr noundef @_ZSt3decRSt8ios_base)
          to label %513 unwind label %150

513:                                              ; preds = %511
  %514 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %512, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %515 unwind label %150

515:                                              ; preds = %513
  br label %525

516:                                              ; preds = %488
  %517 = landingpad { ptr, i32 }
          cleanup
  %518 = extractvalue { ptr, i32 } %517, 0
  store ptr %518, ptr %8, align 8
  %519 = extractvalue { ptr, i32 } %517, 1
  store i32 %519, ptr %9, align 4
  br label %524

520:                                              ; preds = %492, %490
  %521 = landingpad { ptr, i32 }
          cleanup
  %522 = extractvalue { ptr, i32 } %521, 0
  store ptr %522, ptr %8, align 8
  %523 = extractvalue { ptr, i32 } %521, 1
  store i32 %523, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %35) #8
  br label %524

524:                                              ; preds = %520, %516
  call void @llvm.lifetime.end.p0(i64 88, ptr %35) #8
  br label %1145

525:                                              ; preds = %515, %499
  br label %526

526:                                              ; preds = %525
  br label %527

527:                                              ; preds = %526
  store i1 true, ptr %37, align 1
  %528 = call ptr @__cxa_allocate_exception(i64 96) #8
  %529 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %36, i32 noundef 34)
          to label %530 unwind label %532

530:                                              ; preds = %527
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %528, ptr noundef nonnull align 8 dereferenceable(176) %529, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %36)
          to label %531 unwind label %536

531:                                              ; preds = %530
  store i1 false, ptr %37, align 1
  invoke void @__cxa_throw(ptr %528, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %536

532:                                              ; preds = %527
  %533 = landingpad { ptr, i32 }
          cleanup
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %8, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %9, align 4
  br label %540

536:                                              ; preds = %531, %530
  %537 = landingpad { ptr, i32 }
          cleanup
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %8, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %36) #8
  br label %540

540:                                              ; preds = %536, %532
  %541 = load i1, ptr %37, align 1
  br i1 %541, label %542, label %543

542:                                              ; preds = %540
  call void @__cxa_free_exception(ptr %528) #8
  br label %543

543:                                              ; preds = %542, %540
  br label %1145

544:                                              ; preds = %494
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  br label %1138

547:                                              ; preds = %82
  %548 = load ptr, ptr %3, align 8, !tbaa !5
  %549 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %548, i32 noundef 0)
          to label %550 unwind label %150

550:                                              ; preds = %547
  %551 = icmp eq i32 %549, 19
  br i1 %551, label %552, label %632

552:                                              ; preds = %550
  br label %553

553:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 88, ptr %38) #8
  %554 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %38, 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) %10, ptr noundef nonnull align 8 dereferenceable(88) %38)
          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, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %38) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %38) #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 %150

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 @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %568 unwind label %150

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 %150

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 %150

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 %150

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

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 %150

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 %150

580:                                              ; preds = %578
  br label %590

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

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

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

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

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  store i1 true, ptr %40, align 1
  %593 = call ptr @__cxa_allocate_exception(i64 96) #8
  %594 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %39, i32 noundef 19)
          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) %10, ptr noundef %39)
          to label %596 unwind label %601

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

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

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

605:                                              ; preds = %601, %597
  %606 = load i1, ptr %40, 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 %1145

609:                                              ; preds = %559
  br label %610

610:                                              ; preds = %609
  br label %611

611:                                              ; preds = %610
  call void @llvm.lifetime.start.p0(i64 240, ptr %41) #8
  %612 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %613 unwind label %618

613:                                              ; preds = %611
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.RcString) align 8 %42, ptr noundef nonnull align 8 dereferenceable(32) %612)
          to label %614 unwind label %618

614:                                              ; preds = %613
  call void @llvm.memset.p0.i64(ptr align 8 %43, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %41, ptr noundef %42, ptr noundef %43)
          to label %615 unwind label %622

615:                                              ; preds = %614
  %616 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %41)
          to label %617 unwind label %626

617:                                              ; preds = %615
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %41) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %41) #8
  br label %882

618:                                              ; preds = %613, %611
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %8, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %9, align 4
  br label %631

622:                                              ; preds = %614
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %8, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %9, align 4
  br label %630

626:                                              ; preds = %615
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %8, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %41) #8
  br label %630

630:                                              ; preds = %626, %622
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  br label %631

631:                                              ; preds = %630, %618
  call void @llvm.lifetime.end.p0(i64 240, ptr %41) #8
  br label %1145

632:                                              ; preds = %550
  %633 = load ptr, ptr %3, align 8, !tbaa !5
  %634 = invoke noundef zeroext i1 @_ZNK11TokenStream13edition_afterEN3AST7EditionE(ptr noundef nonnull align 8 dereferenceable(176) %633, i32 noundef 1)
          to label %635 unwind label %150

635:                                              ; preds = %632
  br i1 %634, label %636, label %873

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 88, ptr %44) #8
  %638 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %44, ptr noundef nonnull align 8 dereferenceable(176) %638)
          to label %639 unwind label %665

639:                                              ; preds = %637
  %640 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %44)
          to label %641 unwind label %669

641:                                              ; preds = %639
  %642 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %640)
          to label %643 unwind label %669

643:                                              ; preds = %641
  %644 = icmp ne i32 %642, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %44) #8
  br i1 %644, label %645, label %693

645:                                              ; preds = %643
  br label %646

646:                                              ; preds = %645
  %647 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %648 unwind label %150

648:                                              ; preds = %646
  br i1 %647, label %649, label %674

649:                                              ; preds = %648
  %650 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %650, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %652 unwind label %150

652:                                              ; preds = %649
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %651, ptr noundef @.str.1)
          to label %654 unwind label %150

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %653, ptr noundef @.str.2)
          to label %656 unwind label %150

656:                                              ; preds = %654
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %655, ptr noundef @.str.3)
          to label %658 unwind label %150

658:                                              ; preds = %656
  %659 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %657, i32 noundef 1562)
          to label %660 unwind label %150

660:                                              ; preds = %658
  %661 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %659, ptr noundef @_ZSt3decRSt8ios_base)
          to label %662 unwind label %150

662:                                              ; preds = %660
  %663 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %661, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %664 unwind label %150

664:                                              ; preds = %662
  br label %674

665:                                              ; preds = %637
  %666 = landingpad { ptr, i32 }
          cleanup
  %667 = extractvalue { ptr, i32 } %666, 0
  store ptr %667, ptr %8, align 8
  %668 = extractvalue { ptr, i32 } %666, 1
  store i32 %668, ptr %9, align 4
  br label %673

669:                                              ; preds = %641, %639
  %670 = landingpad { ptr, i32 }
          cleanup
  %671 = extractvalue { ptr, i32 } %670, 0
  store ptr %671, ptr %8, align 8
  %672 = extractvalue { ptr, i32 } %670, 1
  store i32 %672, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %44) #8
  br label %673

673:                                              ; preds = %669, %665
  call void @llvm.lifetime.end.p0(i64 88, ptr %44) #8
  br label %1145

674:                                              ; preds = %664, %648
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675
  store i1 true, ptr %46, align 1
  %677 = call ptr @__cxa_allocate_exception(i64 96) #8
  %678 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %45, i32 noundef 14)
          to label %679 unwind label %681

679:                                              ; preds = %676
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %677, ptr noundef nonnull align 8 dereferenceable(176) %678, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %45)
          to label %680 unwind label %685

680:                                              ; preds = %679
  store i1 false, ptr %46, align 1
  invoke void @__cxa_throw(ptr %677, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %685

681:                                              ; preds = %676
  %682 = landingpad { ptr, i32 }
          cleanup
  %683 = extractvalue { ptr, i32 } %682, 0
  store ptr %683, ptr %8, align 8
  %684 = extractvalue { ptr, i32 } %682, 1
  store i32 %684, ptr %9, align 4
  br label %689

685:                                              ; preds = %680, %679
  %686 = landingpad { ptr, i32 }
          cleanup
  %687 = extractvalue { ptr, i32 } %686, 0
  store ptr %687, ptr %8, align 8
  %688 = extractvalue { ptr, i32 } %686, 1
  store i32 %688, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %45) #8
  br label %689

689:                                              ; preds = %685, %681
  %690 = load i1, ptr %46, align 1
  br i1 %690, label %691, label %692

691:                                              ; preds = %689
  call void @__cxa_free_exception(ptr %677) #8
  br label %692

692:                                              ; preds = %691, %689
  br label %1145

693:                                              ; preds = %643
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  call void @llvm.lifetime.start.p0(i64 240, ptr %47) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %51)
          to label %696 unwind label %746

696:                                              ; preds = %695
  %697 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %698 unwind label %750

698:                                              ; preds = %696
  %699 = getelementptr inbounds %struct.Ident, ptr %697, i32 0, i32 1
  %700 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %699)
          to label %701 unwind label %750

701:                                              ; preds = %698
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef %700)
          to label %702 unwind label %750

702:                                              ; preds = %701
  invoke void @_ZN8RcStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(32) %49)
          to label %703 unwind label %754

703:                                              ; preds = %702
  call void @llvm.memset.p0.i64(ptr align 8 %52, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #8
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %47, ptr noundef %48, ptr noundef %52)
          to label %704 unwind label %758

704:                                              ; preds = %703
  %705 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %47)
          to label %706 unwind label %762

706:                                              ; preds = %704
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %47) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %47) #8
  %707 = load ptr, ptr %3, align 8, !tbaa !5
  %708 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %707, i32 noundef 0)
          to label %709 unwind label %150

709:                                              ; preds = %706
  %710 = icmp ne i32 %708, 34
  br i1 %710, label %711, label %872

711:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #8
  invoke void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %712 unwind label %770

712:                                              ; preds = %711
  %713 = load ptr, ptr %3, align 8, !tbaa !5
  %714 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %713, i32 noundef 0)
          to label %715 unwind label %774

715:                                              ; preds = %712
  %716 = icmp eq i32 %714, 93
  br i1 %716, label %717, label %822

717:                                              ; preds = %715
  br label %718

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 88, ptr %54) #8
  %719 = load ptr, ptr %3, 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) %719)
          to label %720 unwind label %778

720:                                              ; preds = %718
  %721 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %54)
          to label %722 unwind label %782

722:                                              ; preds = %720
  %723 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %721)
          to label %724 unwind label %782

724:                                              ; preds = %722
  %725 = icmp ne i32 %723, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %54) #8
  br i1 %725, label %726, label %806

726:                                              ; preds = %724
  br label %727

727:                                              ; preds = %726
  %728 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %729 unwind label %774

729:                                              ; preds = %727
  br i1 %728, label %730, label %787

730:                                              ; preds = %729
  %731 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %732 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %731, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %733 unwind label %774

733:                                              ; preds = %730
  %734 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %732, ptr noundef @.str.1)
          to label %735 unwind label %774

735:                                              ; preds = %733
  %736 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %734, ptr noundef @.str.2)
          to label %737 unwind label %774

737:                                              ; preds = %735
  %738 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %736, ptr noundef @.str.3)
          to label %739 unwind label %774

739:                                              ; preds = %737
  %740 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %738, i32 noundef 1571)
          to label %741 unwind label %774

741:                                              ; preds = %739
  %742 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %740, ptr noundef @_ZSt3decRSt8ios_base)
          to label %743 unwind label %774

743:                                              ; preds = %741
  %744 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %742, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %745 unwind label %774

745:                                              ; preds = %743
  br label %787

746:                                              ; preds = %695
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %8, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %9, align 4
  br label %769

750:                                              ; preds = %701, %698, %696
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %8, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %9, align 4
  br label %768

754:                                              ; preds = %702
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %8, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %9, align 4
  br label %767

758:                                              ; preds = %703
  %759 = landingpad { ptr, i32 }
          cleanup
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %8, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %9, align 4
  br label %766

762:                                              ; preds = %704
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %8, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %47) #8
  br label %766

766:                                              ; preds = %762, %758
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %52) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %767

767:                                              ; preds = %766, %754
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #8
  br label %768

768:                                              ; preds = %767, %750
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #8
  br label %769

769:                                              ; preds = %768, %746
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %47) #8
  br label %1145

770:                                              ; preds = %711
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %8, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %9, align 4
  br label %871

774:                                              ; preds = %743, %741, %739, %737, %735, %733, %730, %727, %712
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %8, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %9, align 4
  br label %870

778:                                              ; preds = %718
  %779 = landingpad { ptr, i32 }
          cleanup
  %780 = extractvalue { ptr, i32 } %779, 0
  store ptr %780, ptr %8, align 8
  %781 = extractvalue { ptr, i32 } %779, 1
  store i32 %781, ptr %9, align 4
  br label %786

782:                                              ; preds = %722, %720
  %783 = landingpad { ptr, i32 }
          cleanup
  %784 = extractvalue { ptr, i32 } %783, 0
  store ptr %784, ptr %8, align 8
  %785 = extractvalue { ptr, i32 } %783, 1
  store i32 %785, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %54) #8
  br label %786

786:                                              ; preds = %782, %778
  call void @llvm.lifetime.end.p0(i64 88, ptr %54) #8
  br label %870

787:                                              ; preds = %745, %729
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  store i1 true, ptr %56, align 1
  %790 = call ptr @__cxa_allocate_exception(i64 96) #8
  %791 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %55, i32 noundef 93)
          to label %792 unwind label %794

792:                                              ; preds = %789
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %790, ptr noundef nonnull align 8 dereferenceable(176) %791, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %55)
          to label %793 unwind label %798

793:                                              ; preds = %792
  store i1 false, ptr %56, align 1
  invoke void @__cxa_throw(ptr %790, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %798

794:                                              ; preds = %789
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %8, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %9, align 4
  br label %802

798:                                              ; preds = %793, %792
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %8, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %55) #8
  br label %802

802:                                              ; preds = %798, %794
  %803 = load i1, ptr %56, align 1
  br i1 %803, label %804, label %805

804:                                              ; preds = %802
  call void @__cxa_free_exception(ptr %790) #8
  br label %805

805:                                              ; preds = %804, %802
  br label %870

806:                                              ; preds = %724
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %809 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind writable sret(%class.RcString) align 8 %57, ptr noundef nonnull align 8 dereferenceable(176) %809)
          to label %810 unwind label %813

810:                                              ; preds = %808
  %811 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %57)
          to label %812 unwind label %817

812:                                              ; preds = %810
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %842

813:                                              ; preds = %808
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %8, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %9, align 4
  br label %821

817:                                              ; preds = %810
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %8, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %9, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  br label %821

821:                                              ; preds = %817, %813
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %870

822:                                              ; preds = %715
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %823 = getelementptr inbounds %"class.AST::Path", ptr %5, i32 0, i32 1
  %824 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class11as_AbsoluteEv(ptr noundef nonnull align 8 dereferenceable(48) %823)
          to label %825 unwind label %833

825:                                              ; preds = %822
  %826 = getelementptr inbounds %"struct.AST::Path::Class::Data_Absolute", ptr %824, i32 0, i32 0
  %827 = invoke noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %826)
          to label %828 unwind label %833

828:                                              ; preds = %825
  %829 = getelementptr inbounds i8, ptr %827, i64 1
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef %829)
          to label %830 unwind label %833

830:                                              ; preds = %828
  %831 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %58)
          to label %832 unwind label %837

832:                                              ; preds = %830
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %842

833:                                              ; preds = %828, %825, %822
  %834 = landingpad { ptr, i32 }
          cleanup
  %835 = extractvalue { ptr, i32 } %834, 0
  store ptr %835, ptr %8, align 8
  %836 = extractvalue { ptr, i32 } %834, 1
  store i32 %836, ptr %9, align 4
  br label %841

837:                                              ; preds = %830
  %838 = landingpad { ptr, i32 }
          cleanup
  %839 = extractvalue { ptr, i32 } %838, 0
  store ptr %839, ptr %8, align 8
  %840 = extractvalue { ptr, i32 } %838, 1
  store i32 %840, ptr %9, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %841

841:                                              ; preds = %837, %833
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %870

842:                                              ; preds = %832, %812
  %843 = load ptr, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 256, ptr %59) #8
  %844 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %59, i32 0, i32 0
  %845 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %844, ptr noundef nonnull align 8 dereferenceable(176) %845)
          to label %846 unwind label %852

846:                                              ; preds = %842
  %847 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %59, i32 0, i32 1
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %847, ptr noundef nonnull align 8 dereferenceable(240) %5)
          to label %848 unwind label %856

848:                                              ; preds = %846
  %849 = getelementptr inbounds %"struct.AST::UseItem::Ent", ptr %59, i32 0, i32 2
  invoke void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %849, ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %850 unwind label %860

850:                                              ; preds = %848
  invoke void @_ZNSt6vectorIN3AST7UseItem3EntESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %843, ptr noundef nonnull align 8 dereferenceable(256) %59)
          to label %851 unwind label %865

851:                                              ; preds = %850
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %59) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr %59) #8
  store i32 1, ptr %34, align 4
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %1142

852:                                              ; preds = %842
  %853 = landingpad { ptr, i32 }
          cleanup
  %854 = extractvalue { ptr, i32 } %853, 0
  store ptr %854, ptr %8, align 8
  %855 = extractvalue { ptr, i32 } %853, 1
  store i32 %855, ptr %9, align 4
  br label %869

856:                                              ; preds = %846
  %857 = landingpad { ptr, i32 }
          cleanup
  %858 = extractvalue { ptr, i32 } %857, 0
  store ptr %858, ptr %8, align 8
  %859 = extractvalue { ptr, i32 } %857, 1
  store i32 %859, ptr %9, align 4
  br label %864

860:                                              ; preds = %848
  %861 = landingpad { ptr, i32 }
          cleanup
  %862 = extractvalue { ptr, i32 } %861, 0
  store ptr %862, ptr %8, align 8
  %863 = extractvalue { ptr, i32 } %861, 1
  store i32 %863, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %847) #8
  br label %864

864:                                              ; preds = %860, %856
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %844) #8
  br label %869

865:                                              ; preds = %850
  %866 = landingpad { ptr, i32 }
          cleanup
  %867 = extractvalue { ptr, i32 } %866, 0
  store ptr %867, ptr %8, align 8
  %868 = extractvalue { ptr, i32 } %866, 1
  store i32 %868, ptr %9, align 4
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %59) #8
  br label %869

869:                                              ; preds = %865, %864, %852
  call void @llvm.lifetime.end.p0(i64 256, ptr %59) #8
  br label %870

870:                                              ; preds = %869, %841, %821, %805, %786, %774
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br label %871

871:                                              ; preds = %870, %770
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #8
  br label %1145

872:                                              ; preds = %709
  br label %881

873:                                              ; preds = %635
  %874 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %60, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %875 unwind label %150

875:                                              ; preds = %873
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %874, ptr noundef %60)
          to label %876 unwind label %877

876:                                              ; preds = %875
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #8
  br label %881

877:                                              ; preds = %875
  %878 = landingpad { ptr, i32 }
          cleanup
  %879 = extractvalue { ptr, i32 } %878, 0
  store ptr %879, ptr %8, align 8
  %880 = extractvalue { ptr, i32 } %878, 1
  store i32 %880, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %60) #8
  br label %1145

881:                                              ; preds = %876, %872
  br label %882

882:                                              ; preds = %881, %617
  br label %883

883:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 88, ptr %61) #8
  %884 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %61, ptr noundef nonnull align 8 dereferenceable(176) %884)
          to label %885 unwind label %911

885:                                              ; preds = %883
  %886 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %61)
          to label %887 unwind label %915

887:                                              ; preds = %885
  %888 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %886)
          to label %889 unwind label %915

889:                                              ; preds = %887
  %890 = icmp ne i32 %888, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %61) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %61) #8
  br i1 %890, label %891, label %939

891:                                              ; preds = %889
  br label %892

892:                                              ; preds = %891
  %893 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %894 unwind label %150

894:                                              ; preds = %892
  br i1 %893, label %895, label %920

895:                                              ; preds = %894
  %896 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %897 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %896, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %898 unwind label %150

898:                                              ; preds = %895
  %899 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %897, ptr noundef @.str.1)
          to label %900 unwind label %150

900:                                              ; preds = %898
  %901 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %899, ptr noundef @.str.2)
          to label %902 unwind label %150

902:                                              ; preds = %900
  %903 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %901, ptr noundef @.str.3)
          to label %904 unwind label %150

904:                                              ; preds = %902
  %905 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %903, i32 noundef 1588)
          to label %906 unwind label %150

906:                                              ; preds = %904
  %907 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %905, ptr noundef @_ZSt3decRSt8ios_base)
          to label %908 unwind label %150

908:                                              ; preds = %906
  %909 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %907, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %910 unwind label %150

910:                                              ; preds = %908
  br label %920

911:                                              ; preds = %883
  %912 = landingpad { ptr, i32 }
          cleanup
  %913 = extractvalue { ptr, i32 } %912, 0
  store ptr %913, ptr %8, align 8
  %914 = extractvalue { ptr, i32 } %912, 1
  store i32 %914, ptr %9, align 4
  br label %919

915:                                              ; preds = %887, %885
  %916 = landingpad { ptr, i32 }
          cleanup
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %8, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %61) #8
  br label %919

919:                                              ; preds = %915, %911
  call void @llvm.lifetime.end.p0(i64 88, ptr %61) #8
  br label %1145

920:                                              ; preds = %910, %894
  br label %921

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921
  store i1 true, ptr %63, align 1
  %923 = call ptr @__cxa_allocate_exception(i64 96) #8
  %924 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %62, i32 noundef 34)
          to label %925 unwind label %927

925:                                              ; preds = %922
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %923, ptr noundef nonnull align 8 dereferenceable(176) %924, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %62)
          to label %926 unwind label %931

926:                                              ; preds = %925
  store i1 false, ptr %63, align 1
  invoke void @__cxa_throw(ptr %923, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %931

927:                                              ; preds = %922
  %928 = landingpad { ptr, i32 }
          cleanup
  %929 = extractvalue { ptr, i32 } %928, 0
  store ptr %929, ptr %8, align 8
  %930 = extractvalue { ptr, i32 } %928, 1
  store i32 %930, ptr %9, align 4
  br label %935

931:                                              ; preds = %926, %925
  %932 = landingpad { ptr, i32 }
          cleanup
  %933 = extractvalue { ptr, i32 } %932, 0
  store ptr %933, ptr %8, align 8
  %934 = extractvalue { ptr, i32 } %932, 1
  store i32 %934, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %62) #8
  br label %935

935:                                              ; preds = %931, %927
  %936 = load i1, ptr %63, align 1
  br i1 %936, label %937, label %938

937:                                              ; preds = %935
  call void @__cxa_free_exception(ptr %923) #8
  br label %938

938:                                              ; preds = %937, %935
  br label %1145

939:                                              ; preds = %889
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940
  br label %1138

942:                                              ; preds = %82
  %943 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5Token9frag_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %944 unwind label %150

944:                                              ; preds = %942
  %945 = invoke noundef zeroext i1 @_ZNK7TypeRef7is_pathEv(ptr noundef nonnull align 8 dereferenceable(120) %943)
          to label %946 unwind label %150

946:                                              ; preds = %944
  br i1 %945, label %955, label %947

947:                                              ; preds = %946
  %948 = call ptr @__cxa_allocate_exception(i64 96) #8
  %949 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %948, ptr noundef nonnull align 8 dereferenceable(176) %949, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %950 unwind label %951

950:                                              ; preds = %947
  invoke void @__cxa_throw(ptr %948, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %150

951:                                              ; preds = %947
  %952 = landingpad { ptr, i32 }
          cleanup
  %953 = extractvalue { ptr, i32 } %952, 0
  store ptr %953, ptr %8, align 8
  %954 = extractvalue { ptr, i32 } %952, 1
  store i32 %954, ptr %9, align 4
  call void @__cxa_free_exception(ptr %948) #8
  br label %1145

955:                                              ; preds = %946
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #8
  %956 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5Token9frag_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %957 unwind label %968

957:                                              ; preds = %955
  %958 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN7TypeRef4pathEv(ptr noundef nonnull align 8 dereferenceable(120) %956)
          to label %959 unwind label %968

959:                                              ; preds = %957
  store ptr %958, ptr %64, align 8, !tbaa !5
  %960 = load ptr, ptr %64, align 8, !tbaa !5
  %961 = getelementptr inbounds %"class.AST::Path", ptr %960, i32 0, i32 1
  %962 = invoke noundef zeroext i1 @_ZNK3AST4Path5Class7is_UFCSEv(ptr noundef nonnull align 8 dereferenceable(48) %961)
          to label %963 unwind label %968

963:                                              ; preds = %959
  br i1 %962, label %964, label %976

964:                                              ; preds = %963
  %965 = call ptr @__cxa_allocate_exception(i64 96) #8
  %966 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %965, ptr noundef nonnull align 8 dereferenceable(176) %966, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %967 unwind label %972

967:                                              ; preds = %964
  invoke void @__cxa_throw(ptr %965, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %968

968:                                              ; preds = %1008, %1006, %1004, %1002, %1000, %998, %995, %992, %980, %978, %976, %967, %959, %957, %955
  %969 = landingpad { ptr, i32 }
          cleanup
  %970 = extractvalue { ptr, i32 } %969, 0
  store ptr %970, ptr %8, align 8
  %971 = extractvalue { ptr, i32 } %969, 1
  store i32 %971, ptr %9, align 4
  br label %1042

972:                                              ; preds = %964
  %973 = landingpad { ptr, i32 }
          cleanup
  %974 = extractvalue { ptr, i32 } %973, 0
  store ptr %974, ptr %8, align 8
  %975 = extractvalue { ptr, i32 } %973, 1
  store i32 %975, ptr %9, align 4
  call void @__cxa_free_exception(ptr %965) #8
  br label %1042

976:                                              ; preds = %963
  %977 = invoke noundef nonnull align 8 dereferenceable(120) ptr @_ZN5Token9frag_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %978 unwind label %968

978:                                              ; preds = %976
  %979 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN7TypeRef4pathEv(ptr noundef nonnull align 8 dereferenceable(120) %977)
          to label %980 unwind label %968

980:                                              ; preds = %978
  %981 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %979)
          to label %982 unwind label %968

982:                                              ; preds = %980
  br label %983

983:                                              ; preds = %982
  call void @llvm.lifetime.start.p0(i64 88, ptr %65) #8
  %984 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %65, ptr noundef nonnull align 8 dereferenceable(176) %984)
          to label %985 unwind label %1011

985:                                              ; preds = %983
  %986 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %65)
          to label %987 unwind label %1015

987:                                              ; preds = %985
  %988 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %986)
          to label %989 unwind label %1015

989:                                              ; preds = %987
  %990 = icmp ne i32 %988, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %65) #8
  br i1 %990, label %991, label %1039

991:                                              ; preds = %989
  br label %992

992:                                              ; preds = %991
  %993 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %994 unwind label %968

994:                                              ; preds = %992
  br i1 %993, label %995, label %1020

995:                                              ; preds = %994
  %996 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %997 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %996, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %998 unwind label %968

998:                                              ; preds = %995
  %999 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %997, ptr noundef @.str.1)
          to label %1000 unwind label %968

1000:                                             ; preds = %998
  %1001 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %999, ptr noundef @.str.2)
          to label %1002 unwind label %968

1002:                                             ; preds = %1000
  %1003 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1001, ptr noundef @.str.3)
          to label %1004 unwind label %968

1004:                                             ; preds = %1002
  %1005 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1003, i32 noundef 1599)
          to label %1006 unwind label %968

1006:                                             ; preds = %1004
  %1007 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1005, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1008 unwind label %968

1008:                                             ; preds = %1006
  %1009 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1007, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1010 unwind label %968

1010:                                             ; preds = %1008
  br label %1020

1011:                                             ; preds = %983
  %1012 = landingpad { ptr, i32 }
          cleanup
  %1013 = extractvalue { ptr, i32 } %1012, 0
  store ptr %1013, ptr %8, align 8
  %1014 = extractvalue { ptr, i32 } %1012, 1
  store i32 %1014, ptr %9, align 4
  br label %1019

1015:                                             ; preds = %987, %985
  %1016 = landingpad { ptr, i32 }
          cleanup
  %1017 = extractvalue { ptr, i32 } %1016, 0
  store ptr %1017, ptr %8, align 8
  %1018 = extractvalue { ptr, i32 } %1016, 1
  store i32 %1018, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #8
  br label %1019

1019:                                             ; preds = %1015, %1011
  call void @llvm.lifetime.end.p0(i64 88, ptr %65) #8
  br label %1042

1020:                                             ; preds = %1010, %994
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  store i1 true, ptr %67, align 1
  %1023 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1024 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %66, i32 noundef 34)
          to label %1025 unwind label %1027

1025:                                             ; preds = %1022
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1023, ptr noundef nonnull align 8 dereferenceable(176) %1024, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %66)
          to label %1026 unwind label %1031

1026:                                             ; preds = %1025
  store i1 false, ptr %67, align 1
  invoke void @__cxa_throw(ptr %1023, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %1031

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

1031:                                             ; preds = %1026, %1025
  %1032 = landingpad { ptr, i32 }
          cleanup
  %1033 = extractvalue { ptr, i32 } %1032, 0
  store ptr %1033, ptr %8, align 8
  %1034 = extractvalue { ptr, i32 } %1032, 1
  store i32 %1034, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #8
  br label %1035

1035:                                             ; preds = %1031, %1027
  %1036 = load i1, ptr %67, align 1
  br i1 %1036, label %1037, label %1038

1037:                                             ; preds = %1035
  call void @__cxa_free_exception(ptr %1023) #8
  br label %1038

1038:                                             ; preds = %1037, %1035
  br label %1042

1039:                                             ; preds = %989
  br label %1040

1040:                                             ; preds = %1039
  br label %1041

1041:                                             ; preds = %1040
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %1138

1042:                                             ; preds = %1038, %1019, %972, %968
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #8
  br label %1145

1043:                                             ; preds = %82
  %1044 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN5Token9frag_pathEv(ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %1045 unwind label %150

1045:                                             ; preds = %1043
  %1046 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %1044)
          to label %1047 unwind label %150

1047:                                             ; preds = %1045
  br label %1048

1048:                                             ; preds = %1047
  call void @llvm.lifetime.start.p0(i64 88, ptr %68) #8
  %1049 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind writable sret(%class.Token) align 8 %68, ptr noundef nonnull align 8 dereferenceable(176) %1049)
          to label %1050 unwind label %1076

1050:                                             ; preds = %1048
  %1051 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef nonnull align 8 dereferenceable(88) %68)
          to label %1052 unwind label %1080

1052:                                             ; preds = %1050
  %1053 = invoke noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %1051)
          to label %1054 unwind label %1080

1054:                                             ; preds = %1052
  %1055 = icmp ne i32 %1053, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %68) #8
  br i1 %1055, label %1056, label %1104

1056:                                             ; preds = %1054
  br label %1057

1057:                                             ; preds = %1056
  %1058 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %1059 unwind label %150

1059:                                             ; preds = %1057
  br i1 %1058, label %1060, label %1085

1060:                                             ; preds = %1059
  %1061 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %1062 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %1061, ptr noundef @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %1063 unwind label %150

1063:                                             ; preds = %1060
  %1064 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1062, ptr noundef @.str.1)
          to label %1065 unwind label %150

1065:                                             ; preds = %1063
  %1066 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1064, ptr noundef @.str.2)
          to label %1067 unwind label %150

1067:                                             ; preds = %1065
  %1068 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1066, ptr noundef @.str.3)
          to label %1069 unwind label %150

1069:                                             ; preds = %1067
  %1070 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %1068, i32 noundef 1603)
          to label %1071 unwind label %150

1071:                                             ; preds = %1069
  %1072 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1070, ptr noundef @_ZSt3decRSt8ios_base)
          to label %1073 unwind label %150

1073:                                             ; preds = %1071
  %1074 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1072, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1075 unwind label %150

1075:                                             ; preds = %1073
  br label %1085

1076:                                             ; preds = %1048
  %1077 = landingpad { ptr, i32 }
          cleanup
  %1078 = extractvalue { ptr, i32 } %1077, 0
  store ptr %1078, ptr %8, align 8
  %1079 = extractvalue { ptr, i32 } %1077, 1
  store i32 %1079, ptr %9, align 4
  br label %1084

1080:                                             ; preds = %1052, %1050
  %1081 = landingpad { ptr, i32 }
          cleanup
  %1082 = extractvalue { ptr, i32 } %1081, 0
  store ptr %1082, ptr %8, align 8
  %1083 = extractvalue { ptr, i32 } %1081, 1
  store i32 %1083, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %68) #8
  br label %1084

1084:                                             ; preds = %1080, %1076
  call void @llvm.lifetime.end.p0(i64 88, ptr %68) #8
  br label %1145

1085:                                             ; preds = %1075, %1059
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  store i1 true, ptr %70, align 1
  %1088 = call ptr @__cxa_allocate_exception(i64 96) #8
  %1089 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %69, i32 noundef 34)
          to label %1090 unwind label %1092

1090:                                             ; preds = %1087
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %1088, ptr noundef nonnull align 8 dereferenceable(176) %1089, ptr noundef nonnull align 8 dereferenceable(88) %10, ptr noundef %69)
          to label %1091 unwind label %1096

1091:                                             ; preds = %1090
  store i1 false, ptr %70, align 1
  invoke void @__cxa_throw(ptr %1088, ptr @_ZTIN10ParseError10UnexpectedE, ptr @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %1153 unwind label %1096

1092:                                             ; preds = %1087
  %1093 = landingpad { ptr, i32 }
          cleanup
  %1094 = extractvalue { ptr, i32 } %1093, 0
  store ptr %1094, ptr %8, align 8
  %1095 = extractvalue { ptr, i32 } %1093, 1
  store i32 %1095, ptr %9, align 4
  br label %1100

1096:                                             ; preds = %1091, %1090
  %1097 = landingpad { ptr, i32 }
          cleanup
  %1098 = extractvalue { ptr, i32 } %1097, 0
  store ptr %1098, ptr %8, align 8
  %1099 = extractvalue { ptr, i32 } %1097, 1
  store i32 %1099, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %69) #8
  br label %1100

1100:                                             ; preds = %1096, %1092
  %1101 = load i1, ptr %70, align 1
  br i1 %1101, label %1102, label %1103

1102:                                             ; preds = %1100
  call void @__cxa_free_exception(ptr %1088) #8
  br label %1103

1103:                                             ; preds = %1102, %1100
  br label %1145

1104:                                             ; preds = %1054
  br label %1105

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105
  br label %1138

1107:                                             ; preds = %82
  %1108 = load ptr, ptr %3, align 8, !tbaa !5
  %1109 = invoke noundef zeroext i1 @_ZNK11TokenStream13edition_afterEN3AST7EditionE(ptr noundef nonnull align 8 dereferenceable(176) %1108, i32 noundef 1)
          to label %1110 unwind label %150

1110:                                             ; preds = %1107
  br i1 %1109, label %1111, label %1130

1111:                                             ; preds = %1110
  call void @llvm.lifetime.start.p0(i64 240, ptr %71) #8
  invoke void @_ZN5Ident7HygieneC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72)
          to label %1112 unwind label %1116

1112:                                             ; preds = %1111
  call void @llvm.memset.p0.i64(ptr align 8 %73, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  invoke void @_ZN3AST4Path12new_relativeEN5Ident7HygieneESt6vectorINS_8PathNodeESaIS4_EE(ptr dead_on_unwind writable sret(%"class.AST::Path") align 8 %71, ptr noundef %72, ptr noundef %73)
          to label %1113 unwind label %1120

1113:                                             ; preds = %1112
  %1114 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %5, ptr noundef nonnull align 8 dereferenceable(240) %71)
          to label %1115 unwind label %1124

1115:                                             ; preds = %1113
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %71) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %71) #8
  br label %1130

1116:                                             ; preds = %1111
  %1117 = landingpad { ptr, i32 }
          cleanup
  %1118 = extractvalue { ptr, i32 } %1117, 0
  store ptr %1118, ptr %8, align 8
  %1119 = extractvalue { ptr, i32 } %1117, 1
  store i32 %1119, ptr %9, align 4
  br label %1129

1120:                                             ; preds = %1112
  %1121 = landingpad { ptr, i32 }
          cleanup
  %1122 = extractvalue { ptr, i32 } %1121, 0
  store ptr %1122, ptr %8, align 8
  %1123 = extractvalue { ptr, i32 } %1121, 1
  store i32 %1123, ptr %9, align 4
  br label %1128

1124:                                             ; preds = %1113
  %1125 = landingpad { ptr, i32 }
          cleanup
  %1126 = extractvalue { ptr, i32 } %1125, 0
  store ptr %1126, ptr %8, align 8
  %1127 = extractvalue { ptr, i32 } %1125, 1
  store i32 %1127, ptr %9, align 4
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %71) #8
  br label %1128

1128:                                             ; preds = %1124, %1120
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #8
  br label %1129

1129:                                             ; preds = %1128, %1116
  call void @llvm.lifetime.end.p0(i64 240, ptr %71) #8
  br label %1145

1130:                                             ; preds = %1115, %1110
  %1131 = load ptr, ptr %3, align 8, !tbaa !5
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %74, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %1132 unwind label %150

1132:                                             ; preds = %1130
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %1131, ptr noundef %74)
          to label %1133 unwind label %1134

1133:                                             ; preds = %1132
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %74) #8
  br label %1138

1134:                                             ; preds = %1132
  %1135 = landingpad { ptr, i32 }
          cleanup
  %1136 = extractvalue { ptr, i32 } %1135, 0
  store ptr %1136, ptr %8, align 8
  %1137 = extractvalue { ptr, i32 } %1135, 1
  store i32 %1137, ptr %9, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %74) #8
  br label %1145

1138:                                             ; preds = %1133, %1106, %1041, %941, %546, %386, %175
  %1139 = load ptr, ptr %3, align 8, !tbaa !5
  %1140 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_Z15Parse_Use_InnerR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EERNS2_4PathE(ptr noundef nonnull align 8 dereferenceable(176) %1139, ptr noundef nonnull align 8 dereferenceable(24) %1140, ptr noundef nonnull align 8 dereferenceable(240) %5)
          to label %1141 unwind label %150

1141:                                             ; preds = %1138
  store i32 0, ptr %34, align 4
  br label %1142

1142:                                             ; preds = %1141, %851, %463
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr %10) #8
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %5) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr %5) #8
  %1143 = load i32, ptr %34, align 4
  switch i32 %1143, label %1153 [
    i32 0, label %1144
    i32 1, label %1144
  ]

1144:                                             ; preds = %1142, %1142
  ret void

1145:                                             ; preds = %1134, %1129, %1103, %1084, %1042, %951, %938, %919, %877, %871, %769, %692, %673, %631, %608, %589, %543, %524, %486, %449, %430, %387, %172, %150, %149, %140, %99
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #8
  br label %1146

1146:                                             ; preds = %1145, %87
  call void @llvm.lifetime.end.p0(i64 88, ptr %10) #8
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %5) #8
  br label %1147

1147:                                             ; preds = %1146, %83
  call void @llvm.lifetime.end.p0(i64 240, ptr %5) #8
  br label %1148

1148:                                             ; preds = %1147
  %1149 = load ptr, ptr %8, align 8
  %1150 = load i32, ptr %9, align 4
  %1151 = insertvalue { ptr, i32 } poison, ptr %1149, 0
  %1152 = insertvalue { ptr, i32 } %1151, i32 %1150, 1
  resume { ptr, i32 } %1152

1153:                                             ; preds = %1142, %1091, %1026, %967, %950, %926, %793, %680, %596, %531, %437, %371, %296, %237, %160
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_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 ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8)) #3 align 2

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

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

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

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

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

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

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


; 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.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.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.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::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::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.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" }
%"struct.AST::AbsolutePath" = type { %class.RcString, %"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.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 }
%"struct.AST::UseItem::Ent" = type { %struct.Span, %"class.AST::Path", %class.RcString }
%"class.std::allocator" = type { i8 }

@.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
@__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE = external hidden unnamed_addr constant [15 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #3 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) #0

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

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

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

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #1

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

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

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

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

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

; 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 void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #3 align 2

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3AST4Path9new_superEjSt6vectorINS_8PathNodeESaIS2_EE(ptr dead_on_unwind noalias writable sret(%"class.AST::Path") align 8, i32 noundef, ptr noundef) local_unnamed_addr #2 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 #1

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK11TokenStream13edition_afterEN3AST7EditionE(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef) local_unnamed_addr #3 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 #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK7TypeRef7is_pathEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(240) ptr @_ZN7TypeRef4pathEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #2 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 #2

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

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

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

declare void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240), ptr noundef nonnull align 8 dereferenceable(240)) unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
define dso_local void @_Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.AST::Path", align 8
  %4 = alloca %class.RcString, align 8
  %5 = alloca %"class.std::vector.48", align 8
  %6 = alloca %class.Token, align 8
  %7 = alloca %class.Token, align 8
  %8 = alloca %"class.AST::Path", align 8
  %9 = alloca %"class.std::vector.48", 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.Token, align 8
  %15 = alloca %class.Token, align 8
  %16 = alloca %"class.AST::Path", align 8
  %17 = alloca %"class.std::vector.48", align 8
  %18 = alloca %class.Token, align 8
  %19 = alloca %class.Token, align 8
  %20 = alloca %class.Token, align 8
  %21 = alloca %class.Token, align 8
  %22 = alloca %class.RcString, align 8
  %23 = alloca %"struct.AST::UseItem::Ent", align 8
  %24 = alloca %class.Token, align 8
  %25 = alloca %class.Token, align 8
  %26 = alloca %class.Token, align 8
  %27 = alloca %class.Token, align 8
  %28 = alloca %"class.AST::Path", align 8
  %29 = alloca %class.RcString, align 8
  %30 = alloca %"class.std::vector.48", align 8
  %31 = alloca %class.Token, align 8
  %32 = alloca %class.Token, align 8
  %33 = alloca %"class.AST::Path", align 8
  %34 = alloca %class.RcString, align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::allocator", align 1
  %38 = alloca %"class.std::vector.48", align 8
  %39 = alloca %class.RcString, align 8
  %40 = alloca %class.Token, align 8
  %41 = alloca %class.Token, align 8
  %42 = alloca %class.RcString, align 8
  %43 = alloca %class.RcString, align 8
  %44 = alloca %"struct.AST::UseItem::Ent", align 8
  %45 = alloca %class.Token, align 8
  %46 = alloca %class.Token, align 8
  %47 = alloca %class.Token, align 8
  %48 = alloca %class.Token, align 8
  %49 = alloca %class.Token, align 8
  %50 = alloca %class.Token, align 8
  %51 = alloca %class.Token, align 8
  %52 = alloca %"class.AST::Path", align 8
  %53 = alloca %"class.Ident::Hygiene", align 8
  %54 = alloca %"class.std::vector.48", align 8
  %55 = alloca %class.Token, align 8
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %3) #8
  call void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str)
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull %4, ptr noundef nonnull %5)
          to label %56 unwind label %62

56:                                               ; preds = %2
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %6) #8
  invoke void @_ZN5TokenC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %57 unwind label %64

57:                                               ; preds = %56
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %7) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %7, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %58 unwind label %66

58:                                               ; preds = %57
  %59 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %7)
          to label %60 unwind label %68

60:                                               ; preds = %58
  %61 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %59)
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %7) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %7) #8
  switch i32 %61, label %679 [
    i32 111, label %71
    i32 112, label %.preheader
    i32 83, label %245
    i32 34, label %340
    i32 6, label %575
    i32 5, label %639
  ]

62:                                               ; preds = %2
  %63 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %4) #8
  br label %703

64:                                               ; preds = %56
  %65 = landingpad { ptr, i32 }
          cleanup
  br label %702

66:                                               ; preds = %57
  %67 = landingpad { ptr, i32 }
          cleanup
  br label %70

68:                                               ; preds = %58
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %7) #8
  br label %70

70:                                               ; preds = %68, %66
  %.pn = phi { ptr, i32 } [ %69, %68 ], [ %67, %66 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %7) #8
  br label %701

71:                                               ; preds = %60
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %8) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  invoke void @_ZN3AST4Path8new_selfESt6vectorINS_8PathNodeESaIS2_EE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Path") align 8 %8, ptr noundef nonnull %9)
          to label %72 unwind label %97

72:                                               ; preds = %71
  %73 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %8)
          to label %74 unwind label %99

74:                                               ; preds = %72
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %8) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %10) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %10, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %75 unwind label %102

75:                                               ; preds = %74
  %76 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %77 unwind label %104

77:                                               ; preds = %75
  %78 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %76)
  %.not209 = icmp eq i32 %78, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #8
  br i1 %.not209, label %699, label %79

79:                                               ; preds = %77
  %80 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %81 unwind label %107

81:                                               ; preds = %79
  br i1 %80, label %82, label %109

82:                                               ; preds = %81
  %83 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %84 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %83, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %85 unwind label %107

85:                                               ; preds = %82
  %86 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull @.str.1)
          to label %87 unwind label %107

87:                                               ; preds = %85
  %88 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %86, ptr noundef nonnull @.str.2)
          to label %89 unwind label %107

89:                                               ; preds = %87
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull @.str.3)
          to label %91 unwind label %107

91:                                               ; preds = %89
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %90, i32 noundef 1529)
          to label %93 unwind label %107

93:                                               ; preds = %91
  %94 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %95 unwind label %107

95:                                               ; preds = %93
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %109 unwind label %107

97:                                               ; preds = %71
  %98 = landingpad { ptr, i32 }
          cleanup
  br label %101

99:                                               ; preds = %72
  %100 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %8) #8
  br label %101

101:                                              ; preds = %99, %97
  %.pn205 = phi { ptr, i32 } [ %100, %99 ], [ %98, %97 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %9) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %8) #8
  br label %701

102:                                              ; preds = %74
  %103 = landingpad { ptr, i32 }
          cleanup
  br label %106

104:                                              ; preds = %75
  %105 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #8
  br label %106

106:                                              ; preds = %104, %102
  %.pn207 = phi { ptr, i32 } [ %105, %104 ], [ %103, %102 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #8
  br label %701

107:                                              ; preds = %699, %694, %663, %661, %659, %657, %655, %653, %650, %647, %639, %581, %575, %559, %557, %555, %553, %551, %549, %546, %543, %533, %445, %419, %417, %415, %413, %411, %409, %406, %403, %365, %363, %361, %359, %357, %355, %352, %349, %340, %324, %322, %320, %318, %316, %314, %311, %308, %270, %268, %266, %264, %262, %260, %257, %254, %245, %95, %93, %91, %89, %87, %85, %82, %79
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %701

109:                                              ; preds = %95, %81
  %110 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %11, i32 noundef 34)
          to label %111 unwind label %.thread

111:                                              ; preds = %109
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %110, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %11)
          to label %113 unwind label %.thread222

.thread222:                                       ; preds = %111
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #8
  br label %117

113:                                              ; preds = %111
  invoke void @__cxa_throw(ptr nonnull %110, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %115

.thread:                                          ; preds = %109
  %114 = landingpad { ptr, i32 }
          cleanup
  br label %117

115:                                              ; preds = %113
  %116 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #8
  br label %701

117:                                              ; preds = %.thread222, %.thread
  %.pn210221 = phi { ptr, i32 } [ %114, %.thread ], [ %112, %.thread222 ]
  call void @__cxa_free_exception(ptr %110) #8
  br label %701

.preheader:                                       ; preds = %60, %199
  %.083 = phi i32 [ %200, %199 ], [ 1, %60 ]
  %118 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 0)
          to label %119 unwind label %.loopexit

119:                                              ; preds = %.preheader
  %120 = icmp eq i32 %118, 34
  br i1 %120, label %121, label %.critedge

121:                                              ; preds = %119
  %122 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 1)
          to label %123 unwind label %.loopexit

123:                                              ; preds = %121
  %124 = icmp eq i32 %122, 112
  br i1 %124, label %125, label %.critedge

125:                                              ; preds = %123
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %12) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %12, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %126 unwind label %148

126:                                              ; preds = %125
  %127 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %12)
          to label %128 unwind label %150

128:                                              ; preds = %126
  %129 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %127)
  %.not196 = icmp eq i32 %129, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #8
  br i1 %.not196, label %162, label %130

130:                                              ; preds = %128
  %131 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %132 unwind label %.loopexit.split-lp

132:                                              ; preds = %130
  br i1 %131, label %133, label %153

133:                                              ; preds = %132
  %134 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %134, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %136 unwind label %.loopexit.split-lp

136:                                              ; preds = %133
  %137 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull @.str.1)
          to label %138 unwind label %.loopexit.split-lp

138:                                              ; preds = %136
  %139 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %137, ptr noundef nonnull @.str.2)
          to label %140 unwind label %.loopexit.split-lp

140:                                              ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef nonnull @.str.3)
          to label %142 unwind label %.loopexit.split-lp

142:                                              ; preds = %140
  %143 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %141, i32 noundef 1534)
          to label %144 unwind label %.loopexit.split-lp

144:                                              ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %146 unwind label %.loopexit.split-lp

146:                                              ; preds = %144
  %147 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %145, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %153 unwind label %.loopexit.split-lp

.loopexit:                                        ; preds = %.preheader, %121
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %701

.loopexit.split-lp:                               ; preds = %130, %133, %136, %138, %140, %142, %144, %146, %167, %170, %173, %175, %177, %179, %181, %183, %208, %211, %214, %216, %218, %220, %222, %224
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %701

148:                                              ; preds = %125
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %126
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %12) #8
  br label %152

152:                                              ; preds = %150, %148
  %.pn194 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %12) #8
  br label %701

153:                                              ; preds = %146, %132
  %154 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %13, i32 noundef 34)
          to label %155 unwind label %.thread224

155:                                              ; preds = %153
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %154, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %13)
          to label %157 unwind label %.thread228

.thread228:                                       ; preds = %155
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #8
  br label %161

157:                                              ; preds = %155
  invoke void @__cxa_throw(ptr nonnull %154, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %159

.thread224:                                       ; preds = %153
  %158 = landingpad { ptr, i32 }
          cleanup
  br label %161

159:                                              ; preds = %157
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #8
  br label %701

161:                                              ; preds = %.thread228, %.thread224
  %.pn202227 = phi { ptr, i32 } [ %158, %.thread224 ], [ %156, %.thread228 ]
  call void @__cxa_free_exception(ptr %154) #8
  br label %701

162:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %14) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %14, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %163 unwind label %185

163:                                              ; preds = %162
  %164 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %14)
          to label %165 unwind label %187

165:                                              ; preds = %163
  %166 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %164)
  %.not199 = icmp eq i32 %166, 112
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %14) #8
  br i1 %.not199, label %199, label %167

167:                                              ; preds = %165
  %168 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %169 unwind label %.loopexit.split-lp

169:                                              ; preds = %167
  br i1 %168, label %170, label %190

170:                                              ; preds = %169
  %171 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %171, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %173 unwind label %.loopexit.split-lp

173:                                              ; preds = %170
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull @.str.1)
          to label %175 unwind label %.loopexit.split-lp

175:                                              ; preds = %173
  %176 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull @.str.2)
          to label %177 unwind label %.loopexit.split-lp

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %176, ptr noundef nonnull @.str.3)
          to label %179 unwind label %.loopexit.split-lp

179:                                              ; preds = %177
  %180 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %178, i32 noundef 1535)
          to label %181 unwind label %.loopexit.split-lp

181:                                              ; preds = %179
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %180, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %183 unwind label %.loopexit.split-lp

183:                                              ; preds = %181
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %190 unwind label %.loopexit.split-lp

185:                                              ; preds = %162
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %189

187:                                              ; preds = %163
  %188 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %14) #8
  br label %189

189:                                              ; preds = %187, %185
  %.pn197 = phi { ptr, i32 } [ %188, %187 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %14) #8
  br label %701

190:                                              ; preds = %183, %169
  %191 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %15, i32 noundef 112)
          to label %192 unwind label %.thread230

192:                                              ; preds = %190
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %191, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %15)
          to label %194 unwind label %.thread234

.thread234:                                       ; preds = %192
  %193 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  br label %198

194:                                              ; preds = %192
  invoke void @__cxa_throw(ptr nonnull %191, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %196

.thread230:                                       ; preds = %190
  %195 = landingpad { ptr, i32 }
          cleanup
  br label %198

196:                                              ; preds = %194
  %197 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %15) #8
  br label %701

198:                                              ; preds = %.thread234, %.thread230
  %.pn200233 = phi { ptr, i32 } [ %195, %.thread230 ], [ %193, %.thread234 ]
  call void @__cxa_free_exception(ptr %191) #8
  br label %701

199:                                              ; preds = %165
  %200 = add i32 %.083, 1
  br label %.preheader, !llvm.loop !9

.critedge:                                        ; preds = %119, %123
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %16) #8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  invoke void @_ZN3AST4Path9new_superEjSt6vectorINS_8PathNodeESaIS2_EE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Path") align 8 %16, i32 noundef %.083, ptr noundef nonnull %17)
          to label %201 unwind label %226

201:                                              ; preds = %.critedge
  %202 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %16)
          to label %203 unwind label %228

203:                                              ; preds = %201
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %16) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %16) #8
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %18) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %18, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %204 unwind label %231

204:                                              ; preds = %203
  %205 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %18)
          to label %206 unwind label %233

206:                                              ; preds = %204
  %207 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %205)
  %.not191 = icmp eq i32 %207, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %18) #8
  br i1 %.not191, label %699, label %208

208:                                              ; preds = %206
  %209 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %210 unwind label %.loopexit.split-lp

210:                                              ; preds = %208
  br i1 %209, label %211, label %236

211:                                              ; preds = %210
  %212 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %213 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %212, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %214 unwind label %.loopexit.split-lp

214:                                              ; preds = %211
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %213, ptr noundef nonnull @.str.1)
          to label %216 unwind label %.loopexit.split-lp

216:                                              ; preds = %214
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull @.str.2)
          to label %218 unwind label %.loopexit.split-lp

218:                                              ; preds = %216
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %217, ptr noundef nonnull @.str.3)
          to label %220 unwind label %.loopexit.split-lp

220:                                              ; preds = %218
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %219, i32 noundef 1539)
          to label %222 unwind label %.loopexit.split-lp

222:                                              ; preds = %220
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %221, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %224 unwind label %.loopexit.split-lp

224:                                              ; preds = %222
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %236 unwind label %.loopexit.split-lp

226:                                              ; preds = %.critedge
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %230

228:                                              ; preds = %201
  %229 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %16) #8
  br label %230

230:                                              ; preds = %228, %226
  %.pn187 = phi { ptr, i32 } [ %229, %228 ], [ %227, %226 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %16) #8
  br label %701

231:                                              ; preds = %203
  %232 = landingpad { ptr, i32 }
          cleanup
  br label %235

233:                                              ; preds = %204
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %18) #8
  br label %235

235:                                              ; preds = %233, %231
  %.pn189 = phi { ptr, i32 } [ %234, %233 ], [ %232, %231 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %18) #8
  br label %701

236:                                              ; preds = %224, %210
  %237 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %19, i32 noundef 34)
          to label %238 unwind label %.thread236

238:                                              ; preds = %236
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %237, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %19)
          to label %240 unwind label %.thread240

.thread240:                                       ; preds = %238
  %239 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %19) #8
  br label %244

240:                                              ; preds = %238
  invoke void @__cxa_throw(ptr nonnull %237, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %242

.thread236:                                       ; preds = %236
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %244

242:                                              ; preds = %240
  %243 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %19) #8
  br label %701

244:                                              ; preds = %.thread240, %.thread236
  %.pn192239 = phi { ptr, i32 } [ %241, %.thread236 ], [ %239, %.thread240 ]
  call void @__cxa_free_exception(ptr %237) #8
  br label %701

245:                                              ; preds = %60
  %246 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 0)
          to label %247 unwind label %107

247:                                              ; preds = %245
  %248 = icmp eq i32 %246, 93
  br i1 %248, label %249, label %303

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %20) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %20, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %250 unwind label %272

250:                                              ; preds = %249
  %251 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %20)
          to label %252 unwind label %274

252:                                              ; preds = %250
  %253 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %251)
  %.not181 = icmp eq i32 %253, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #8
  br i1 %.not181, label %286, label %254

254:                                              ; preds = %252
  %255 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %256 unwind label %107

256:                                              ; preds = %254
  br i1 %255, label %257, label %277

257:                                              ; preds = %256
  %258 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %259 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %258, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %260 unwind label %107

260:                                              ; preds = %257
  %261 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %259, ptr noundef nonnull @.str.1)
          to label %262 unwind label %107

262:                                              ; preds = %260
  %263 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %261, ptr noundef nonnull @.str.2)
          to label %264 unwind label %107

264:                                              ; preds = %262
  %265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %263, ptr noundef nonnull @.str.3)
          to label %266 unwind label %107

266:                                              ; preds = %264
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %265, i32 noundef 1543)
          to label %268 unwind label %107

268:                                              ; preds = %266
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %270 unwind label %107

270:                                              ; preds = %268
  %271 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %269, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %277 unwind label %107

272:                                              ; preds = %249
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %276

274:                                              ; preds = %250
  %275 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %20) #8
  br label %276

276:                                              ; preds = %274, %272
  %.pn179 = phi { ptr, i32 } [ %275, %274 ], [ %273, %272 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %20) #8
  br label %701

277:                                              ; preds = %270, %256
  %278 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %21, i32 noundef 93)
          to label %279 unwind label %.thread242

279:                                              ; preds = %277
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %278, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %21)
          to label %281 unwind label %.thread246

.thread246:                                       ; preds = %279
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  br label %285

281:                                              ; preds = %279
  invoke void @__cxa_throw(ptr nonnull %278, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %283

.thread242:                                       ; preds = %277
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %285

283:                                              ; preds = %281
  %284 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %21) #8
  br label %701

285:                                              ; preds = %.thread246, %.thread242
  %.pn185245 = phi { ptr, i32 } [ %282, %.thread242 ], [ %280, %.thread246 ]
  call void @__cxa_free_exception(ptr %278) #8
  br label %701

286:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %22, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %287 unwind label %293

287:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %23) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %23, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %288 unwind label %295

288:                                              ; preds = %287
  %289 = getelementptr inbounds i8, ptr %23, i64 8
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %289, ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %290 unwind label %297

290:                                              ; preds = %288
  %291 = getelementptr inbounds i8, ptr %23, i64 248
  call void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %291, ptr noundef nonnull align 8 dereferenceable(8) %22)
  invoke void @_ZNSt6vectorIN3AST7UseItem3EntESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(256) %23)
          to label %292 unwind label %299

292:                                              ; preds = %290
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %23) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %23) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %700

293:                                              ; preds = %286
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %302

295:                                              ; preds = %287
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %301

297:                                              ; preds = %288
  %298 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br label %301

299:                                              ; preds = %290
  %300 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %23) #8
  br label %301

301:                                              ; preds = %299, %297, %295
  %.pn182 = phi { ptr, i32 } [ %300, %299 ], [ %298, %297 ], [ %296, %295 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %23) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  br label %302

302:                                              ; preds = %301, %293
  %.pn182.pn = phi { ptr, i32 } [ %.pn182, %301 ], [ %294, %293 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %701

303:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %24) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %24, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %304 unwind label %326

304:                                              ; preds = %303
  %305 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %24)
          to label %306 unwind label %328

306:                                              ; preds = %304
  %307 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %305)
  %.not176 = icmp eq i32 %307, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %24) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %24) #8
  br i1 %.not176, label %699, label %308

308:                                              ; preds = %306
  %309 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %310 unwind label %107

310:                                              ; preds = %308
  br i1 %309, label %311, label %331

311:                                              ; preds = %310
  %312 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %312, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %314 unwind label %107

314:                                              ; preds = %311
  %315 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull @.str.1)
          to label %316 unwind label %107

316:                                              ; preds = %314
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef nonnull @.str.2)
          to label %318 unwind label %107

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef nonnull @.str.3)
          to label %320 unwind label %107

320:                                              ; preds = %318
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %319, i32 noundef 1549)
          to label %322 unwind label %107

322:                                              ; preds = %320
  %323 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %324 unwind label %107

324:                                              ; preds = %322
  %325 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %323, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %331 unwind label %107

326:                                              ; preds = %303
  %327 = landingpad { ptr, i32 }
          cleanup
  br label %330

328:                                              ; preds = %304
  %329 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %24) #8
  br label %330

330:                                              ; preds = %328, %326
  %.pn174 = phi { ptr, i32 } [ %329, %328 ], [ %327, %326 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %24) #8
  br label %701

331:                                              ; preds = %324, %310
  %332 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %25, i32 noundef 34)
          to label %333 unwind label %.thread248

333:                                              ; preds = %331
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %332, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %25)
          to label %335 unwind label %.thread252

.thread252:                                       ; preds = %333
  %334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #8
  br label %339

335:                                              ; preds = %333
  invoke void @__cxa_throw(ptr nonnull %332, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %337

.thread248:                                       ; preds = %331
  %336 = landingpad { ptr, i32 }
          cleanup
  br label %339

337:                                              ; preds = %335
  %338 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #8
  br label %701

339:                                              ; preds = %.thread252, %.thread248
  %.pn177251 = phi { ptr, i32 } [ %336, %.thread248 ], [ %334, %.thread252 ]
  call void @__cxa_free_exception(ptr %332) #8
  br label %701

340:                                              ; preds = %60
  %341 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 0)
          to label %342 unwind label %107

342:                                              ; preds = %340
  %343 = icmp eq i32 %341, 19
  br i1 %343, label %344, label %396

344:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %26) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %26, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %345 unwind label %367

345:                                              ; preds = %344
  %346 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %26)
          to label %347 unwind label %369

347:                                              ; preds = %345
  %348 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %346)
  %.not163 = icmp eq i32 %348, 19
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %26) #8
  br i1 %.not163, label %381, label %349

349:                                              ; preds = %347
  %350 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %351 unwind label %107

351:                                              ; preds = %349
  br i1 %350, label %352, label %372

352:                                              ; preds = %351
  %353 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %353, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %355 unwind label %107

355:                                              ; preds = %352
  %356 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %354, ptr noundef nonnull @.str.1)
          to label %357 unwind label %107

357:                                              ; preds = %355
  %358 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %356, ptr noundef nonnull @.str.2)
          to label %359 unwind label %107

359:                                              ; preds = %357
  %360 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %358, ptr noundef nonnull @.str.3)
          to label %361 unwind label %107

361:                                              ; preds = %359
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %360, i32 noundef 1557)
          to label %363 unwind label %107

363:                                              ; preds = %361
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %365 unwind label %107

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %372 unwind label %107

367:                                              ; preds = %344
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %371

369:                                              ; preds = %345
  %370 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %26) #8
  br label %371

371:                                              ; preds = %369, %367
  %.pn161 = phi { ptr, i32 } [ %370, %369 ], [ %368, %367 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %26) #8
  br label %701

372:                                              ; preds = %365, %351
  %373 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %27, i32 noundef 19)
          to label %374 unwind label %.thread254

374:                                              ; preds = %372
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %373, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %27)
          to label %376 unwind label %.thread258

.thread258:                                       ; preds = %374
  %375 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  br label %380

376:                                              ; preds = %374
  invoke void @__cxa_throw(ptr nonnull %373, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %378

.thread254:                                       ; preds = %372
  %377 = landingpad { ptr, i32 }
          cleanup
  br label %380

378:                                              ; preds = %376
  %379 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %27) #8
  br label %701

380:                                              ; preds = %.thread258, %.thread254
  %.pn172257 = phi { ptr, i32 } [ %377, %.thread254 ], [ %375, %.thread258 ]
  call void @__cxa_free_exception(ptr %373) #8
  br label %701

381:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %28) #8
  %382 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN5Token3strB5cxx11Ev(ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %383 unwind label %388

383:                                              ; preds = %381
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %382)
          to label %384 unwind label %388

384:                                              ; preds = %383
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #8
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %28, ptr noundef nonnull %29, ptr noundef nonnull %30)
          to label %385 unwind label %390

385:                                              ; preds = %384
  %386 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %28)
          to label %387 unwind label %392

387:                                              ; preds = %385
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %28) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %28) #8
  br label %538

388:                                              ; preds = %383, %381
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %395

390:                                              ; preds = %384
  %391 = landingpad { ptr, i32 }
          cleanup
  br label %394

392:                                              ; preds = %385
  %393 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %28) #8
  br label %394

394:                                              ; preds = %392, %390
  %.pn164 = phi { ptr, i32 } [ %393, %392 ], [ %391, %390 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %30) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br label %395

395:                                              ; preds = %394, %388
  %.pn164.pn = phi { ptr, i32 } [ %.pn164, %394 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %28) #8
  br label %701

396:                                              ; preds = %342
  %397 = call noundef zeroext i1 @_ZNK11TokenStream13edition_afterEN3AST7EditionE(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 1)
  br i1 %397, label %398, label %533

398:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %31) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %31, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %399 unwind label %421

399:                                              ; preds = %398
  %400 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %31)
          to label %401 unwind label %423

401:                                              ; preds = %399
  %402 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %400)
  %.not144 = icmp eq i32 %402, 14
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %31) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %31) #8
  br i1 %.not144, label %435, label %403

403:                                              ; preds = %401
  %404 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %405 unwind label %107

405:                                              ; preds = %403
  br i1 %404, label %406, label %426

406:                                              ; preds = %405
  %407 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %407, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %409 unwind label %107

409:                                              ; preds = %406
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef nonnull @.str.1)
          to label %411 unwind label %107

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef nonnull @.str.2)
          to label %413 unwind label %107

413:                                              ; preds = %411
  %414 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %412, ptr noundef nonnull @.str.3)
          to label %415 unwind label %107

415:                                              ; preds = %413
  %416 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %414, i32 noundef 1562)
          to label %417 unwind label %107

417:                                              ; preds = %415
  %418 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %416, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %419 unwind label %107

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %426 unwind label %107

421:                                              ; preds = %398
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %425

423:                                              ; preds = %399
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %31) #8
  br label %425

425:                                              ; preds = %423, %421
  %.pn142 = phi { ptr, i32 } [ %424, %423 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %31) #8
  br label %701

426:                                              ; preds = %419, %405
  %427 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %32, i32 noundef 14)
          to label %428 unwind label %.thread260

428:                                              ; preds = %426
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %427, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %32)
          to label %430 unwind label %.thread264

.thread264:                                       ; preds = %428
  %429 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #8
  br label %434

430:                                              ; preds = %428
  invoke void @__cxa_throw(ptr nonnull %427, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %432

.thread260:                                       ; preds = %426
  %431 = landingpad { ptr, i32 }
          cleanup
  br label %434

432:                                              ; preds = %430
  %433 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %32) #8
  br label %701

434:                                              ; preds = %.thread264, %.thread260
  %.pn159263 = phi { ptr, i32 } [ %431, %.thread260 ], [ %429, %.thread264 ]
  call void @__cxa_free_exception(ptr %427) #8
  br label %701

435:                                              ; preds = %401
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %33) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %37)
          to label %436 unwind label %475

436:                                              ; preds = %435
  %437 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK5Token5identEv(ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %438 unwind label %477

438:                                              ; preds = %436
  %439 = getelementptr inbounds i8, ptr %437, i64 8
  %440 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %439)
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef %440)
          to label %441 unwind label %477

441:                                              ; preds = %438
  invoke void @_ZN8RcStringC2ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %442 unwind label %479

442:                                              ; preds = %441
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %38, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  invoke void @_ZN3AST4PathC2E8RcStringSt6vectorINS_8PathNodeESaIS3_EE(ptr noundef nonnull align 8 dereferenceable(240) %33, ptr noundef nonnull %34, ptr noundef nonnull %38)
          to label %443 unwind label %481

443:                                              ; preds = %442
  %444 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %33)
          to label %445 unwind label %483

445:                                              ; preds = %443
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %33) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %33) #8
  %446 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 0)
          to label %447 unwind label %107

447:                                              ; preds = %445
  %.not150 = icmp eq i32 %446, 34
  br i1 %.not150, label %538, label %448

448:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #8
  call void @_ZN8RcStringC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39)
  %449 = invoke noundef i32 @_ZN11TokenStream9lookaheadEj(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 0)
          to label %450 unwind label %489

450:                                              ; preds = %448
  %451 = icmp eq i32 %449, 93
  br i1 %451, label %452, label %510

452:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %40) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %40, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %453 unwind label %491

453:                                              ; preds = %452
  %454 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %40)
          to label %455 unwind label %493

455:                                              ; preds = %453
  %456 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %454)
  %.not153 = icmp eq i32 %456, 93
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %40) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %40) #8
  br i1 %.not153, label %505, label %457

457:                                              ; preds = %455
  %458 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %459 unwind label %489

459:                                              ; preds = %457
  br i1 %458, label %460, label %496

460:                                              ; preds = %459
  %461 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %462 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %461, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %463 unwind label %489

463:                                              ; preds = %460
  %464 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %462, ptr noundef nonnull @.str.1)
          to label %465 unwind label %489

465:                                              ; preds = %463
  %466 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %464, ptr noundef nonnull @.str.2)
          to label %467 unwind label %489

467:                                              ; preds = %465
  %468 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %466, ptr noundef nonnull @.str.3)
          to label %469 unwind label %489

469:                                              ; preds = %467
  %470 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %468, i32 noundef 1571)
          to label %471 unwind label %489

471:                                              ; preds = %469
  %472 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %470, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %473 unwind label %489

473:                                              ; preds = %471
  %474 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %472, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %496 unwind label %489

475:                                              ; preds = %435
  %476 = landingpad { ptr, i32 }
          cleanup
  br label %488

477:                                              ; preds = %438, %436
  %478 = landingpad { ptr, i32 }
          cleanup
  br label %487

479:                                              ; preds = %441
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %486

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

483:                                              ; preds = %443
  %484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %33) #8
  br label %485

485:                                              ; preds = %483, %481
  %.pn145 = phi { ptr, i32 } [ %484, %483 ], [ %482, %481 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %38) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br label %486

486:                                              ; preds = %485, %479
  %.pn145.pn = phi { ptr, i32 } [ %.pn145, %485 ], [ %480, %479 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #8
  br label %487

487:                                              ; preds = %486, %477
  %.pn145.pn.pn = phi { ptr, i32 } [ %.pn145.pn, %486 ], [ %478, %477 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  br label %488

488:                                              ; preds = %487, %475
  %.pn145.pn.pn.pn = phi { ptr, i32 } [ %.pn145.pn.pn, %487 ], [ %476, %475 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %37) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %33) #8
  br label %701

489:                                              ; preds = %473, %471, %469, %467, %465, %463, %460, %457, %448
  %490 = landingpad { ptr, i32 }
          cleanup
  br label %532

491:                                              ; preds = %452
  %492 = landingpad { ptr, i32 }
          cleanup
  br label %495

493:                                              ; preds = %453
  %494 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %40) #8
  br label %495

495:                                              ; preds = %493, %491
  %.pn151 = phi { ptr, i32 } [ %494, %493 ], [ %492, %491 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %40) #8
  br label %532

496:                                              ; preds = %473, %459
  %497 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %41, i32 noundef 93)
          to label %498 unwind label %.thread266

498:                                              ; preds = %496
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %497, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %41)
          to label %500 unwind label %.thread270

.thread270:                                       ; preds = %498
  %499 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #8
  br label %504

500:                                              ; preds = %498
  invoke void @__cxa_throw(ptr nonnull %497, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %502

.thread266:                                       ; preds = %496
  %501 = landingpad { ptr, i32 }
          cleanup
  br label %504

502:                                              ; preds = %500
  %503 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %41) #8
  br label %532

504:                                              ; preds = %.thread270, %.thread266
  %.pn156269 = phi { ptr, i32 } [ %501, %.thread266 ], [ %499, %.thread270 ]
  call void @__cxa_free_exception(ptr %497) #8
  br label %532

505:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #8
  invoke void @_Z18get_optional_identR11TokenStream(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %42, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %506 unwind label %508

506:                                              ; preds = %505
  %507 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %42)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  br label %519

508:                                              ; preds = %505
  %509 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #8
  br label %532

510:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #8
  %511 = getelementptr inbounds i8, ptr %3, i64 8
  %512 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN3AST4Path5Class11as_AbsoluteEv(ptr noundef nonnull align 8 dereferenceable(48) %511)
  %513 = call noundef ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8) %512)
  %514 = getelementptr inbounds i8, ptr %513, i64 1
  invoke void @_ZN8RcStringC2EPKc(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull %514)
          to label %515 unwind label %517

515:                                              ; preds = %510
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN8RcStringaSEOS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %43)
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %519

517:                                              ; preds = %510
  %518 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #8
  br label %532

519:                                              ; preds = %515, %506
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %44) #8
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %44, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %520 unwind label %525

520:                                              ; preds = %519
  %521 = getelementptr inbounds i8, ptr %44, i64 8
  invoke void @_ZN3AST4PathC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(240) %521, ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %522 unwind label %527

522:                                              ; preds = %520
  %523 = getelementptr inbounds i8, ptr %44, i64 248
  call void @_ZN8RcStringC2EOS_(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull align 8 dereferenceable(8) %39)
  invoke void @_ZNSt6vectorIN3AST7UseItem3EntESaIS2_EE9push_backEOS2_(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(256) %44)
          to label %524 unwind label %529

524:                                              ; preds = %522
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %44) #8
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %44) #8
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  br label %700

525:                                              ; preds = %519
  %526 = landingpad { ptr, i32 }
          cleanup
  br label %531

527:                                              ; preds = %520
  %528 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  br label %531

529:                                              ; preds = %522
  %530 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST7UseItem3EntD2Ev(ptr noundef nonnull align 8 dereferenceable(256) %44) #8
  br label %531

531:                                              ; preds = %529, %527, %525
  %.pn154 = phi { ptr, i32 } [ %530, %529 ], [ %528, %527 ], [ %526, %525 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %44) #8
  br label %532

532:                                              ; preds = %502, %504, %531, %517, %508, %495, %489
  %.pn156.pn = phi { ptr, i32 } [ %.pn156269, %504 ], [ %503, %502 ], [ %490, %489 ], [ %.pn154, %531 ], [ %509, %508 ], [ %.pn151, %495 ], [ %518, %517 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #8
  br label %701

533:                                              ; preds = %396
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %45, ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %534 unwind label %107

534:                                              ; preds = %533
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull %45)
          to label %535 unwind label %536

535:                                              ; preds = %534
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %45) #8
  br label %538

536:                                              ; preds = %534
  %537 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %45) #8
  br label %701

538:                                              ; preds = %387, %447, %535
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %46) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %46, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %539 unwind label %561

539:                                              ; preds = %538
  %540 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %46)
          to label %541 unwind label %563

541:                                              ; preds = %539
  %542 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %540)
  %.not169 = icmp eq i32 %542, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %46) #8
  br i1 %.not169, label %699, label %543

543:                                              ; preds = %541
  %544 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %545 unwind label %107

545:                                              ; preds = %543
  br i1 %544, label %546, label %566

546:                                              ; preds = %545
  %547 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %548 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %547, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %549 unwind label %107

549:                                              ; preds = %546
  %550 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %548, ptr noundef nonnull @.str.1)
          to label %551 unwind label %107

551:                                              ; preds = %549
  %552 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %550, ptr noundef nonnull @.str.2)
          to label %553 unwind label %107

553:                                              ; preds = %551
  %554 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %552, ptr noundef nonnull @.str.3)
          to label %555 unwind label %107

555:                                              ; preds = %553
  %556 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %554, i32 noundef 1588)
          to label %557 unwind label %107

557:                                              ; preds = %555
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %556, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %559 unwind label %107

559:                                              ; preds = %557
  %560 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %558, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %566 unwind label %107

561:                                              ; preds = %538
  %562 = landingpad { ptr, i32 }
          cleanup
  br label %565

563:                                              ; preds = %539
  %564 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #8
  br label %565

565:                                              ; preds = %563, %561
  %.pn167 = phi { ptr, i32 } [ %564, %563 ], [ %562, %561 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %46) #8
  br label %701

566:                                              ; preds = %559, %545
  %567 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %47, i32 noundef 34)
          to label %568 unwind label %.thread272

568:                                              ; preds = %566
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %567, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %47)
          to label %570 unwind label %.thread276

.thread276:                                       ; preds = %568
  %569 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %47) #8
  br label %574

570:                                              ; preds = %568
  invoke void @__cxa_throw(ptr nonnull %567, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %572

.thread272:                                       ; preds = %566
  %571 = landingpad { ptr, i32 }
          cleanup
  br label %574

572:                                              ; preds = %570
  %573 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %47) #8
  br label %701

574:                                              ; preds = %.thread276, %.thread272
  %.pn170275 = phi { ptr, i32 } [ %571, %.thread272 ], [ %569, %.thread276 ]
  call void @__cxa_free_exception(ptr %567) #8
  br label %701

575:                                              ; preds = %60
  %576 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZN5Token9frag_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %6)
  %577 = invoke noundef zeroext i1 @_ZNK7TypeRef7is_pathEv(ptr noundef nonnull align 8 dereferenceable(120) %576)
          to label %578 unwind label %107

578:                                              ; preds = %575
  br i1 %577, label %584, label %579

579:                                              ; preds = %578
  %580 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %580, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %581 unwind label %582

581:                                              ; preds = %579
  invoke void @__cxa_throw(ptr nonnull %580, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %107

582:                                              ; preds = %579
  %583 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %580) #8
  br label %701

584:                                              ; preds = %578
  %585 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZN5Token9frag_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %6)
  %586 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN7TypeRef4pathEv(ptr noundef nonnull align 8 dereferenceable(120) %585)
          to label %587 unwind label %593

587:                                              ; preds = %584
  %588 = getelementptr inbounds i8, ptr %586, i64 8
  %589 = call noundef zeroext i1 @_ZNK3AST4Path5Class7is_UFCSEv(ptr noundef nonnull align 8 dereferenceable(48) %588)
  br i1 %589, label %590, label %597

590:                                              ; preds = %587
  %591 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5Token(ptr noundef nonnull align 8 dereferenceable(96) %591, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %592 unwind label %595

592:                                              ; preds = %590
  invoke void @__cxa_throw(ptr nonnull %591, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %593

593:                                              ; preds = %623, %621, %619, %617, %615, %613, %610, %607, %600, %597, %592, %584
  %594 = landingpad { ptr, i32 }
          cleanup
  br label %701

595:                                              ; preds = %590
  %596 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %591) #8
  br label %701

597:                                              ; preds = %587
  %598 = call noundef nonnull align 8 dereferenceable(120) ptr @_ZN5Token9frag_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %6)
  %599 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN7TypeRef4pathEv(ptr noundef nonnull align 8 dereferenceable(120) %598)
          to label %600 unwind label %593

600:                                              ; preds = %597
  %601 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %599)
          to label %602 unwind label %593

602:                                              ; preds = %600
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %48) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %48, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %603 unwind label %625

603:                                              ; preds = %602
  %604 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %48)
          to label %605 unwind label %627

605:                                              ; preds = %603
  %606 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %604)
  %.not137 = icmp eq i32 %606, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %48) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %48) #8
  br i1 %.not137, label %699, label %607

607:                                              ; preds = %605
  %608 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %609 unwind label %593

609:                                              ; preds = %607
  br i1 %608, label %610, label %630

610:                                              ; preds = %609
  %611 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %612 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %611, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %613 unwind label %593

613:                                              ; preds = %610
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %612, ptr noundef nonnull @.str.1)
          to label %615 unwind label %593

615:                                              ; preds = %613
  %616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %614, ptr noundef nonnull @.str.2)
          to label %617 unwind label %593

617:                                              ; preds = %615
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %616, ptr noundef nonnull @.str.3)
          to label %619 unwind label %593

619:                                              ; preds = %617
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %618, i32 noundef 1599)
          to label %621 unwind label %593

621:                                              ; preds = %619
  %622 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %620, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %623 unwind label %593

623:                                              ; preds = %621
  %624 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %622, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %630 unwind label %593

625:                                              ; preds = %602
  %626 = landingpad { ptr, i32 }
          cleanup
  br label %629

627:                                              ; preds = %603
  %628 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %48) #8
  br label %629

629:                                              ; preds = %627, %625
  %.pn135 = phi { ptr, i32 } [ %628, %627 ], [ %626, %625 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %48) #8
  br label %701

630:                                              ; preds = %623, %609
  %631 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %49, i32 noundef 34)
          to label %632 unwind label %.thread278

632:                                              ; preds = %630
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %631, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %49)
          to label %634 unwind label %.thread282

.thread282:                                       ; preds = %632
  %633 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %49) #8
  br label %638

634:                                              ; preds = %632
  invoke void @__cxa_throw(ptr nonnull %631, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %636

.thread278:                                       ; preds = %630
  %635 = landingpad { ptr, i32 }
          cleanup
  br label %638

636:                                              ; preds = %634
  %637 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %49) #8
  br label %701

638:                                              ; preds = %.thread282, %.thread278
  %.pn138281 = phi { ptr, i32 } [ %635, %.thread278 ], [ %633, %.thread282 ]
  call void @__cxa_free_exception(ptr %631) #8
  br label %701

639:                                              ; preds = %60
  %640 = call noundef nonnull align 8 dereferenceable(240) ptr @_ZN5Token9frag_pathEv(ptr noundef nonnull align 8 dereferenceable(88) %6)
  %641 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %640)
          to label %642 unwind label %107

642:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %50) #8
  invoke void @_ZN11TokenStream8getTokenEv(ptr dead_on_unwind nonnull writable sret(%class.Token) align 8 %50, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %643 unwind label %665

643:                                              ; preds = %642
  %644 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN5TokenaSEOS_(ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull align 8 dereferenceable(88) %50)
          to label %645 unwind label %667

645:                                              ; preds = %643
  %646 = call noundef i32 @_ZNK5Token4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %644)
  %.not = icmp eq i32 %646, 34
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %50) #8
  br i1 %.not, label %699, label %647

647:                                              ; preds = %645
  %648 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %649 unwind label %107

649:                                              ; preds = %647
  br i1 %648, label %650, label %670

650:                                              ; preds = %649
  %651 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !5
  %652 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %651, ptr noundef nonnull @__FUNCTION__._Z14Parse_Use_RootR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EE)
          to label %653 unwind label %107

653:                                              ; preds = %650
  %654 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef nonnull @.str.1)
          to label %655 unwind label %107

655:                                              ; preds = %653
  %656 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %654, ptr noundef nonnull @.str.2)
          to label %657 unwind label %107

657:                                              ; preds = %655
  %658 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %656, ptr noundef nonnull @.str.3)
          to label %659 unwind label %107

659:                                              ; preds = %657
  %660 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEi(ptr noundef nonnull align 8 dereferenceable(8) %658, i32 noundef 1603)
          to label %661 unwind label %107

661:                                              ; preds = %659
  %662 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %660, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %663 unwind label %107

663:                                              ; preds = %661
  %664 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %662, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %670 unwind label %107

665:                                              ; preds = %642
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %669

667:                                              ; preds = %643
  %668 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #8
  br label %669

669:                                              ; preds = %667, %665
  %.pn131 = phi { ptr, i32 } [ %668, %667 ], [ %666, %665 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %50) #8
  br label %701

670:                                              ; preds = %663, %649
  %671 = call ptr @__cxa_allocate_exception(i64 96) #8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %51, i32 noundef 34)
          to label %672 unwind label %.thread284

672:                                              ; preds = %670
  invoke void @_ZN10ParseError10UnexpectedC1ERK11TokenStreamRK5TokenS4_(ptr noundef nonnull align 8 dereferenceable(96) %671, ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(88) %6, ptr noundef nonnull %51)
          to label %674 unwind label %.thread288

.thread288:                                       ; preds = %672
  %673 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #8
  br label %678

674:                                              ; preds = %672
  invoke void @__cxa_throw(ptr nonnull %671, ptr nonnull @_ZTIN10ParseError10UnexpectedE, ptr nonnull @_ZN10ParseError10UnexpectedD1Ev) #9
          to label %704 unwind label %676

.thread284:                                       ; preds = %670
  %675 = landingpad { ptr, i32 }
          cleanup
  br label %678

676:                                              ; preds = %674
  %677 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #8
  br label %701

678:                                              ; preds = %.thread288, %.thread284
  %.pn133287 = phi { ptr, i32 } [ %675, %.thread284 ], [ %673, %.thread288 ]
  call void @__cxa_free_exception(ptr %671) #8
  br label %701

679:                                              ; preds = %60
  %680 = call noundef zeroext i1 @_ZNK11TokenStream13edition_afterEN3AST7EditionE(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef 1)
  br i1 %680, label %681, label %694

681:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %52) #8
  invoke void @_ZN5Ident7HygieneC2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53)
          to label %682 unwind label %686

682:                                              ; preds = %681
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %54, i8 0, i64 24, i1 false)
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #8
  invoke void @_ZN3AST4Path12new_relativeEN5Ident7HygieneESt6vectorINS_8PathNodeESaIS4_EE(ptr dead_on_unwind nonnull writable sret(%"class.AST::Path") align 8 %52, ptr noundef nonnull %53, ptr noundef nonnull %54)
          to label %683 unwind label %688

683:                                              ; preds = %682
  %684 = invoke noundef nonnull align 8 dereferenceable(240) ptr @_ZN3AST4PathaSEOS0_(ptr noundef nonnull align 8 dereferenceable(240) %3, ptr noundef nonnull align 8 dereferenceable(240) %52)
          to label %685 unwind label %690

685:                                              ; preds = %683
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %52) #8
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #8
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %52) #8
  br label %694

686:                                              ; preds = %681
  %687 = landingpad { ptr, i32 }
          cleanup
  br label %693

688:                                              ; preds = %682
  %689 = landingpad { ptr, i32 }
          cleanup
  br label %692

690:                                              ; preds = %683
  %691 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %52) #8
  br label %692

692:                                              ; preds = %690, %688
  %.pn212 = phi { ptr, i32 } [ %691, %690 ], [ %689, %688 ]
  call void @_ZNSt6vectorIN3AST8PathNodeESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %54) #8
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br label %693

693:                                              ; preds = %692, %686
  %.pn212.pn = phi { ptr, i32 } [ %.pn212, %692 ], [ %687, %686 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %52) #8
  br label %701

694:                                              ; preds = %685, %679
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %55, ptr noundef nonnull align 8 dereferenceable(88) %6)
          to label %695 unwind label %107

695:                                              ; preds = %694
  invoke void @_ZN11TokenStream7putbackE5Token(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull %55)
          to label %696 unwind label %697

696:                                              ; preds = %695
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %55) #8
  br label %699

697:                                              ; preds = %695
  %698 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %55) #8
  br label %701

699:                                              ; preds = %605, %206, %645, %541, %306, %77, %696
  invoke void @_Z15Parse_Use_InnerR11TokenStreamRSt6vectorIN3AST7UseItem3EntESaIS4_EERNS2_4PathE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(240) %3)
          to label %700 unwind label %107

700:                                              ; preds = %699, %524, %292
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %6) #8
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %6) #8
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %3) #8
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %3) #8
  ret void

701:                                              ; preds = %.loopexit, %.loopexit.split-lp, %676, %636, %572, %432, %378, %337, %283, %242, %196, %159, %115, %593, %595, %629, %638, %152, %189, %230, %235, %161, %198, %244, %678, %574, %434, %380, %339, %285, %117, %697, %693, %669, %582, %565, %536, %532, %488, %425, %395, %371, %330, %302, %276, %107, %106, %101, %70
  %.pn215 = phi { ptr, i32 } [ %108, %107 ], [ %698, %697 ], [ %.pn212.pn, %693 ], [ %.pn133287, %678 ], [ %677, %676 ], [ %.pn131, %669 ], [ %583, %582 ], [ %.pn172257, %380 ], [ %379, %378 ], [ %.pn170275, %574 ], [ %573, %572 ], [ %.pn167, %565 ], [ %.pn164.pn, %395 ], [ %.pn161, %371 ], [ %.pn159263, %434 ], [ %433, %432 ], [ %.pn156.pn, %532 ], [ %.pn145.pn.pn.pn, %488 ], [ %.pn142, %425 ], [ %537, %536 ], [ %.pn185245, %285 ], [ %284, %283 ], [ %.pn182.pn, %302 ], [ %.pn179, %276 ], [ %.pn177251, %339 ], [ %338, %337 ], [ %.pn174, %330 ], [ %.pn210221, %117 ], [ %116, %115 ], [ %.pn207, %106 ], [ %.pn205, %101 ], [ %.pn, %70 ], [ %.pn202227, %161 ], [ %160, %159 ], [ %.pn200233, %198 ], [ %197, %196 ], [ %.pn197, %189 ], [ %.pn194, %152 ], [ %.pn192239, %244 ], [ %243, %242 ], [ %.pn189, %235 ], [ %.pn187, %230 ], [ %594, %593 ], [ %596, %595 ], [ %.pn138281, %638 ], [ %637, %636 ], [ %.pn135, %629 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %6) #8
  br label %702

702:                                              ; preds = %701, %64
  %.pn215.pn = phi { ptr, i32 } [ %.pn215, %701 ], [ %65, %64 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %6) #8
  call void @_ZN3AST4PathD1Ev(ptr noundef nonnull align 8 dereferenceable(240) %3) #8
  br label %703

703:                                              ; preds = %702, %62
  %.pn215.pn.pn = phi { ptr, i32 } [ %.pn215.pn, %702 ], [ %63, %62 ]
  call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %3) #8
  resume { ptr, i32 } %.pn215.pn.pn

704:                                              ; preds = %674, %634, %592, %581, %570, %500, %430, %376, %335, %281, %240, %194, %157, %113
  unreachable
}

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_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 ptr @_ZNK8RcString5c_strEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #3 align 2

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "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 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 #3 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { 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 #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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = distinct !{!9, !10}
!10 = !{!"llvm.loop.mustprogress"}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass