; LLVM IR from thepowersgang/mrustc :: src/parse/lex.ll (ZN5Lexer11getTokenIntEv)

; 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.1" }
%"struct.std::_Head_base.1" = type { ptr }
%struct.Codepoint = type { i32 }
%class.U128 = type { i64, i64 }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::allocator" = type { i8 }
%struct.Ident = type { %"class.Ident::Hygiene", %class.RcString }
%class.anon.20 = type { ptr }
%class.anon.21 = type { ptr }
%class.anon.22 = type { ptr }
%class.Lexer = type { %class.TokenStream, %class.RcString, i32, i32, %"class.std::unique_ptr.5", ptr, i8, %struct.Codepoint, %"class.std::vector.13", i32, %"class.Ident::Hygiene" }
%class.TokenStream = type { ptr, i8, %class.Token, %"class.Ident::Hygiene", i32, %"class.std::vector", %struct.ParseState }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl" = type { %"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" }
%"struct.std::_Vector_base<TokenStream::LookaheadEnt, std::allocator<TokenStream::LookaheadEnt>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ParseState = type { i8, i8, i8, ptr, ptr, ptr }
%"class.std::unique_ptr.5" = type { %"struct.std::__uniq_ptr_data.6" }
%"struct.std::__uniq_ptr_data.6" = type { %"class.std::__uniq_ptr_impl.7" }
%"class.std::__uniq_ptr_impl.7" = type { %"class.std::tuple.8" }
%"class.std::tuple.8" = type { %"struct.std::_Tuple_impl.9" }
%"struct.std::_Tuple_impl.9" = type { %"struct.std::_Head_base.12" }
%"struct.std::_Head_base.12" = type { ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl" = type { %"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Token, std::allocator<Token>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@_ZTIN5Lexer9EndOfFileE = external dso_local constant { ptr, ptr }, align 8
@_ZTIN10ParseError7BadCharE = external constant ptr
@__func__._ZN5Lexer11getTokenIntEv = external hidden unnamed_addr constant [12 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [72 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv = external hidden unnamed_addr constant [27 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZTIN12CompileError7GenericE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.11 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [32 x i8], align 1
@_ZTIPKc = external constant ptr

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

declare i32 @__gxx_personality_v0(...)

declare ptr @__cxa_allocate_exception(i64)

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

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

declare void @__cxa_throw(ptr, ptr, ptr)

; 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare void @__cxa_free_exception(ptr)

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5Lexer9getSymbolEv(ptr noundef nonnull align 8 dereferenceable(256)) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4), i8 noundef signext) #3 align 2

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #7

declare ptr @__cxa_begin_catch(ptr)

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

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #8

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z5issym9Codepoint(i32) #6

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Lexer11getTokenIntEv(ptr dead_on_unwind noalias writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %1) #6 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i1, align 1
  %6 = alloca %struct.Codepoint, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca %struct.Codepoint, align 4
  %10 = alloca %struct.Codepoint, align 4
  %11 = alloca %struct.Codepoint, align 4
  %12 = alloca i32, align 4
  %13 = alloca %class.Token, align 8
  %14 = alloca %struct.Codepoint, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.Codepoint, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca %class.U128, align 8
  %20 = alloca %struct.Codepoint, align 4
  %21 = alloca %struct.Codepoint, align 4
  %22 = alloca %struct.Codepoint, align 4
  %23 = alloca %class.Token, align 8
  %24 = alloca %class.Token, align 8
  %25 = alloca %class.Token, align 8
  %26 = alloca %class.U128, align 8
  %27 = alloca %struct.Codepoint, align 4
  %28 = alloca %class.Token, align 8
  %29 = alloca %class.U128, align 8
  %30 = alloca double, align 8
  %31 = alloca ptr, align 8
  %32 = alloca %struct.Span, align 8
  %33 = alloca %"class.std::function", align 8
  %34 = alloca %class.anon, align 8
  %35 = alloca double, align 8
  %36 = alloca %class.U128, align 8
  %37 = alloca i1, align 1
  %38 = alloca %struct.Codepoint, align 4
  %39 = alloca %struct.Codepoint, align 4
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %struct.Codepoint, align 4
  %42 = alloca %struct.Codepoint, align 4
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %45 = alloca i1, align 1
  %46 = alloca %struct.Codepoint, align 4
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %struct.Codepoint, align 4
  %49 = alloca %struct.Codepoint, align 4
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %52 = alloca i1, align 1
  %53 = alloca %class.U128, align 8
  %54 = alloca %class.U128, align 8
  %55 = alloca i8, align 1
  %56 = alloca %struct.Codepoint, align 4
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %struct.Codepoint, align 4
  %59 = alloca i32, align 4
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::allocator", align 1
  %62 = alloca i1, align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.Ident::Hygiene", align 8
  %65 = alloca %struct.Codepoint, align 4
  %66 = alloca i32, align 4
  %67 = alloca %struct.Codepoint, align 4
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::allocator", align 1
  %70 = alloca i1, align 1
  %71 = alloca %class.U128, align 8
  %72 = alloca %struct.Codepoint, align 4
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::allocator", align 1
  %75 = alloca i1, align 1
  %76 = alloca %class.U128, align 8
  %77 = alloca %struct.Codepoint, align 4
  %78 = alloca %struct.Codepoint, align 4
  %79 = alloca %struct.Codepoint, align 4
  %80 = alloca %struct.Codepoint, align 4
  %81 = alloca %struct.Codepoint, align 4
  %82 = alloca %struct.Codepoint, align 4
  %83 = alloca %class.U128, align 8
  %84 = alloca %class.Token, align 8
  %85 = alloca %class.U128, align 8
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %struct.Codepoint, align 4
  %88 = alloca i8, align 1
  %89 = alloca i8, align 1
  %90 = alloca %struct.Codepoint, align 4
  %91 = alloca %struct.Codepoint, align 4
  %92 = alloca %struct.Codepoint, align 4
  %93 = alloca %class.Token, align 8
  %94 = alloca %class.Token, align 8
  %95 = alloca %"class.std::__cxx11::basic_string", align 8
  %96 = alloca %"class.Ident::Hygiene", align 8
  %97 = alloca %class.Token, align 8
  %98 = alloca %class.Token, align 8
  %99 = alloca %struct.Ident, align 8
  %100 = alloca %class.RcString, align 8
  %101 = alloca %class.Token, align 8
  %102 = alloca %class.Token, align 8
  %103 = alloca %"class.std::__cxx11::basic_string", align 8
  %104 = alloca %"class.Ident::Hygiene", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca i8, align 1
  %107 = alloca i8, align 1
  %108 = alloca %struct.Codepoint, align 4
  %109 = alloca %struct.Codepoint, align 4
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  %111 = alloca %"class.Ident::Hygiene", align 8
  %112 = alloca %struct.Codepoint, align 4
  %113 = alloca i32, align 4
  %114 = alloca %struct.Codepoint, align 4
  %115 = alloca %struct.Codepoint, align 4
  %116 = alloca %struct.Codepoint, align 4
  %117 = alloca %class.Token, align 8
  %118 = alloca %class.Token, align 8
  %119 = alloca %"class.std::__cxx11::basic_string", align 8
  %120 = alloca %"class.Ident::Hygiene", align 8
  %121 = alloca %class.Token, align 8
  %122 = alloca %class.Token, align 8
  %123 = alloca %struct.Ident, align 8
  %124 = alloca %class.RcString, align 8
  %125 = alloca %class.Token, align 8
  %126 = alloca %class.Token, align 8
  %127 = alloca %"class.std::__cxx11::basic_string", align 8
  %128 = alloca %"class.Ident::Hygiene", align 8
  %129 = alloca %struct.Codepoint, align 4
  %130 = alloca i32, align 4
  %131 = alloca %struct.Codepoint, align 4
  %132 = alloca ptr, align 8
  %133 = alloca %struct.Span, align 8
  %134 = alloca %"class.std::function", align 8
  %135 = alloca %class.anon.20, align 8
  %136 = alloca %class.U128, align 8
  %137 = alloca ptr, align 8
  %138 = alloca %struct.Span, align 8
  %139 = alloca %"class.std::function", align 8
  %140 = alloca %class.anon.21, align 8
  %141 = alloca %struct.Codepoint, align 4
  %142 = alloca %class.U128, align 8
  %143 = alloca %struct.Codepoint, align 4
  %144 = alloca %"class.std::__cxx11::basic_string", align 8
  %145 = alloca %struct.Codepoint, align 4
  %146 = alloca %struct.Codepoint, align 4
  %147 = alloca %struct.Ident, align 8
  %148 = alloca %"class.Ident::Hygiene", align 8
  %149 = alloca %class.RcString, align 8
  %150 = alloca ptr, align 8
  %151 = alloca %struct.Span, align 8
  %152 = alloca %"class.std::function", align 8
  %153 = alloca %class.anon.22, align 8
  %154 = alloca %"class.std::__cxx11::basic_string", align 8
  %155 = alloca %struct.Codepoint, align 4
  %156 = alloca i32, align 4
  %157 = alloca %struct.Codepoint, align 4
  %158 = alloca %"class.std::__cxx11::basic_string", align 8
  %159 = alloca %"class.Ident::Hygiene", align 8
  %160 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8
  store ptr %1, ptr %4, align 8, !tbaa !5
  %161 = load ptr, ptr %4, align 8
  %162 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  %163 = call noundef zeroext i1 @_ZNKSt6vectorI5TokenSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %162) #11
  br i1 %163, label %171, label %164

164:                                              ; preds = %2
  store i1 false, ptr %5, align 1
  %165 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  %166 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorI5TokenSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #11
  call void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %0, ptr noundef nonnull align 8 dereferenceable(88) %166)
  %167 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @_ZNSt6vectorI5TokenSaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %167) #11
  store i1 true, ptr %5, align 1
  %168 = load i1, ptr %5, align 1
  br i1 %168, label %170, label %169

169:                                              ; preds = %164
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %0) #11
  br label %170

170:                                              ; preds = %169, %164
  br label %1750

171:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %172 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %173 unwind label %191

173:                                              ; preds = %171
  %174 = getelementptr inbounds %struct.Codepoint, ptr %6, i32 0, i32 0
  store i32 %172, ptr %174, align 4
  %175 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 2
  %176 = load i32, ptr %175, align 8, !tbaa !9
  %177 = icmp eq i32 %176, 1
  br i1 %177, label %178, label %262

178:                                              ; preds = %173
  %179 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 3
  %180 = load i32, ptr %179, align 4, !tbaa !45
  %181 = icmp eq i32 %180, 1
  br i1 %181, label %182, label %262

182:                                              ; preds = %178
  %183 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 35)
          to label %184 unwind label %191

184:                                              ; preds = %182
  br i1 %183, label %185, label %262

185:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %186 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %187 unwind label %195

187:                                              ; preds = %185
  %188 = getelementptr inbounds %struct.Codepoint, ptr %9, i32 0, i32 0
  store i32 %186, ptr %188, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %9, i64 4, i1 false), !tbaa.struct !46
  %189 = getelementptr inbounds %struct.Codepoint, ptr %6, i32 0, i32 0
  %190 = load i32, ptr %189, align 4, !tbaa !48
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  switch i32 %190, label %251 [
    i32 33, label %199
    i32 91, label %248
  ]

191:                                              ; preds = %290, %288, %287, %267, %265, %262, %257, %251, %249, %248, %243, %227, %223, %221, %210, %182, %171
  %192 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %7, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %8, align 4
  br label %1734

195:                                              ; preds = %185
  %196 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %7, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %1734

199:                                              ; preds = %187
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %200 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %201 unwind label %205

201:                                              ; preds = %199
  %202 = getelementptr inbounds %struct.Codepoint, ptr %10, i32 0, i32 0
  store i32 %200, ptr %202, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %10, i64 4, i1 false), !tbaa.struct !46
  %203 = getelementptr inbounds %struct.Codepoint, ptr %6, i32 0, i32 0
  %204 = load i32, ptr %203, align 4, !tbaa !48
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  switch i32 %204, label %238 [
    i32 47, label %209
    i32 91, label %223
  ]

205:                                              ; preds = %199
  %206 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %7, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %1734

209:                                              ; preds = %201
  br label %210

210:                                              ; preds = %215, %209
  %211 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 10)
          to label %212 unwind label %191

212:                                              ; preds = %210
  br i1 %211, label %213, label %221

213:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %214 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %215 unwind label %217

215:                                              ; preds = %213
  %216 = getelementptr inbounds %struct.Codepoint, ptr %11, i32 0, i32 0
  store i32 %214, ptr %216, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %11, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %210, !llvm.loop !49

217:                                              ; preds = %213
  %218 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %219 = extractvalue { ptr, i32 } %218, 0
  store ptr %219, ptr %7, align 8
  %220 = extractvalue { ptr, i32 } %218, 1
  store i32 %220, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %1734

221:                                              ; preds = %212
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 2)
          to label %222 unwind label %191

222:                                              ; preds = %221
  store i32 1, ptr %12, align 4
  br label %1730

223:                                              ; preds = %201
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %224 unwind label %191

224:                                              ; preds = %223
  %225 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %13) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %13, i32 noundef 43)
          to label %226 unwind label %229

226:                                              ; preds = %224
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %225, ptr noundef nonnull align 8 dereferenceable(88) %13)
          to label %227 unwind label %233

227:                                              ; preds = %226
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %13) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 21)
          to label %228 unwind label %191

228:                                              ; preds = %227
  store i32 1, ptr %12, align 4
  br label %1730

229:                                              ; preds = %224
  %230 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %231 = extractvalue { ptr, i32 } %230, 0
  store ptr %231, ptr %7, align 8
  %232 = extractvalue { ptr, i32 } %230, 1
  store i32 %232, ptr %8, align 4
  br label %237

233:                                              ; preds = %226
  %234 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %235 = extractvalue { ptr, i32 } %234, 0
  store ptr %235, ptr %7, align 8
  %236 = extractvalue { ptr, i32 } %234, 1
  store i32 %236, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %13) #11
  br label %237

237:                                              ; preds = %233, %229
  call void @llvm.lifetime.end.p0(i64 88, ptr %13) #11
  br label %1734

238:                                              ; preds = %201
  %239 = call ptr @__cxa_allocate_exception(i64 8) #11
  %240 = getelementptr inbounds %struct.Codepoint, ptr %6, i32 0, i32 0
  %241 = load i32, ptr %240, align 4, !tbaa !48
  %242 = trunc i32 %241 to i8
  invoke void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8) %239, ptr noundef nonnull align 8 dereferenceable(176) %161, i8 noundef signext %242)
          to label %243 unwind label %244

243:                                              ; preds = %238
  invoke void @__cxa_throw(ptr %239, ptr @_ZTIN10ParseError7BadCharE, ptr @_ZN10ParseError7BadCharD1Ev) #12
          to label %1759 unwind label %191

244:                                              ; preds = %238
  %245 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %246 = extractvalue { ptr, i32 } %245, 0
  store ptr %246, ptr %7, align 8
  %247 = extractvalue { ptr, i32 } %245, 1
  store i32 %247, ptr %8, align 4
  call void @__cxa_free_exception(ptr %239) #11
  br label %1734

248:                                              ; preds = %187
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %249 unwind label %191

249:                                              ; preds = %248
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 21)
          to label %250 unwind label %191

250:                                              ; preds = %249
  store i32 1, ptr %12, align 4
  br label %1730

251:                                              ; preds = %187
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %252 unwind label %191

252:                                              ; preds = %251
  %253 = call ptr @__cxa_allocate_exception(i64 8) #11
  %254 = getelementptr inbounds %struct.Codepoint, ptr %6, i32 0, i32 0
  %255 = load i32, ptr %254, align 4, !tbaa !48
  %256 = trunc i32 %255 to i8
  invoke void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8) %253, ptr noundef nonnull align 8 dereferenceable(176) %161, i8 noundef signext %256)
          to label %257 unwind label %258

257:                                              ; preds = %252
  invoke void @__cxa_throw(ptr %253, ptr @_ZTIN10ParseError7BadCharE, ptr @_ZN10ParseError7BadCharD1Ev) #12
          to label %1759 unwind label %191

258:                                              ; preds = %252
  %259 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %260 = extractvalue { ptr, i32 } %259, 0
  store ptr %260, ptr %7, align 8
  %261 = extractvalue { ptr, i32 } %259, 1
  store i32 %261, ptr %8, align 4
  call void @__cxa_free_exception(ptr %253) #11
  br label %1734

262:                                              ; preds = %184, %178, %173
  %263 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 10)
          to label %264 unwind label %191

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

265:                                              ; preds = %264
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 2)
          to label %266 unwind label %191

266:                                              ; preds = %265
  store i32 1, ptr %12, align 4
  br label %1730

267:                                              ; preds = %264
  %268 = invoke noundef zeroext i1 @_ZNK9Codepoint7isspaceEv(ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %269 unwind label %191

269:                                              ; preds = %267
  br i1 %268, label %270, label %290

270:                                              ; preds = %269
  br label %271

271:                                              ; preds = %282, %270
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %272 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %273 unwind label %283

273:                                              ; preds = %271
  %274 = getelementptr inbounds %struct.Codepoint, ptr %14, i32 0, i32 0
  store i32 %272, ptr %274, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %14, i64 4, i1 false), !tbaa.struct !46
  %275 = invoke noundef zeroext i1 @_ZNK9Codepoint7isspaceEv(ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %276 unwind label %283

276:                                              ; preds = %273
  br i1 %275, label %277, label %280

277:                                              ; preds = %276
  %278 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 10)
          to label %279 unwind label %283

279:                                              ; preds = %277
  br label %280

280:                                              ; preds = %279, %276
  %281 = phi i1 [ false, %276 ], [ %278, %279 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br i1 %281, label %282, label %287

282:                                              ; preds = %280
  br label %271, !llvm.loop !51

283:                                              ; preds = %277, %273, %271
  %284 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %285 = extractvalue { ptr, i32 } %284, 0
  store ptr %285, ptr %7, align 8
  %286 = extractvalue { ptr, i32 } %284, 1
  store i32 %286, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %1734

287:                                              ; preds = %280
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %288 unwind label %191

288:                                              ; preds = %287
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 3)
          to label %289 unwind label %191

289:                                              ; preds = %288
  store i32 1, ptr %12, align 4
  br label %1730

290:                                              ; preds = %269
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %291 unwind label %191

291:                                              ; preds = %290
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %292 = invoke noundef i32 @_ZN5Lexer9getSymbolEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %293 unwind label %340

293:                                              ; preds = %291
  store i32 %292, ptr %15, align 4, !tbaa !47
  %294 = load i32, ptr %15, align 4, !tbaa !47
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %974

296:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %297 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %298 unwind label %344

298:                                              ; preds = %296
  %299 = getelementptr inbounds %struct.Codepoint, ptr %16, i32 0, i32 0
  store i32 %297, ptr %299, align 4
  %300 = invoke noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %301 unwind label %344

301:                                              ; preds = %298
  br i1 %300, label %302, label %732

302:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  store i32 1, ptr %17, align 4, !tbaa !52
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  store i32 2, ptr %18, align 4, !tbaa !54
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %303 unwind label %348

303:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 16, ptr %19) #11
  %304 = invoke { i64, i64 } @_ZN5Lexer8parseIntEPNS_7NumModeE(ptr noundef nonnull align 8 dereferenceable(256) %161, ptr noundef %18)
          to label %305 unwind label %352

305:                                              ; preds = %303
  %306 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 0
  %307 = extractvalue { i64, i64 } %304, 0
  store i64 %307, ptr %306, align 8
  %308 = getelementptr inbounds { i64, i64 }, ptr %19, i32 0, i32 1
  %309 = extractvalue { i64, i64 } %304, 1
  store i64 %309, ptr %308, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %310 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %311 unwind label %356

311:                                              ; preds = %305
  %312 = getelementptr inbounds %struct.Codepoint, ptr %20, i32 0, i32 0
  store i32 %310, ptr %312, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %20, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  %313 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 101)
          to label %314 unwind label %352

314:                                              ; preds = %311
  br i1 %313, label %321, label %315

315:                                              ; preds = %314
  %316 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 69)
          to label %317 unwind label %352

317:                                              ; preds = %315
  br i1 %316, label %321, label %318

318:                                              ; preds = %317
  %319 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 46)
          to label %320 unwind label %352

320:                                              ; preds = %318
  br i1 %319, label %321, label %590

321:                                              ; preds = %320, %317, %314
  %322 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 46)
          to label %323 unwind label %352

323:                                              ; preds = %321
  br i1 %322, label %324, label %452

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %325 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %326 unwind label %360

326:                                              ; preds = %324
  %327 = getelementptr inbounds %struct.Codepoint, ptr %21, i32 0, i32 0
  store i32 %325, ptr %327, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %21, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  %328 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 46)
          to label %329 unwind label %352

329:                                              ; preds = %326
  br i1 %328, label %330, label %414

330:                                              ; preds = %329
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %331 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %332 unwind label %364

332:                                              ; preds = %330
  %333 = getelementptr inbounds %struct.Codepoint, ptr %22, i32 0, i32 0
  store i32 %331, ptr %333, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %22, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  %334 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 46)
          to label %335 unwind label %352

335:                                              ; preds = %332
  br i1 %334, label %336, label %377

336:                                              ; preds = %335
  %337 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %23) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %23, i32 noundef 49)
          to label %338 unwind label %368

338:                                              ; preds = %336
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %337, ptr noundef nonnull align 8 dereferenceable(88) %23)
          to label %339 unwind label %372

339:                                              ; preds = %338
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %23) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %23) #11
  br label %408

340:                                              ; preds = %1022, %291
  %341 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %7, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %8, align 4
  br label %1733

344:                                              ; preds = %967, %956, %955, %950, %735, %732, %298, %296
  %345 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %7, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %8, align 4
  br label %973

348:                                              ; preds = %302
  %349 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %7, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %8, align 4
  br label %731

352:                                              ; preds = %722, %721, %590, %482, %426, %418, %417, %414, %408, %393, %377, %332, %326, %321, %318, %315, %311, %303
  %353 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %354 = extractvalue { ptr, i32 } %353, 0
  store ptr %354, ptr %7, align 8
  %355 = extractvalue { ptr, i32 } %353, 1
  store i32 %355, ptr %8, align 4
  br label %730

356:                                              ; preds = %305
  %357 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %358 = extractvalue { ptr, i32 } %357, 0
  store ptr %358, ptr %7, align 8
  %359 = extractvalue { ptr, i32 } %357, 1
  store i32 %359, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %730

360:                                              ; preds = %324
  %361 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %362 = extractvalue { ptr, i32 } %361, 0
  store ptr %362, ptr %7, align 8
  %363 = extractvalue { ptr, i32 } %361, 1
  store i32 %363, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %730

364:                                              ; preds = %330
  %365 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %7, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %730

368:                                              ; preds = %336
  %369 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %7, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %8, align 4
  br label %376

372:                                              ; preds = %338
  %373 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %7, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %23) #11
  br label %376

376:                                              ; preds = %372, %368
  call void @llvm.lifetime.end.p0(i64 88, ptr %23) #11
  br label %730

377:                                              ; preds = %335
  %378 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 61)
          to label %379 unwind label %352

379:                                              ; preds = %377
  br i1 %378, label %380, label %393

380:                                              ; preds = %379
  %381 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %24) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %24, i32 noundef 48)
          to label %382 unwind label %384

382:                                              ; preds = %380
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %381, ptr noundef nonnull align 8 dereferenceable(88) %24)
          to label %383 unwind label %388

383:                                              ; preds = %382
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %24) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %24) #11
  br label %407

384:                                              ; preds = %380
  %385 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %7, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %8, align 4
  br label %392

388:                                              ; preds = %382
  %389 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %7, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %24) #11
  br label %392

392:                                              ; preds = %388, %384
  call void @llvm.lifetime.end.p0(i64 88, ptr %24) #11
  br label %730

393:                                              ; preds = %379
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %394 unwind label %352

394:                                              ; preds = %393
  %395 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %25) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %25, i32 noundef 47)
          to label %396 unwind label %398

396:                                              ; preds = %394
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %395, ptr noundef nonnull align 8 dereferenceable(88) %25)
          to label %397 unwind label %402

397:                                              ; preds = %396
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %25) #11
  br label %407

398:                                              ; preds = %394
  %399 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %7, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %8, align 4
  br label %406

402:                                              ; preds = %396
  %403 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %404 = extractvalue { ptr, i32 } %403, 0
  store ptr %404, ptr %7, align 8
  %405 = extractvalue { ptr, i32 } %403, 1
  store i32 %405, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %25) #11
  br label %406

406:                                              ; preds = %402, %398
  call void @llvm.lifetime.end.p0(i64 88, ptr %25) #11
  br label %730

407:                                              ; preds = %397, %383
  br label %408

408:                                              ; preds = %407, %339
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %26, ptr align 8 %19, i64 16, i1 false), !tbaa.struct !56
  %409 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 0
  %410 = load i64, ptr %409, align 8
  %411 = getelementptr inbounds { i64, i64 }, ptr %26, i32 0, i32 1
  %412 = load i64, ptr %411, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %410, i64 %412, i32 noundef 1)
          to label %413 unwind label %352

413:                                              ; preds = %408
  store i32 1, ptr %12, align 4
  br label %729

414:                                              ; preds = %329
  %415 = invoke noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %416 unwind label %352

416:                                              ; preds = %414
  br i1 %415, label %450, label %417

417:                                              ; preds = %416
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %418 unwind label %352

418:                                              ; preds = %417
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %27, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  %419 = getelementptr inbounds %struct.Codepoint, ptr %27, i32 0, i32 0
  %420 = load i32, ptr %419, align 4
  %421 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %420)
          to label %422 unwind label %352

422:                                              ; preds = %418
  br i1 %421, label %423, label %441

423:                                              ; preds = %422
  %424 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %28) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %28, i32 noundef 46)
          to label %425 unwind label %432

425:                                              ; preds = %423
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %424, ptr noundef nonnull align 8 dereferenceable(88) %28)
          to label %426 unwind label %436

426:                                              ; preds = %425
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %28) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %28) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %29, ptr align 8 %19, i64 16, i1 false), !tbaa.struct !56
  %427 = getelementptr inbounds { i64, i64 }, ptr %29, i32 0, i32 0
  %428 = load i64, ptr %427, align 8
  %429 = getelementptr inbounds { i64, i64 }, ptr %29, i32 0, i32 1
  %430 = load i64, ptr %429, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %428, i64 %430, i32 noundef 1)
          to label %431 unwind label %352

431:                                              ; preds = %426
  store i32 1, ptr %12, align 4
  br label %729

432:                                              ; preds = %423
  %433 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %7, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %8, align 4
  br label %440

436:                                              ; preds = %425
  %437 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %7, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %28) #11
  br label %440

440:                                              ; preds = %436, %432
  call void @llvm.lifetime.end.p0(i64 88, ptr %28) #11
  br label %730

441:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  %442 = invoke noundef double @_ZNK4U1289to_doubleEv(ptr noundef nonnull align 8 dereferenceable(16) %19)
          to label %443 unwind label %446

443:                                              ; preds = %441
  store double %442, ptr %30, align 8, !tbaa !59
  %444 = load double, ptr %30, align 8, !tbaa !59
  invoke void @_ZN5Token10make_floatEd9eCoreType(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, double noundef %444, i32 noundef 1)
          to label %445 unwind label %446

445:                                              ; preds = %443
  store i32 1, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %729

446:                                              ; preds = %443, %441
  %447 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %448 = extractvalue { ptr, i32 } %447, 0
  store ptr %448, ptr %7, align 8
  %449 = extractvalue { ptr, i32 } %447, 1
  store i32 %449, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %730

450:                                              ; preds = %416
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451, %323
  %453 = load i32, ptr %18, align 4, !tbaa !54
  %454 = icmp ne i32 %453, 2
  br i1 %454, label %455, label %482

455:                                              ; preds = %452
  br label %456

456:                                              ; preds = %455
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %32, ptr noundef nonnull align 8 dereferenceable(176) %161)
          to label %457 unwind label %462

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #11
  %458 = getelementptr inbounds %class.anon, ptr %34, i32 0, i32 0
  store ptr %31, ptr %458, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef %33)
          to label %459 unwind label %466

459:                                              ; preds = %457
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  %460 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %460, ptr noundef @.str.5)
          to label %461 unwind label %471

461:                                              ; preds = %459
  invoke void @__cxa_throw(ptr %460, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1759 unwind label %475

462:                                              ; preds = %456
  %463 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %7, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %8, align 4
  br label %470

466:                                              ; preds = %457
  %467 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %7, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #11
  br label %470

470:                                              ; preds = %466, %462
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  br label %479

471:                                              ; preds = %459
  %472 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %473 = extractvalue { ptr, i32 } %472, 0
  store ptr %473, ptr %7, align 8
  %474 = extractvalue { ptr, i32 } %472, 1
  store i32 %474, ptr %8, align 4
  call void @__cxa_free_exception(ptr %460) #11
  br label %479

475:                                              ; preds = %461
  %476 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %477 = extractvalue { ptr, i32 } %476, 0
  store ptr %477, ptr %7, align 8
  %478 = extractvalue { ptr, i32 } %476, 1
  store i32 %478, ptr %8, align 4
  br label %479

479:                                              ; preds = %475, %471, %470
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  br label %730

480:                                              ; No predecessors!
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481, %452
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %483 unwind label %352

483:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %36, ptr align 8 %19, i64 16, i1 false), !tbaa.struct !56
  %484 = getelementptr inbounds { i64, i64 }, ptr %36, i32 0, i32 0
  %485 = load i64, ptr %484, align 8
  %486 = getelementptr inbounds { i64, i64 }, ptr %36, i32 0, i32 1
  %487 = load i64, ptr %486, align 8
  %488 = invoke noundef double @_ZN5Lexer10parseFloatE4U128(ptr noundef nonnull align 8 dereferenceable(256) %161, i64 %485, i64 %487)
          to label %489 unwind label %499

489:                                              ; preds = %483
  store double %488, ptr %35, align 8, !tbaa !59
  %490 = load double, ptr %35, align 8, !tbaa !59
  %491 = load double, ptr %35, align 8, !tbaa !59
  %492 = fcmp une double %490, %491
  br i1 %492, label %493, label %512

493:                                              ; preds = %489
  %494 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  %495 = call noundef zeroext i1 @_ZNKSt6vectorI5TokenSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %494) #11
  %496 = xor i1 %495, true
  br i1 %496, label %497, label %498

497:                                              ; preds = %493
  br label %504

498:                                              ; preds = %493
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.7, i32 noundef 464, ptr noundef @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #13
  unreachable

499:                                              ; preds = %584, %582, %504, %483
  %500 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %501 = extractvalue { ptr, i32 } %500, 0
  store ptr %501, ptr %7, align 8
  %502 = extractvalue { ptr, i32 } %500, 1
  store i32 %502, ptr %8, align 4
  br label %589

503:                                              ; No predecessors!
  br label %504

504:                                              ; preds = %503, %497
  store i1 false, ptr %37, align 1
  %505 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  %506 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorI5TokenSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %505) #11
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %0, ptr noundef nonnull align 8 dereferenceable(88) %506)
          to label %507 unwind label %499

507:                                              ; preds = %504
  %508 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @_ZNSt6vectorI5TokenSaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %508) #11
  store i1 true, ptr %37, align 1
  store i32 1, ptr %12, align 4
  %509 = load i1, ptr %37, align 1
  br i1 %509, label %511, label %510

510:                                              ; preds = %507
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %0) #11
  br label %511

511:                                              ; preds = %510, %507
  br label %588

512:                                              ; preds = %489
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %513 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %514 unwind label %532

514:                                              ; preds = %512
  %515 = getelementptr inbounds %struct.Codepoint, ptr %39, i32 0, i32 0
  store i32 %513, ptr %515, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %39, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %38, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  %516 = getelementptr inbounds %struct.Codepoint, ptr %38, i32 0, i32 0
  %517 = load i32, ptr %516, align 4
  %518 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %517)
          to label %519 unwind label %532

519:                                              ; preds = %514
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br i1 %518, label %520, label %582

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  br label %521

521:                                              ; preds = %530, %520
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %41, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  %522 = getelementptr inbounds %struct.Codepoint, ptr %41, i32 0, i32 0
  %523 = load i32, ptr %522, align 4
  %524 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %523)
          to label %525 unwind label %536

525:                                              ; preds = %521
  br i1 %524, label %526, label %544

526:                                              ; preds = %525
  %527 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %528 unwind label %536

528:                                              ; preds = %526
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %529 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %530 unwind label %540

530:                                              ; preds = %528
  %531 = getelementptr inbounds %struct.Codepoint, ptr %42, i32 0, i32 0
  store i32 %529, ptr %531, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %42, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %521, !llvm.loop !61

532:                                              ; preds = %514, %512
  %533 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %534 = extractvalue { ptr, i32 } %533, 0
  store ptr %534, ptr %7, align 8
  %535 = extractvalue { ptr, i32 } %533, 1
  store i32 %535, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %589

536:                                              ; preds = %549, %545, %544, %526, %521
  %537 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %538 = extractvalue { ptr, i32 } %537, 0
  store ptr %538, ptr %7, align 8
  %539 = extractvalue { ptr, i32 } %537, 1
  store i32 %539, ptr %8, align 4
  br label %581

540:                                              ; preds = %528
  %541 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %542 = extractvalue { ptr, i32 } %541, 0
  store ptr %542, ptr %7, align 8
  %543 = extractvalue { ptr, i32 } %541, 1
  store i32 %543, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %581

544:                                              ; preds = %525
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %545 unwind label %536

545:                                              ; preds = %544
  %546 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.8)
          to label %547 unwind label %536

547:                                              ; preds = %545
  br i1 %546, label %548, label %549

548:                                              ; preds = %547
  store i32 17, ptr %17, align 4, !tbaa !52
  br label %580

549:                                              ; preds = %547
  %550 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef @.str.9)
          to label %551 unwind label %536

551:                                              ; preds = %549
  br i1 %550, label %552, label %553

552:                                              ; preds = %551
  store i32 18, ptr %17, align 4, !tbaa !52
  br label %579

553:                                              ; preds = %551
  store i1 true, ptr %45, align 1
  %554 = call ptr @__cxa_allocate_exception(i64 40) #11
  call void @llvm.lifetime.start.p0(i64 376, ptr %44) #11
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %44)
          to label %555 unwind label %562

555:                                              ; preds = %553
  %556 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA23_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %44, ptr noundef nonnull align 1 dereferenceable(23) @.str.10)
          to label %557 unwind label %566

557:                                              ; preds = %555
  %558 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEENS0_12basic_stringIcS3_S4_EEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %556, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %559 unwind label %566

559:                                              ; preds = %557
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(112) %558)
          to label %560 unwind label %566

560:                                              ; preds = %559
  invoke void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %554, ptr noundef %43)
          to label %561 unwind label %570

561:                                              ; preds = %560
  store i1 false, ptr %45, align 1
  invoke void @__cxa_throw(ptr %554, ptr @_ZTIN12CompileError7GenericE, ptr @_ZN12CompileError7GenericD2Ev) #12
          to label %1759 unwind label %570

562:                                              ; preds = %553
  %563 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %7, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %8, align 4
  br label %575

566:                                              ; preds = %559, %557, %555
  %567 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %568 = extractvalue { ptr, i32 } %567, 0
  store ptr %568, ptr %7, align 8
  %569 = extractvalue { ptr, i32 } %567, 1
  store i32 %569, ptr %8, align 4
  br label %574

570:                                              ; preds = %561, %560
  %571 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %572 = extractvalue { ptr, i32 } %571, 0
  store ptr %572, ptr %7, align 8
  %573 = extractvalue { ptr, i32 } %571, 1
  store i32 %573, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %574

574:                                              ; preds = %570, %566
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %44) #11
  br label %575

575:                                              ; preds = %574, %562
  call void @llvm.lifetime.end.p0(i64 376, ptr %44) #11
  %576 = load i1, ptr %45, align 1
  br i1 %576, label %577, label %578

577:                                              ; preds = %575
  call void @__cxa_free_exception(ptr %554) #11
  br label %578

578:                                              ; preds = %577, %575
  br label %581

579:                                              ; preds = %552
  br label %580

580:                                              ; preds = %579, %548
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #11
  br label %584

581:                                              ; preds = %578, %540, %536
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #11
  br label %589

582:                                              ; preds = %519
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %583 unwind label %499

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583, %580
  %585 = load double, ptr %35, align 8, !tbaa !59
  %586 = load i32, ptr %17, align 4, !tbaa !52
  invoke void @_ZN5Token10make_floatEd9eCoreType(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, double noundef %585, i32 noundef %586)
          to label %587 unwind label %499

587:                                              ; preds = %584
  store i32 1, ptr %12, align 4
  br label %588

588:                                              ; preds = %587, %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %729

589:                                              ; preds = %581, %532, %499
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %730

590:                                              ; preds = %320
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %46, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  %591 = getelementptr inbounds %struct.Codepoint, ptr %46, i32 0, i32 0
  %592 = load i32, ptr %591, align 4
  %593 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %592)
          to label %594 unwind label %352

594:                                              ; preds = %590
  br i1 %593, label %595, label %721

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  br label %596

596:                                              ; preds = %605, %595
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %48, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  %597 = getelementptr inbounds %struct.Codepoint, ptr %48, i32 0, i32 0
  %598 = load i32, ptr %597, align 4
  %599 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %598)
          to label %600 unwind label %607

600:                                              ; preds = %596
  br i1 %599, label %601, label %615

601:                                              ; preds = %600
  %602 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %603 unwind label %607

603:                                              ; preds = %601
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %604 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %605 unwind label %611

605:                                              ; preds = %603
  %606 = getelementptr inbounds %struct.Codepoint, ptr %49, i32 0, i32 0
  store i32 %604, ptr %606, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %49, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %596, !llvm.loop !62

607:                                              ; preds = %713, %668, %664, %660, %656, %652, %648, %644, %640, %636, %632, %628, %624, %620, %616, %615, %601, %596
  %608 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %609 = extractvalue { ptr, i32 } %608, 0
  store ptr %609, ptr %7, align 8
  %610 = extractvalue { ptr, i32 } %608, 1
  store i32 %610, ptr %8, align 4
  br label %720

611:                                              ; preds = %603
  %612 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %613 = extractvalue { ptr, i32 } %612, 0
  store ptr %613, ptr %7, align 8
  %614 = extractvalue { ptr, i32 } %612, 1
  store i32 %614, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %720

615:                                              ; preds = %600
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %616 unwind label %607

616:                                              ; preds = %615
  %617 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.11)
          to label %618 unwind label %607

618:                                              ; preds = %616
  br i1 %617, label %619, label %620

619:                                              ; preds = %618
  store i32 8, ptr %17, align 4, !tbaa !52
  br label %713

620:                                              ; preds = %618
  %621 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.12)
          to label %622 unwind label %607

622:                                              ; preds = %620
  br i1 %621, label %623, label %624

623:                                              ; preds = %622
  store i32 10, ptr %17, align 4, !tbaa !52
  br label %712

624:                                              ; preds = %622
  %625 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.13)
          to label %626 unwind label %607

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

627:                                              ; preds = %626
  store i32 12, ptr %17, align 4, !tbaa !52
  br label %711

628:                                              ; preds = %626
  %629 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.14)
          to label %630 unwind label %607

630:                                              ; preds = %628
  br i1 %629, label %631, label %632

631:                                              ; preds = %630
  store i32 14, ptr %17, align 4, !tbaa !52
  br label %710

632:                                              ; preds = %630
  %633 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.15)
          to label %634 unwind label %607

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

635:                                              ; preds = %634
  store i32 16, ptr %17, align 4, !tbaa !52
  br label %709

636:                                              ; preds = %634
  %637 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.16)
          to label %638 unwind label %607

638:                                              ; preds = %636
  br i1 %637, label %639, label %640

639:                                              ; preds = %638
  store i32 6, ptr %17, align 4, !tbaa !52
  br label %708

640:                                              ; preds = %638
  %641 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.17)
          to label %642 unwind label %607

642:                                              ; preds = %640
  br i1 %641, label %643, label %644

643:                                              ; preds = %642
  store i32 7, ptr %17, align 4, !tbaa !52
  br label %707

644:                                              ; preds = %642
  %645 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.18)
          to label %646 unwind label %607

646:                                              ; preds = %644
  br i1 %645, label %647, label %648

647:                                              ; preds = %646
  store i32 9, ptr %17, align 4, !tbaa !52
  br label %706

648:                                              ; preds = %646
  %649 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.19)
          to label %650 unwind label %607

650:                                              ; preds = %648
  br i1 %649, label %651, label %652

651:                                              ; preds = %650
  store i32 11, ptr %17, align 4, !tbaa !52
  br label %705

652:                                              ; preds = %650
  %653 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.20)
          to label %654 unwind label %607

654:                                              ; preds = %652
  br i1 %653, label %655, label %656

655:                                              ; preds = %654
  store i32 13, ptr %17, align 4, !tbaa !52
  br label %704

656:                                              ; preds = %654
  %657 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.21)
          to label %658 unwind label %607

658:                                              ; preds = %656
  br i1 %657, label %659, label %660

659:                                              ; preds = %658
  store i32 15, ptr %17, align 4, !tbaa !52
  br label %703

660:                                              ; preds = %658
  %661 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.22)
          to label %662 unwind label %607

662:                                              ; preds = %660
  br i1 %661, label %663, label %664

663:                                              ; preds = %662
  store i32 5, ptr %17, align 4, !tbaa !52
  br label %702

664:                                              ; preds = %662
  %665 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.8)
          to label %666 unwind label %607

666:                                              ; preds = %664
  br i1 %665, label %667, label %668

667:                                              ; preds = %666
  store i32 17, ptr %17, align 4, !tbaa !52
  br label %701

668:                                              ; preds = %666
  %669 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.9)
          to label %670 unwind label %607

670:                                              ; preds = %668
  br i1 %669, label %671, label %672

671:                                              ; preds = %670
  store i32 18, ptr %17, align 4, !tbaa !52
  br label %700

672:                                              ; preds = %670
  store i1 true, ptr %52, align 1
  %673 = call ptr @__cxa_allocate_exception(i64 40) #11
  call void @llvm.lifetime.start.p0(i64 376, ptr %51) #11
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51)
          to label %674 unwind label %683

674:                                              ; preds = %672
  %675 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA25_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %51, ptr noundef nonnull align 1 dereferenceable(25) @.str.23)
          to label %676 unwind label %687

676:                                              ; preds = %674
  %677 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEENS0_12basic_stringIcS3_S4_EEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %675, ptr noundef nonnull align 8 dereferenceable(32) %47)
          to label %678 unwind label %687

678:                                              ; preds = %676
  %679 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA2_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %677, ptr noundef nonnull align 1 dereferenceable(2) @.str.2)
          to label %680 unwind label %687

680:                                              ; preds = %678
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(112) %679)
          to label %681 unwind label %687

681:                                              ; preds = %680
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %673, ptr noundef nonnull align 8 dereferenceable(176) %161, ptr noundef %50)
          to label %682 unwind label %691

682:                                              ; preds = %681
  store i1 false, ptr %52, align 1
  invoke void @__cxa_throw(ptr %673, ptr @_ZTIN12CompileError7GenericE, ptr @_ZN12CompileError7GenericD2Ev) #12
          to label %1759 unwind label %691

683:                                              ; preds = %672
  %684 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %7, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %8, align 4
  br label %696

687:                                              ; preds = %680, %678, %676, %674
  %688 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %7, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %8, align 4
  br label %695

691:                                              ; preds = %682, %681
  %692 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %7, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %695

695:                                              ; preds = %691, %687
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %51) #11
  br label %696

696:                                              ; preds = %695, %683
  call void @llvm.lifetime.end.p0(i64 376, ptr %51) #11
  %697 = load i1, ptr %52, align 1
  br i1 %697, label %698, label %699

698:                                              ; preds = %696
  call void @__cxa_free_exception(ptr %673) #11
  br label %699

699:                                              ; preds = %698, %696
  br label %720

700:                                              ; preds = %671
  br label %701

701:                                              ; preds = %700, %667
  br label %702

702:                                              ; preds = %701, %663
  br label %703

703:                                              ; preds = %702, %659
  br label %704

704:                                              ; preds = %703, %655
  br label %705

705:                                              ; preds = %704, %651
  br label %706

706:                                              ; preds = %705, %647
  br label %707

707:                                              ; preds = %706, %643
  br label %708

708:                                              ; preds = %707, %639
  br label %709

709:                                              ; preds = %708, %635
  br label %710

710:                                              ; preds = %709, %631
  br label %711

711:                                              ; preds = %710, %627
  br label %712

712:                                              ; preds = %711, %623
  br label %713

713:                                              ; preds = %712, %619
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %53, ptr align 8 %19, i64 16, i1 false), !tbaa.struct !56
  %714 = load i32, ptr %17, align 4, !tbaa !52
  %715 = getelementptr inbounds { i64, i64 }, ptr %53, i32 0, i32 0
  %716 = load i64, ptr %715, align 8
  %717 = getelementptr inbounds { i64, i64 }, ptr %53, i32 0, i32 1
  %718 = load i64, ptr %717, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %716, i64 %718, i32 noundef %714)
          to label %719 unwind label %607

719:                                              ; preds = %713
  store i32 1, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #11
  br label %729

720:                                              ; preds = %699, %611, %607
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #11
  br label %730

721:                                              ; preds = %594
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %722 unwind label %352

722:                                              ; preds = %721
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %54, ptr align 8 %19, i64 16, i1 false), !tbaa.struct !56
  %723 = load i32, ptr %17, align 4, !tbaa !52
  %724 = getelementptr inbounds { i64, i64 }, ptr %54, i32 0, i32 0
  %725 = load i64, ptr %724, align 8
  %726 = getelementptr inbounds { i64, i64 }, ptr %54, i32 0, i32 1
  %727 = load i64, ptr %726, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %725, i64 %727, i32 noundef %723)
          to label %728 unwind label %352

728:                                              ; preds = %722
  store i32 1, ptr %12, align 4
  br label %729

729:                                              ; preds = %728, %719, %588, %445, %431, %413
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %972

730:                                              ; preds = %720, %589, %479, %446, %440, %406, %392, %376, %364, %360, %356, %352
  call void @llvm.lifetime.end.p0(i64 16, ptr %19) #11
  br label %731

731:                                              ; preds = %730, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %973

732:                                              ; preds = %301
  %733 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 98)
          to label %734 unwind label %344

734:                                              ; preds = %732
  br i1 %733, label %738, label %735

735:                                              ; preds = %734
  %736 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 114)
          to label %737 unwind label %344

737:                                              ; preds = %735
  br i1 %736, label %738, label %950

738:                                              ; preds = %737, %734
  call void @llvm.lifetime.start.p0(i64 1, ptr %55) #11
  store i8 0, ptr %55, align 1, !tbaa !63
  %739 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 98)
          to label %740 unwind label %745

740:                                              ; preds = %738
  br i1 %739, label %741, label %753

741:                                              ; preds = %740
  store i8 1, ptr %55, align 1, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %742 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %743 unwind label %749

743:                                              ; preds = %741
  %744 = getelementptr inbounds %struct.Codepoint, ptr %56, i32 0, i32 0
  store i32 %742, ptr %744, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %56, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %753

745:                                              ; preds = %942, %941, %940, %939, %927, %923, %847, %842, %766, %756, %753, %738
  %746 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %747 = extractvalue { ptr, i32 } %746, 0
  store ptr %747, ptr %7, align 8
  %748 = extractvalue { ptr, i32 } %746, 1
  store i32 %748, ptr %8, align 4
  br label %949

749:                                              ; preds = %741
  %750 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %7, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %949

753:                                              ; preds = %743, %740
  %754 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 114)
          to label %755 unwind label %745

755:                                              ; preds = %753
  br i1 %754, label %756, label %760

756:                                              ; preds = %755
  %757 = load i8, ptr %55, align 1, !tbaa !63, !range !64, !noundef !65
  %758 = trunc i8 %757 to i1
  invoke void @_ZN5Lexer21getTokenInt_RawStringEb(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %161, i1 noundef zeroext %758)
          to label %759 unwind label %745

759:                                              ; preds = %756
  store i32 1, ptr %12, align 4
  br label %948

760:                                              ; preds = %755
  %761 = load i8, ptr %55, align 1, !tbaa !63, !range !64, !noundef !65
  %762 = trunc i8 %761 to i1
  br i1 %762, label %763, label %764

763:                                              ; preds = %760
  br label %766

764:                                              ; preds = %760
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.7, i32 noundef 539, ptr noundef @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #13
  unreachable

765:                                              ; No predecessors!
  br label %766

766:                                              ; preds = %765, %763
  %767 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 34)
          to label %768 unwind label %745

768:                                              ; preds = %766
  br i1 %767, label %769, label %842

769:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  br label %770

770:                                              ; preds = %825, %769
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %771 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %772 unwind label %791

772:                                              ; preds = %770
  %773 = getelementptr inbounds %struct.Codepoint, ptr %58, i32 0, i32 0
  store i32 %771, ptr %773, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %58, i64 4, i1 false), !tbaa.struct !46
  %774 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 34)
          to label %775 unwind label %791

775:                                              ; preds = %772
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br i1 %774, label %776, label %826

776:                                              ; preds = %775
  %777 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 92)
          to label %778 unwind label %795

778:                                              ; preds = %776
  br i1 %777, label %779, label %822

779:                                              ; preds = %778
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %780 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %161, i8 noundef signext 34)
          to label %781 unwind label %799

781:                                              ; preds = %779
  store i32 %780, ptr %59, align 4, !tbaa !47
  %782 = load i32, ptr %59, align 4, !tbaa !47
  %783 = icmp ne i32 %782, -1
  br i1 %783, label %784, label %820

784:                                              ; preds = %781
  %785 = load i32, ptr %59, align 4, !tbaa !47
  %786 = icmp ugt i32 %785, 256
  br i1 %786, label %787, label %815

787:                                              ; preds = %784
  store i1 true, ptr %62, align 1
  %788 = call ptr @__cxa_allocate_exception(i64 40) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %61) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %60, ptr noundef @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %61)
          to label %789 unwind label %803

789:                                              ; preds = %787
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %788, ptr noundef nonnull align 8 dereferenceable(176) %161, ptr noundef %60)
          to label %790 unwind label %807

790:                                              ; preds = %789
  store i1 false, ptr %62, align 1
  invoke void @__cxa_throw(ptr %788, ptr @_ZTIN12CompileError7GenericE, ptr @_ZN12CompileError7GenericD2Ev) #12
          to label %1759 unwind label %807

791:                                              ; preds = %772, %770
  %792 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %793 = extractvalue { ptr, i32 } %792, 0
  store ptr %793, ptr %7, align 8
  %794 = extractvalue { ptr, i32 } %792, 1
  store i32 %794, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %841

795:                                              ; preds = %822, %776
  %796 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %797 = extractvalue { ptr, i32 } %796, 0
  store ptr %797, ptr %7, align 8
  %798 = extractvalue { ptr, i32 } %796, 1
  store i32 %798, ptr %8, align 4
  br label %841

799:                                              ; preds = %815, %779
  %800 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %801 = extractvalue { ptr, i32 } %800, 0
  store ptr %801, ptr %7, align 8
  %802 = extractvalue { ptr, i32 } %800, 1
  store i32 %802, ptr %8, align 4
  br label %821

803:                                              ; preds = %787
  %804 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %805 = extractvalue { ptr, i32 } %804, 0
  store ptr %805, ptr %7, align 8
  %806 = extractvalue { ptr, i32 } %804, 1
  store i32 %806, ptr %8, align 4
  br label %811

807:                                              ; preds = %790, %789
  %808 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %7, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #11
  br label %811

811:                                              ; preds = %807, %803
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %61) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %61) #11
  %812 = load i1, ptr %62, align 1
  br i1 %812, label %813, label %814

813:                                              ; preds = %811
  call void @__cxa_free_exception(ptr %788) #11
  br label %814

814:                                              ; preds = %813, %811
  br label %821

815:                                              ; preds = %784
  %816 = load i32, ptr %59, align 4, !tbaa !47
  %817 = trunc i32 %816 to i8
  %818 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %57, i8 noundef signext %817)
          to label %819 unwind label %799

819:                                              ; preds = %815
  br label %820

820:                                              ; preds = %819, %781
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %825

821:                                              ; preds = %814, %799
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %841

822:                                              ; preds = %778
  %823 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %824 unwind label %795

824:                                              ; preds = %822
  br label %825

825:                                              ; preds = %824, %820
  br label %770, !llvm.loop !66

826:                                              ; preds = %775
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  %827 = load ptr, ptr %161, align 8, !tbaa !67
  %828 = getelementptr inbounds ptr, ptr %827, i64 8
  %829 = load ptr, ptr %828, align 8
  invoke void %829(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %64, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %830 unwind label %832

830:                                              ; preds = %826
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 20, ptr noundef %63, ptr noundef %64)
          to label %831 unwind label %836

831:                                              ; preds = %830
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  store i32 1, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #11
  br label %948

832:                                              ; preds = %826
  %833 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %7, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %8, align 4
  br label %840

836:                                              ; preds = %830
  %837 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %7, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %8, align 4
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #11
  br label %840

840:                                              ; preds = %836, %832
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  br label %841

841:                                              ; preds = %840, %821, %795, %791
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #11
  br label %949

842:                                              ; preds = %768
  %843 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 39)
          to label %844 unwind label %745

844:                                              ; preds = %842
  br i1 %843, label %845, label %933

845:                                              ; preds = %844
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %846 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %847 unwind label %863

847:                                              ; preds = %845
  %848 = getelementptr inbounds %struct.Codepoint, ptr %65, i32 0, i32 0
  store i32 %846, ptr %848, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %16, ptr align 4 %65, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  %849 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %16, i8 noundef signext 92)
          to label %850 unwind label %745

850:                                              ; preds = %847
  br i1 %849, label %851, label %897

851:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %852 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %161, i8 noundef signext 39)
          to label %853 unwind label %867

853:                                              ; preds = %851
  store i32 %852, ptr %66, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %854 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %855 unwind label %871

855:                                              ; preds = %853
  %856 = getelementptr inbounds %struct.Codepoint, ptr %67, i32 0, i32 0
  store i32 %854, ptr %856, align 4
  %857 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %67, i8 noundef signext 39)
          to label %858 unwind label %871

858:                                              ; preds = %855
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br i1 %857, label %859, label %887

859:                                              ; preds = %858
  store i1 true, ptr %70, align 1
  %860 = call ptr @__cxa_allocate_exception(i64 40) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %69) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %68, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %69)
          to label %861 unwind label %875

861:                                              ; preds = %859
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %860, ptr noundef nonnull align 8 dereferenceable(176) %161, ptr noundef %68)
          to label %862 unwind label %879

862:                                              ; preds = %861
  store i1 false, ptr %70, align 1
  invoke void @__cxa_throw(ptr %860, ptr @_ZTIN12CompileError7GenericE, ptr @_ZN12CompileError7GenericD2Ev) #12
          to label %1759 unwind label %879

863:                                              ; preds = %845
  %864 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %7, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %949

867:                                              ; preds = %890, %887, %851
  %868 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %7, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %8, align 4
  br label %896

871:                                              ; preds = %855, %853
  %872 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %7, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %896

875:                                              ; preds = %859
  %876 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %7, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %8, align 4
  br label %883

879:                                              ; preds = %862, %861
  %880 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %881 = extractvalue { ptr, i32 } %880, 0
  store ptr %881, ptr %7, align 8
  %882 = extractvalue { ptr, i32 } %880, 1
  store i32 %882, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #11
  br label %883

883:                                              ; preds = %879, %875
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %69) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %69) #11
  %884 = load i1, ptr %70, align 1
  br i1 %884, label %885, label %886

885:                                              ; preds = %883
  call void @__cxa_free_exception(ptr %860) #11
  br label %886

886:                                              ; preds = %885, %883
  br label %896

887:                                              ; preds = %858
  %888 = load i32, ptr %66, align 4, !tbaa !47
  %889 = zext i32 %888 to i64
  invoke void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %71, i64 noundef %889, i64 noundef 0)
          to label %890 unwind label %867

890:                                              ; preds = %887
  %891 = getelementptr inbounds { i64, i64 }, ptr %71, i32 0, i32 0
  %892 = load i64, ptr %891, align 8
  %893 = getelementptr inbounds { i64, i64 }, ptr %71, i32 0, i32 1
  %894 = load i64, ptr %893, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %892, i64 %894, i32 noundef 7)
          to label %895 unwind label %867

895:                                              ; preds = %890
  store i32 1, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %948

896:                                              ; preds = %886, %871, %867
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %949

897:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %898 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %899 unwind label %907

899:                                              ; preds = %897
  %900 = getelementptr inbounds %struct.Codepoint, ptr %72, i32 0, i32 0
  store i32 %898, ptr %900, align 4
  %901 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %72, i8 noundef signext 39)
          to label %902 unwind label %907

902:                                              ; preds = %899
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br i1 %901, label %903, label %923

903:                                              ; preds = %902
  store i1 true, ptr %75, align 1
  %904 = call ptr @__cxa_allocate_exception(i64 40) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %74) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %74)
          to label %905 unwind label %911

905:                                              ; preds = %903
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %904, ptr noundef nonnull align 8 dereferenceable(176) %161, ptr noundef %73)
          to label %906 unwind label %915

906:                                              ; preds = %905
  store i1 false, ptr %75, align 1
  invoke void @__cxa_throw(ptr %904, ptr @_ZTIN12CompileError7GenericE, ptr @_ZN12CompileError7GenericD2Ev) #12
          to label %1759 unwind label %915

907:                                              ; preds = %899, %897
  %908 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %909 = extractvalue { ptr, i32 } %908, 0
  store ptr %909, ptr %7, align 8
  %910 = extractvalue { ptr, i32 } %908, 1
  store i32 %910, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %949

911:                                              ; preds = %903
  %912 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %913 = extractvalue { ptr, i32 } %912, 0
  store ptr %913, ptr %7, align 8
  %914 = extractvalue { ptr, i32 } %912, 1
  store i32 %914, ptr %8, align 4
  br label %919

915:                                              ; preds = %906, %905
  %916 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %917 = extractvalue { ptr, i32 } %916, 0
  store ptr %917, ptr %7, align 8
  %918 = extractvalue { ptr, i32 } %916, 1
  store i32 %918, ptr %8, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #11
  br label %919

919:                                              ; preds = %915, %911
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %74) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %74) #11
  %920 = load i1, ptr %75, align 1
  br i1 %920, label %921, label %922

921:                                              ; preds = %919
  call void @__cxa_free_exception(ptr %904) #11
  br label %922

922:                                              ; preds = %921, %919
  br label %949

923:                                              ; preds = %902
  %924 = getelementptr inbounds %struct.Codepoint, ptr %16, i32 0, i32 0
  %925 = load i32, ptr %924, align 4, !tbaa !48
  %926 = zext i32 %925 to i64
  invoke void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %76, i64 noundef %926, i64 noundef 0)
          to label %927 unwind label %745

927:                                              ; preds = %923
  %928 = getelementptr inbounds { i64, i64 }, ptr %76, i32 0, i32 0
  %929 = load i64, ptr %928, align 8
  %930 = getelementptr inbounds { i64, i64 }, ptr %76, i32 0, i32 1
  %931 = load i64, ptr %930, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %929, i64 %931, i32 noundef 7)
          to label %932 unwind label %745

932:                                              ; preds = %927
  store i32 1, ptr %12, align 4
  br label %948

933:                                              ; preds = %844
  %934 = load i8, ptr %55, align 1, !tbaa !63, !range !64, !noundef !65
  %935 = trunc i8 %934 to i1
  br i1 %935, label %936, label %937

936:                                              ; preds = %933
  br label %939

937:                                              ; preds = %933
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.7, i32 noundef 577, ptr noundef @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #13
  unreachable

938:                                              ; No predecessors!
  br label %939

939:                                              ; preds = %938, %936
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %940 unwind label %745

940:                                              ; preds = %939
  invoke void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %77, i32 noundef 98)
          to label %941 unwind label %745

941:                                              ; preds = %940
  invoke void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %78, i32 noundef 0)
          to label %942 unwind label %745

942:                                              ; preds = %941
  %943 = getelementptr inbounds %struct.Codepoint, ptr %77, i32 0, i32 0
  %944 = load i32, ptr %943, align 4
  %945 = getelementptr inbounds %struct.Codepoint, ptr %78, i32 0, i32 0
  %946 = load i32, ptr %945, align 4
  invoke void @_ZN5Lexer22getTokenInt_IdentifierE9CodepointS0_b(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %161, i32 %944, i32 %946, i1 noundef zeroext true)
          to label %947 unwind label %745

947:                                              ; preds = %942
  store i32 1, ptr %12, align 4
  br label %948

948:                                              ; preds = %947, %932, %895, %831, %759
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #11
  br label %972

949:                                              ; preds = %922, %907, %896, %863, %841, %749, %745
  call void @llvm.lifetime.end.p0(i64 1, ptr %55) #11
  br label %973

950:                                              ; preds = %737
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %79, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  %951 = getelementptr inbounds %struct.Codepoint, ptr %79, i32 0, i32 0
  %952 = load i32, ptr %951, align 4
  %953 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %952)
          to label %954 unwind label %344

954:                                              ; preds = %950
  br i1 %953, label %955, label %962

955:                                              ; preds = %954
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %80, ptr align 4 %16, i64 4, i1 false), !tbaa.struct !46
  invoke void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %81, i32 noundef 0)
          to label %956 unwind label %344

956:                                              ; preds = %955
  %957 = getelementptr inbounds %struct.Codepoint, ptr %80, i32 0, i32 0
  %958 = load i32, ptr %957, align 4
  %959 = getelementptr inbounds %struct.Codepoint, ptr %81, i32 0, i32 0
  %960 = load i32, ptr %959, align 4
  invoke void @_ZN5Lexer22getTokenInt_IdentifierE9CodepointS0_b(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %161, i32 %958, i32 %960, i1 noundef zeroext true)
          to label %961 unwind label %344

961:                                              ; preds = %956
  store i32 1, ptr %12, align 4
  br label %972

962:                                              ; preds = %954
  %963 = call ptr @__cxa_allocate_exception(i64 8) #11
  %964 = getelementptr inbounds %struct.Codepoint, ptr %16, i32 0, i32 0
  %965 = load i32, ptr %964, align 4, !tbaa !48
  %966 = trunc i32 %965 to i8
  invoke void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8) %963, ptr noundef nonnull align 8 dereferenceable(176) %161, i8 noundef signext %966)
          to label %967 unwind label %968

967:                                              ; preds = %962
  invoke void @__cxa_throw(ptr %963, ptr @_ZTIN10ParseError7BadCharE, ptr @_ZN10ParseError7BadCharD1Ev) #12
          to label %1759 unwind label %344

968:                                              ; preds = %962
  %969 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %970 = extractvalue { ptr, i32 } %969, 0
  store ptr %970, ptr %7, align 8
  %971 = extractvalue { ptr, i32 } %969, 1
  store i32 %971, ptr %8, align 4
  call void @__cxa_free_exception(ptr %963) #11
  br label %973

972:                                              ; preds = %961, %948, %729
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %1729

973:                                              ; preds = %968, %949, %731, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %1733

974:                                              ; preds = %293
  %975 = load i32, ptr %15, align 4, !tbaa !47
  %976 = icmp sgt i32 %975, 0
  br i1 %976, label %977, label %1025

977:                                              ; preds = %974
  %978 = load i32, ptr %15, align 4, !tbaa !47
  %979 = icmp eq i32 %978, 46
  br i1 %979, label %980, label %1022

980:                                              ; preds = %977
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %981 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %982 unwind label %1001

982:                                              ; preds = %980
  %983 = getelementptr inbounds %struct.Codepoint, ptr %82, i32 0, i32 0
  store i32 %981, ptr %983, align 4
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %984 unwind label %1001

984:                                              ; preds = %982
  %985 = invoke noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4) %82)
          to label %986 unwind label %1001

986:                                              ; preds = %984
  br i1 %985, label %987, label %1019

987:                                              ; preds = %986
  call void @llvm.lifetime.start.p0(i64 16, ptr %83) #11
  %988 = invoke { i64, i64 } @_ZN5Lexer8parseIntEPNS_7NumModeE(ptr noundef nonnull align 8 dereferenceable(256) %161, ptr noundef null)
          to label %989 unwind label %1005

989:                                              ; preds = %987
  %990 = getelementptr inbounds { i64, i64 }, ptr %83, i32 0, i32 0
  %991 = extractvalue { i64, i64 } %988, 0
  store i64 %991, ptr %990, align 8
  %992 = getelementptr inbounds { i64, i64 }, ptr %83, i32 0, i32 1
  %993 = extractvalue { i64, i64 } %988, 1
  store i64 %993, ptr %992, align 8
  %994 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %84) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %85, ptr align 8 %83, i64 16, i1 false), !tbaa.struct !56
  %995 = getelementptr inbounds { i64, i64 }, ptr %85, i32 0, i32 0
  %996 = load i64, ptr %995, align 8
  %997 = getelementptr inbounds { i64, i64 }, ptr %85, i32 0, i32 1
  %998 = load i64, ptr %997, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %84, i64 %996, i64 %998, i32 noundef 1)
          to label %999 unwind label %1009

999:                                              ; preds = %989
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %994, ptr noundef nonnull align 8 dereferenceable(88) %84)
          to label %1000 unwind label %1013

1000:                                             ; preds = %999
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %84) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %84) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #11
  br label %1020

1001:                                             ; preds = %984, %982, %980
  %1002 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1003 = extractvalue { ptr, i32 } %1002, 0
  store ptr %1003, ptr %7, align 8
  %1004 = extractvalue { ptr, i32 } %1002, 1
  store i32 %1004, ptr %8, align 4
  br label %1021

1005:                                             ; preds = %987
  %1006 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1007 = extractvalue { ptr, i32 } %1006, 0
  store ptr %1007, ptr %7, align 8
  %1008 = extractvalue { ptr, i32 } %1006, 1
  store i32 %1008, ptr %8, align 4
  br label %1018

1009:                                             ; preds = %989
  %1010 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1011 = extractvalue { ptr, i32 } %1010, 0
  store ptr %1011, ptr %7, align 8
  %1012 = extractvalue { ptr, i32 } %1010, 1
  store i32 %1012, ptr %8, align 4
  br label %1017

1013:                                             ; preds = %999
  %1014 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1015 = extractvalue { ptr, i32 } %1014, 0
  store ptr %1015, ptr %7, align 8
  %1016 = extractvalue { ptr, i32 } %1014, 1
  store i32 %1016, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %84) #11
  br label %1017

1017:                                             ; preds = %1013, %1009
  call void @llvm.lifetime.end.p0(i64 88, ptr %84) #11
  br label %1018

1018:                                             ; preds = %1017, %1005
  call void @llvm.lifetime.end.p0(i64 16, ptr %83) #11
  br label %1021

1019:                                             ; preds = %986
  br label %1020

1020:                                             ; preds = %1019, %1000
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %1022

1021:                                             ; preds = %1018, %1001
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %1733

1022:                                             ; preds = %1020, %977
  %1023 = load i32, ptr %15, align 4, !tbaa !47
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef %1023)
          to label %1024 unwind label %340

1024:                                             ; preds = %1022
  store i32 1, ptr %12, align 4
  br label %1729

1025:                                             ; preds = %974
  %1026 = load i32, ptr %15, align 4, !tbaa !47
  switch i32 %1026, label %1725 [
    i32 -1, label %1027
    i32 -2, label %1212
    i32 -3, label %1464
    i32 -4, label %1667
  ]

1027:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %1028 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1029 unwind label %1042

1029:                                             ; preds = %1027
  %1030 = getelementptr inbounds %struct.Codepoint, ptr %87, i32 0, i32 0
  store i32 %1028, ptr %1030, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr %88) #11
  store i8 0, ptr %88, align 1, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 1, ptr %89) #11
  store i8 0, ptr %89, align 1, !tbaa !63
  %1031 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %87, i8 noundef signext 47)
          to label %1032 unwind label %1046

1032:                                             ; preds = %1029
  br i1 %1031, label %1033, label %1056

1033:                                             ; preds = %1032
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %1034 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1035 unwind label %1050

1035:                                             ; preds = %1033
  %1036 = getelementptr inbounds %struct.Codepoint, ptr %90, i32 0, i32 0
  store i32 %1034, ptr %1036, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %87, ptr align 4 %90, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  %1037 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %87, i8 noundef signext 47)
          to label %1038 unwind label %1046

1038:                                             ; preds = %1035
  br i1 %1037, label %1039, label %1054

1039:                                             ; preds = %1038
  %1040 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.27)
          to label %1041 unwind label %1046

1041:                                             ; preds = %1039
  br label %1055

1042:                                             ; preds = %1027
  %1043 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1044 = extractvalue { ptr, i32 } %1043, 0
  store ptr %1044, ptr %7, align 8
  %1045 = extractvalue { ptr, i32 } %1043, 1
  store i32 %1045, ptr %8, align 4
  br label %1211

1046:                                             ; preds = %1193, %1191, %1087, %1077, %1072, %1069, %1056, %1039, %1035, %1029
  %1047 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1048 = extractvalue { ptr, i32 } %1047, 0
  store ptr %1048, ptr %7, align 8
  %1049 = extractvalue { ptr, i32 } %1047, 1
  store i32 %1049, ptr %8, align 4
  br label %1210

1050:                                             ; preds = %1033
  %1051 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1052 = extractvalue { ptr, i32 } %1051, 0
  store ptr %1052, ptr %7, align 8
  %1053 = extractvalue { ptr, i32 } %1051, 1
  store i32 %1053, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %1210

1054:                                             ; preds = %1038
  store i8 1, ptr %88, align 1, !tbaa !63
  br label %1055

1055:                                             ; preds = %1054, %1041
  br label %1068

1056:                                             ; preds = %1032
  %1057 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %87, i8 noundef signext 33)
          to label %1058 unwind label %1046

1058:                                             ; preds = %1056
  br i1 %1057, label %1059, label %1067

1059:                                             ; preds = %1058
  store i8 1, ptr %89, align 1, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %1060 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1061 unwind label %1063

1061:                                             ; preds = %1059
  %1062 = getelementptr inbounds %struct.Codepoint, ptr %91, i32 0, i32 0
  store i32 %1060, ptr %1062, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %87, ptr align 4 %91, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %1067

1063:                                             ; preds = %1059
  %1064 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1065 = extractvalue { ptr, i32 } %1064, 0
  store ptr %1065, ptr %7, align 8
  %1066 = extractvalue { ptr, i32 } %1064, 1
  store i32 %1066, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %1210

1067:                                             ; preds = %1061, %1058
  br label %1068

1068:                                             ; preds = %1067, %1055
  br label %1069

1069:                                             ; preds = %1081, %1068
  %1070 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %87, i8 noundef signext 10)
          to label %1071 unwind label %1046

1071:                                             ; preds = %1069
  br i1 %1070, label %1072, label %1075

1072:                                             ; preds = %1071
  %1073 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %87, i8 noundef signext 13)
          to label %1074 unwind label %1046

1074:                                             ; preds = %1072
  br label %1075

1075:                                             ; preds = %1074, %1071
  %1076 = phi i1 [ false, %1071 ], [ %1073, %1074 ]
  br i1 %1076, label %1077, label %1087

1077:                                             ; preds = %1075
  %1078 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 4 dereferenceable(4) %87)
          to label %1079 unwind label %1046

1079:                                             ; preds = %1077
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %1080 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1081 unwind label %1083

1081:                                             ; preds = %1079
  %1082 = getelementptr inbounds %struct.Codepoint, ptr %92, i32 0, i32 0
  store i32 %1080, ptr %1082, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %87, ptr align 4 %92, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %1069, !llvm.loop !69

1083:                                             ; preds = %1079
  %1084 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1085 = extractvalue { ptr, i32 } %1084, 0
  store ptr %1085, ptr %7, align 8
  %1086 = extractvalue { ptr, i32 } %1084, 1
  store i32 %1086, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %1210

1087:                                             ; preds = %1075
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1088 unwind label %1046

1088:                                             ; preds = %1087
  %1089 = load i8, ptr %88, align 1, !tbaa !63, !range !64, !noundef !65
  %1090 = trunc i8 %1089 to i1
  br i1 %1090, label %1094, label %1091

1091:                                             ; preds = %1088
  %1092 = load i8, ptr %89, align 1, !tbaa !63, !range !64, !noundef !65
  %1093 = trunc i8 %1092 to i1
  br i1 %1093, label %1094, label %1193

1094:                                             ; preds = %1091, %1088
  %1095 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %93) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %93, i32 noundef 30)
          to label %1096 unwind label %1122

1096:                                             ; preds = %1094
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1095, ptr noundef nonnull align 8 dereferenceable(88) %93)
          to label %1097 unwind label %1126

1097:                                             ; preds = %1096
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %93) #11
  %1098 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %94) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %95, ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  %1099 = load ptr, ptr %161, align 8, !tbaa !67
  %1100 = getelementptr inbounds ptr, ptr %1099, i64 8
  %1101 = load ptr, ptr %1100, align 8
  invoke void %1101(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %96, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1102 unwind label %1131

1102:                                             ; preds = %1097
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %94, i32 noundef 19, ptr noundef %95, ptr noundef %96)
          to label %1103 unwind label %1135

1103:                                             ; preds = %1102
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1098, ptr noundef nonnull align 8 dereferenceable(88) %94)
          to label %1104 unwind label %1139

1104:                                             ; preds = %1103
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #11
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %94) #11
  %1105 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %97) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %97, i32 noundef 50)
          to label %1106 unwind label %1145

1106:                                             ; preds = %1104
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1105, ptr noundef nonnull align 8 dereferenceable(88) %97)
          to label %1107 unwind label %1149

1107:                                             ; preds = %1106
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %97) #11
  %1108 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %98) #11
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind writable sret(%class.RcString) align 8 %100, ptr noundef @.str.28)
          to label %1109 unwind label %1154

1109:                                             ; preds = %1107
  invoke void @_ZN5IdentC2E8RcString(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef %100)
          to label %1110 unwind label %1158

1110:                                             ; preds = %1109
  invoke void @_ZN5TokenC1E10eTokenType5Ident(ptr noundef nonnull align 8 dereferenceable(88) %98, i32 noundef 14, ptr noundef %99)
          to label %1111 unwind label %1162

1111:                                             ; preds = %1110
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1108, ptr noundef nonnull align 8 dereferenceable(88) %98)
          to label %1112 unwind label %1166

1112:                                             ; preds = %1111
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %98) #11
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %98) #11
  %1113 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %101) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %101, i32 noundef 29)
          to label %1114 unwind label %1173

1114:                                             ; preds = %1112
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1113, ptr noundef nonnull align 8 dereferenceable(88) %101)
          to label %1115 unwind label %1177

1115:                                             ; preds = %1114
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %101) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %101) #11
  %1116 = load i8, ptr %89, align 1, !tbaa !63, !range !64, !noundef !65
  %1117 = trunc i8 %1116 to i1
  br i1 %1117, label %1118, label %1191

1118:                                             ; preds = %1115
  %1119 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %102) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %102, i32 noundef 43)
          to label %1120 unwind label %1182

1120:                                             ; preds = %1118
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1119, ptr noundef nonnull align 8 dereferenceable(88) %102)
          to label %1121 unwind label %1186

1121:                                             ; preds = %1120
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %102) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %102) #11
  br label %1191

1122:                                             ; preds = %1094
  %1123 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %7, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %8, align 4
  br label %1130

1126:                                             ; preds = %1096
  %1127 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1128 = extractvalue { ptr, i32 } %1127, 0
  store ptr %1128, ptr %7, align 8
  %1129 = extractvalue { ptr, i32 } %1127, 1
  store i32 %1129, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %93) #11
  br label %1130

1130:                                             ; preds = %1126, %1122
  call void @llvm.lifetime.end.p0(i64 88, ptr %93) #11
  br label %1210

1131:                                             ; preds = %1097
  %1132 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1133 = extractvalue { ptr, i32 } %1132, 0
  store ptr %1133, ptr %7, align 8
  %1134 = extractvalue { ptr, i32 } %1132, 1
  store i32 %1134, ptr %8, align 4
  br label %1144

1135:                                             ; preds = %1102
  %1136 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1137 = extractvalue { ptr, i32 } %1136, 0
  store ptr %1137, ptr %7, align 8
  %1138 = extractvalue { ptr, i32 } %1136, 1
  store i32 %1138, ptr %8, align 4
  br label %1143

1139:                                             ; preds = %1103
  %1140 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1141 = extractvalue { ptr, i32 } %1140, 0
  store ptr %1141, ptr %7, align 8
  %1142 = extractvalue { ptr, i32 } %1140, 1
  store i32 %1142, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %94) #11
  br label %1143

1143:                                             ; preds = %1139, %1135
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %96) #11
  br label %1144

1144:                                             ; preds = %1143, %1131
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %95) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %94) #11
  br label %1210

1145:                                             ; preds = %1104
  %1146 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1147 = extractvalue { ptr, i32 } %1146, 0
  store ptr %1147, ptr %7, align 8
  %1148 = extractvalue { ptr, i32 } %1146, 1
  store i32 %1148, ptr %8, align 4
  br label %1153

1149:                                             ; preds = %1106
  %1150 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1151 = extractvalue { ptr, i32 } %1150, 0
  store ptr %1151, ptr %7, align 8
  %1152 = extractvalue { ptr, i32 } %1150, 1
  store i32 %1152, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %97) #11
  br label %1153

1153:                                             ; preds = %1149, %1145
  call void @llvm.lifetime.end.p0(i64 88, ptr %97) #11
  br label %1210

1154:                                             ; preds = %1107
  %1155 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1156 = extractvalue { ptr, i32 } %1155, 0
  store ptr %1156, ptr %7, align 8
  %1157 = extractvalue { ptr, i32 } %1155, 1
  store i32 %1157, ptr %8, align 4
  br label %1172

1158:                                             ; preds = %1109
  %1159 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1160 = extractvalue { ptr, i32 } %1159, 0
  store ptr %1160, ptr %7, align 8
  %1161 = extractvalue { ptr, i32 } %1159, 1
  store i32 %1161, ptr %8, align 4
  br label %1171

1162:                                             ; preds = %1110
  %1163 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1164 = extractvalue { ptr, i32 } %1163, 0
  store ptr %1164, ptr %7, align 8
  %1165 = extractvalue { ptr, i32 } %1163, 1
  store i32 %1165, ptr %8, align 4
  br label %1170

1166:                                             ; preds = %1111
  %1167 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %7, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %98) #11
  br label %1170

1170:                                             ; preds = %1166, %1162
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %99) #11
  br label %1171

1171:                                             ; preds = %1170, %1158
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %100) #11
  br label %1172

1172:                                             ; preds = %1171, %1154
  call void @llvm.lifetime.end.p0(i64 88, ptr %98) #11
  br label %1210

1173:                                             ; preds = %1112
  %1174 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1175 = extractvalue { ptr, i32 } %1174, 0
  store ptr %1175, ptr %7, align 8
  %1176 = extractvalue { ptr, i32 } %1174, 1
  store i32 %1176, ptr %8, align 4
  br label %1181

1177:                                             ; preds = %1114
  %1178 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1179 = extractvalue { ptr, i32 } %1178, 0
  store ptr %1179, ptr %7, align 8
  %1180 = extractvalue { ptr, i32 } %1178, 1
  store i32 %1180, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %101) #11
  br label %1181

1181:                                             ; preds = %1177, %1173
  call void @llvm.lifetime.end.p0(i64 88, ptr %101) #11
  br label %1210

1182:                                             ; preds = %1118
  %1183 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1184 = extractvalue { ptr, i32 } %1183, 0
  store ptr %1184, ptr %7, align 8
  %1185 = extractvalue { ptr, i32 } %1183, 1
  store i32 %1185, ptr %8, align 4
  br label %1190

1186:                                             ; preds = %1120
  %1187 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1188 = extractvalue { ptr, i32 } %1187, 0
  store ptr %1188, ptr %7, align 8
  %1189 = extractvalue { ptr, i32 } %1187, 1
  store i32 %1189, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %102) #11
  br label %1190

1190:                                             ; preds = %1186, %1182
  call void @llvm.lifetime.end.p0(i64 88, ptr %102) #11
  br label %1210

1191:                                             ; preds = %1121, %1115
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 21)
          to label %1192 unwind label %1046

1192:                                             ; preds = %1191
  store i32 1, ptr %12, align 4
  br label %1209

1193:                                             ; preds = %1091
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %103, ptr noundef nonnull align 8 dereferenceable(32) %86)
          to label %1194 unwind label %1046

1194:                                             ; preds = %1193
  %1195 = load ptr, ptr %161, align 8, !tbaa !67
  %1196 = getelementptr inbounds ptr, ptr %1195, i64 8
  %1197 = load ptr, ptr %1196, align 8
  invoke void %1197(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %104, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1198 unwind label %1200

1198:                                             ; preds = %1194
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 4, ptr noundef %103, ptr noundef %104)
          to label %1199 unwind label %1204

1199:                                             ; preds = %1198
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  store i32 1, ptr %12, align 4
  br label %1209

1200:                                             ; preds = %1194
  %1201 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1202 = extractvalue { ptr, i32 } %1201, 0
  store ptr %1202, ptr %7, align 8
  %1203 = extractvalue { ptr, i32 } %1201, 1
  store i32 %1203, ptr %8, align 4
  br label %1208

1204:                                             ; preds = %1198
  %1205 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1206 = extractvalue { ptr, i32 } %1205, 0
  store ptr %1206, ptr %7, align 8
  %1207 = extractvalue { ptr, i32 } %1205, 1
  store i32 %1207, ptr %8, align 4
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %104) #11
  br label %1208

1208:                                             ; preds = %1204, %1200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %103) #11
  br label %1210

1209:                                             ; preds = %1199, %1192
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #11
  br label %1729

1210:                                             ; preds = %1208, %1190, %1181, %1172, %1153, %1144, %1130, %1083, %1063, %1050, %1046
  call void @llvm.lifetime.end.p0(i64 1, ptr %89) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %88) #11
  br label %1211

1211:                                             ; preds = %1210, %1042
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #11
  br label %1733

1212:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %106) #11
  store i8 0, ptr %106, align 1, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 1, ptr %107) #11
  store i8 0, ptr %107, align 1, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %1213 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1214 unwind label %1227

1214:                                             ; preds = %1212
  %1215 = getelementptr inbounds %struct.Codepoint, ptr %108, i32 0, i32 0
  store i32 %1213, ptr %1215, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %108, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  %1216 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 42)
          to label %1217 unwind label %1231

1217:                                             ; preds = %1214
  br i1 %1216, label %1218, label %1261

1218:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %1219 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1220 unwind label %1235

1220:                                             ; preds = %1218
  %1221 = getelementptr inbounds %struct.Codepoint, ptr %109, i32 0, i32 0
  store i32 %1219, ptr %1221, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %109, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  %1222 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 42)
          to label %1223 unwind label %1231

1223:                                             ; preds = %1220
  br i1 %1222, label %1224, label %1239

1224:                                             ; preds = %1223
  %1225 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef @.str.29)
          to label %1226 unwind label %1231

1226:                                             ; preds = %1224
  br label %1260

1227:                                             ; preds = %1212
  %1228 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1229 = extractvalue { ptr, i32 } %1228, 0
  store ptr %1229, ptr %7, align 8
  %1230 = extractvalue { ptr, i32 } %1228, 1
  store i32 %1230, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %1463

1231:                                             ; preds = %1261, %1242, %1239, %1224, %1220, %1214
  %1232 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1233 = extractvalue { ptr, i32 } %1232, 0
  store ptr %1233, ptr %7, align 8
  %1234 = extractvalue { ptr, i32 } %1232, 1
  store i32 %1234, ptr %8, align 4
  br label %1463

1235:                                             ; preds = %1218
  %1236 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1237 = extractvalue { ptr, i32 } %1236, 0
  store ptr %1237, ptr %7, align 8
  %1238 = extractvalue { ptr, i32 } %1236, 1
  store i32 %1238, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %1463

1239:                                             ; preds = %1223
  %1240 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 47)
          to label %1241 unwind label %1231

1241:                                             ; preds = %1239
  br i1 %1240, label %1242, label %1258

1242:                                             ; preds = %1241
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %110, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %1243 unwind label %1231

1243:                                             ; preds = %1242
  %1244 = load ptr, ptr %161, align 8, !tbaa !67
  %1245 = getelementptr inbounds ptr, ptr %1244, i64 8
  %1246 = load ptr, ptr %1245, align 8
  invoke void %1246(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %111, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1247 unwind label %1249

1247:                                             ; preds = %1243
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 4, ptr noundef %110, ptr noundef %111)
          to label %1248 unwind label %1253

1248:                                             ; preds = %1247
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #11
  store i32 1, ptr %12, align 4
  br label %1462

1249:                                             ; preds = %1243
  %1250 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1251 = extractvalue { ptr, i32 } %1250, 0
  store ptr %1251, ptr %7, align 8
  %1252 = extractvalue { ptr, i32 } %1250, 1
  store i32 %1252, ptr %8, align 4
  br label %1257

1253:                                             ; preds = %1247
  %1254 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1255 = extractvalue { ptr, i32 } %1254, 0
  store ptr %1255, ptr %7, align 8
  %1256 = extractvalue { ptr, i32 } %1254, 1
  store i32 %1256, ptr %8, align 4
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %111) #11
  br label %1257

1257:                                             ; preds = %1253, %1249
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #11
  br label %1463

1258:                                             ; preds = %1241
  store i8 1, ptr %106, align 1, !tbaa !63
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

1260:                                             ; preds = %1259, %1226
  br label %1273

1261:                                             ; preds = %1217
  %1262 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 33)
          to label %1263 unwind label %1231

1263:                                             ; preds = %1261
  br i1 %1262, label %1264, label %1272

1264:                                             ; preds = %1263
  store i8 1, ptr %107, align 1, !tbaa !63
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %1265 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1266 unwind label %1268

1266:                                             ; preds = %1264
  %1267 = getelementptr inbounds %struct.Codepoint, ptr %112, i32 0, i32 0
  store i32 %1265, ptr %1267, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %112, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %1272

1268:                                             ; preds = %1264
  %1269 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1270 = extractvalue { ptr, i32 } %1269, 0
  store ptr %1270, ptr %7, align 8
  %1271 = extractvalue { ptr, i32 } %1269, 1
  store i32 %1271, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %1463

1272:                                             ; preds = %1266, %1263
  br label %1273

1273:                                             ; preds = %1272, %1260
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  store i32 0, ptr %113, align 4, !tbaa !47
  br label %1274

1274:                                             ; preds = %1333, %1273
  br label %1275

1275:                                             ; preds = %1274
  %1276 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 47)
          to label %1277 unwind label %1289

1277:                                             ; preds = %1275
  br i1 %1276, label %1278, label %1300

1278:                                             ; preds = %1277
  %1279 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %1280 unwind label %1289

1280:                                             ; preds = %1278
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %1281 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1282 unwind label %1293

1282:                                             ; preds = %1280
  %1283 = getelementptr inbounds %struct.Codepoint, ptr %114, i32 0, i32 0
  store i32 %1281, ptr %1283, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %114, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  %1284 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 42)
          to label %1285 unwind label %1289

1285:                                             ; preds = %1282
  br i1 %1284, label %1286, label %1297

1286:                                             ; preds = %1285
  %1287 = load i32, ptr %113, align 4, !tbaa !47
  %1288 = add i32 %1287, 1
  store i32 %1288, ptr %113, align 4, !tbaa !47
  br label %1297

1289:                                             ; preds = %1444, %1442, %1327, %1323, %1322, %1320, %1317, %1305, %1300, %1297, %1282, %1278, %1275
  %1290 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1291 = extractvalue { ptr, i32 } %1290, 0
  store ptr %1291, ptr %7, align 8
  %1292 = extractvalue { ptr, i32 } %1290, 1
  store i32 %1292, ptr %8, align 4
  br label %1461

1293:                                             ; preds = %1280
  %1294 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1295 = extractvalue { ptr, i32 } %1294, 0
  store ptr %1295, ptr %7, align 8
  %1296 = extractvalue { ptr, i32 } %1294, 1
  store i32 %1296, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %1461

1297:                                             ; preds = %1286, %1285
  %1298 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %1299 unwind label %1289

1299:                                             ; preds = %1297
  br label %1331

1300:                                             ; preds = %1277
  %1301 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 42)
          to label %1302 unwind label %1289

1302:                                             ; preds = %1300
  br i1 %1301, label %1303, label %1327

1303:                                             ; preds = %1302
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %1304 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1305 unwind label %1313

1305:                                             ; preds = %1303
  %1306 = getelementptr inbounds %struct.Codepoint, ptr %115, i32 0, i32 0
  store i32 %1304, ptr %1306, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %115, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  %1307 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 47)
          to label %1308 unwind label %1289

1308:                                             ; preds = %1305
  br i1 %1307, label %1309, label %1322

1309:                                             ; preds = %1308
  %1310 = load i32, ptr %113, align 4, !tbaa !47
  %1311 = icmp eq i32 %1310, 0
  br i1 %1311, label %1312, label %1317

1312:                                             ; preds = %1309
  br label %1339

1313:                                             ; preds = %1303
  %1314 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1315 = extractvalue { ptr, i32 } %1314, 0
  store ptr %1315, ptr %7, align 8
  %1316 = extractvalue { ptr, i32 } %1314, 1
  store i32 %1316, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %1461

1317:                                             ; preds = %1309
  %1318 = load i32, ptr %113, align 4, !tbaa !47
  %1319 = add i32 %1318, -1
  store i32 %1319, ptr %113, align 4, !tbaa !47
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %105, i8 noundef signext 42)
          to label %1320 unwind label %1289

1320:                                             ; preds = %1317
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %105, i8 noundef signext 47)
          to label %1321 unwind label %1289

1321:                                             ; preds = %1320
  br label %1326

1322:                                             ; preds = %1308
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %105, i8 noundef signext 42)
          to label %1323 unwind label %1289

1323:                                             ; preds = %1322
  %1324 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %1325 unwind label %1289

1325:                                             ; preds = %1323
  br label %1326

1326:                                             ; preds = %1325, %1321
  br label %1330

1327:                                             ; preds = %1302
  %1328 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %105, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %1329 unwind label %1289

1329:                                             ; preds = %1327
  br label %1330

1330:                                             ; preds = %1329, %1326
  br label %1331

1331:                                             ; preds = %1330, %1299
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %1332 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1333 unwind label %1335

1333:                                             ; preds = %1331
  %1334 = getelementptr inbounds %struct.Codepoint, ptr %116, i32 0, i32 0
  store i32 %1332, ptr %1334, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %116, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %1274, !llvm.loop !70

1335:                                             ; preds = %1331
  %1336 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1337 = extractvalue { ptr, i32 } %1336, 0
  store ptr %1337, ptr %7, align 8
  %1338 = extractvalue { ptr, i32 } %1336, 1
  store i32 %1338, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %1461

1339:                                             ; preds = %1312
  %1340 = load i8, ptr %106, align 1, !tbaa !63, !range !64, !noundef !65
  %1341 = trunc i8 %1340 to i1
  br i1 %1341, label %1345, label %1342

1342:                                             ; preds = %1339
  %1343 = load i8, ptr %107, align 1, !tbaa !63, !range !64, !noundef !65
  %1344 = trunc i8 %1343 to i1
  br i1 %1344, label %1345, label %1444

1345:                                             ; preds = %1342, %1339
  %1346 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %117) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %117, i32 noundef 30)
          to label %1347 unwind label %1373

1347:                                             ; preds = %1345
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1346, ptr noundef nonnull align 8 dereferenceable(88) %117)
          to label %1348 unwind label %1377

1348:                                             ; preds = %1347
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %117) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %117) #11
  %1349 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %118) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %119, ptr noundef nonnull align 8 dereferenceable(32) %105) #11
  %1350 = load ptr, ptr %161, align 8, !tbaa !67
  %1351 = getelementptr inbounds ptr, ptr %1350, i64 8
  %1352 = load ptr, ptr %1351, align 8
  invoke void %1352(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %120, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1353 unwind label %1382

1353:                                             ; preds = %1348
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %118, i32 noundef 19, ptr noundef %119, ptr noundef %120)
          to label %1354 unwind label %1386

1354:                                             ; preds = %1353
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1349, ptr noundef nonnull align 8 dereferenceable(88) %118)
          to label %1355 unwind label %1390

1355:                                             ; preds = %1354
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %118) #11
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %118) #11
  %1356 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %121) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %121, i32 noundef 50)
          to label %1357 unwind label %1396

1357:                                             ; preds = %1355
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1356, ptr noundef nonnull align 8 dereferenceable(88) %121)
          to label %1358 unwind label %1400

1358:                                             ; preds = %1357
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %121) #11
  %1359 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %122) #11
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind writable sret(%class.RcString) align 8 %124, ptr noundef @.str.28)
          to label %1360 unwind label %1405

1360:                                             ; preds = %1358
  invoke void @_ZN5IdentC2E8RcString(ptr noundef nonnull align 8 dereferenceable(16) %123, ptr noundef %124)
          to label %1361 unwind label %1409

1361:                                             ; preds = %1360
  invoke void @_ZN5TokenC1E10eTokenType5Ident(ptr noundef nonnull align 8 dereferenceable(88) %122, i32 noundef 14, ptr noundef %123)
          to label %1362 unwind label %1413

1362:                                             ; preds = %1361
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1359, ptr noundef nonnull align 8 dereferenceable(88) %122)
          to label %1363 unwind label %1417

1363:                                             ; preds = %1362
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %122) #11
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %122) #11
  %1364 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %125) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %125, i32 noundef 29)
          to label %1365 unwind label %1424

1365:                                             ; preds = %1363
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1364, ptr noundef nonnull align 8 dereferenceable(88) %125)
          to label %1366 unwind label %1428

1366:                                             ; preds = %1365
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %125) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %125) #11
  %1367 = load i8, ptr %107, align 1, !tbaa !63, !range !64, !noundef !65
  %1368 = trunc i8 %1367 to i1
  br i1 %1368, label %1369, label %1442

1369:                                             ; preds = %1366
  %1370 = getelementptr inbounds %class.Lexer, ptr %161, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 88, ptr %126) #11
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %126, i32 noundef 43)
          to label %1371 unwind label %1433

1371:                                             ; preds = %1369
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %1370, ptr noundef nonnull align 8 dereferenceable(88) %126)
          to label %1372 unwind label %1437

1372:                                             ; preds = %1371
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %126) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %126) #11
  br label %1442

1373:                                             ; preds = %1345
  %1374 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1375 = extractvalue { ptr, i32 } %1374, 0
  store ptr %1375, ptr %7, align 8
  %1376 = extractvalue { ptr, i32 } %1374, 1
  store i32 %1376, ptr %8, align 4
  br label %1381

1377:                                             ; preds = %1347
  %1378 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1379 = extractvalue { ptr, i32 } %1378, 0
  store ptr %1379, ptr %7, align 8
  %1380 = extractvalue { ptr, i32 } %1378, 1
  store i32 %1380, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %117) #11
  br label %1381

1381:                                             ; preds = %1377, %1373
  call void @llvm.lifetime.end.p0(i64 88, ptr %117) #11
  br label %1461

1382:                                             ; preds = %1348
  %1383 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1384 = extractvalue { ptr, i32 } %1383, 0
  store ptr %1384, ptr %7, align 8
  %1385 = extractvalue { ptr, i32 } %1383, 1
  store i32 %1385, ptr %8, align 4
  br label %1395

1386:                                             ; preds = %1353
  %1387 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1388 = extractvalue { ptr, i32 } %1387, 0
  store ptr %1388, ptr %7, align 8
  %1389 = extractvalue { ptr, i32 } %1387, 1
  store i32 %1389, ptr %8, align 4
  br label %1394

1390:                                             ; preds = %1354
  %1391 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1392 = extractvalue { ptr, i32 } %1391, 0
  store ptr %1392, ptr %7, align 8
  %1393 = extractvalue { ptr, i32 } %1391, 1
  store i32 %1393, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %118) #11
  br label %1394

1394:                                             ; preds = %1390, %1386
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %120) #11
  br label %1395

1395:                                             ; preds = %1394, %1382
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %119) #11
  call void @llvm.lifetime.end.p0(i64 88, ptr %118) #11
  br label %1461

1396:                                             ; preds = %1355
  %1397 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1398 = extractvalue { ptr, i32 } %1397, 0
  store ptr %1398, ptr %7, align 8
  %1399 = extractvalue { ptr, i32 } %1397, 1
  store i32 %1399, ptr %8, align 4
  br label %1404

1400:                                             ; preds = %1357
  %1401 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1402 = extractvalue { ptr, i32 } %1401, 0
  store ptr %1402, ptr %7, align 8
  %1403 = extractvalue { ptr, i32 } %1401, 1
  store i32 %1403, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %121) #11
  br label %1404

1404:                                             ; preds = %1400, %1396
  call void @llvm.lifetime.end.p0(i64 88, ptr %121) #11
  br label %1461

1405:                                             ; preds = %1358
  %1406 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1407 = extractvalue { ptr, i32 } %1406, 0
  store ptr %1407, ptr %7, align 8
  %1408 = extractvalue { ptr, i32 } %1406, 1
  store i32 %1408, ptr %8, align 4
  br label %1423

1409:                                             ; preds = %1360
  %1410 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1411 = extractvalue { ptr, i32 } %1410, 0
  store ptr %1411, ptr %7, align 8
  %1412 = extractvalue { ptr, i32 } %1410, 1
  store i32 %1412, ptr %8, align 4
  br label %1422

1413:                                             ; preds = %1361
  %1414 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1415 = extractvalue { ptr, i32 } %1414, 0
  store ptr %1415, ptr %7, align 8
  %1416 = extractvalue { ptr, i32 } %1414, 1
  store i32 %1416, ptr %8, align 4
  br label %1421

1417:                                             ; preds = %1362
  %1418 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1419 = extractvalue { ptr, i32 } %1418, 0
  store ptr %1419, ptr %7, align 8
  %1420 = extractvalue { ptr, i32 } %1418, 1
  store i32 %1420, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %122) #11
  br label %1421

1421:                                             ; preds = %1417, %1413
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %123) #11
  br label %1422

1422:                                             ; preds = %1421, %1409
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %124) #11
  br label %1423

1423:                                             ; preds = %1422, %1405
  call void @llvm.lifetime.end.p0(i64 88, ptr %122) #11
  br label %1461

1424:                                             ; preds = %1363
  %1425 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1426 = extractvalue { ptr, i32 } %1425, 0
  store ptr %1426, ptr %7, align 8
  %1427 = extractvalue { ptr, i32 } %1425, 1
  store i32 %1427, ptr %8, align 4
  br label %1432

1428:                                             ; preds = %1365
  %1429 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1430 = extractvalue { ptr, i32 } %1429, 0
  store ptr %1430, ptr %7, align 8
  %1431 = extractvalue { ptr, i32 } %1429, 1
  store i32 %1431, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %125) #11
  br label %1432

1432:                                             ; preds = %1428, %1424
  call void @llvm.lifetime.end.p0(i64 88, ptr %125) #11
  br label %1461

1433:                                             ; preds = %1369
  %1434 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1435 = extractvalue { ptr, i32 } %1434, 0
  store ptr %1435, ptr %7, align 8
  %1436 = extractvalue { ptr, i32 } %1434, 1
  store i32 %1436, ptr %8, align 4
  br label %1441

1437:                                             ; preds = %1371
  %1438 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1439 = extractvalue { ptr, i32 } %1438, 0
  store ptr %1439, ptr %7, align 8
  %1440 = extractvalue { ptr, i32 } %1438, 1
  store i32 %1440, ptr %8, align 4
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %126) #11
  br label %1441

1441:                                             ; preds = %1437, %1433
  call void @llvm.lifetime.end.p0(i64 88, ptr %126) #11
  br label %1461

1442:                                             ; preds = %1372, %1366
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 21)
          to label %1443 unwind label %1289

1443:                                             ; preds = %1442
  store i32 1, ptr %12, align 4
  br label %1460

1444:                                             ; preds = %1342
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %127, ptr noundef nonnull align 8 dereferenceable(32) %105)
          to label %1445 unwind label %1289

1445:                                             ; preds = %1444
  %1446 = load ptr, ptr %161, align 8, !tbaa !67
  %1447 = getelementptr inbounds ptr, ptr %1446, i64 8
  %1448 = load ptr, ptr %1447, align 8
  invoke void %1448(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %128, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1449 unwind label %1451

1449:                                             ; preds = %1445
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 4, ptr noundef %127, ptr noundef %128)
          to label %1450 unwind label %1455

1450:                                             ; preds = %1449
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #11
  store i32 1, ptr %12, align 4
  br label %1460

1451:                                             ; preds = %1445
  %1452 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1453 = extractvalue { ptr, i32 } %1452, 0
  store ptr %1453, ptr %7, align 8
  %1454 = extractvalue { ptr, i32 } %1452, 1
  store i32 %1454, ptr %8, align 4
  br label %1459

1455:                                             ; preds = %1449
  %1456 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1457 = extractvalue { ptr, i32 } %1456, 0
  store ptr %1457, ptr %7, align 8
  %1458 = extractvalue { ptr, i32 } %1456, 1
  store i32 %1458, ptr %8, align 4
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %128) #11
  br label %1459

1459:                                             ; preds = %1455, %1451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %127) #11
  br label %1461

1460:                                             ; preds = %1450, %1443
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %1462

1461:                                             ; preds = %1459, %1441, %1432, %1423, %1404, %1395, %1381, %1335, %1313, %1293, %1289
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %1463

1462:                                             ; preds = %1460, %1248
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #11
  br label %1729

1463:                                             ; preds = %1461, %1268, %1257, %1235, %1231, %1227
  call void @llvm.lifetime.end.p0(i64 1, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %106) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #11
  br label %1733

1464:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %1465 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1466 unwind label %1486

1466:                                             ; preds = %1464
  %1467 = getelementptr inbounds %struct.Codepoint, ptr %129, i32 0, i32 0
  store i32 %1465, ptr %1467, align 4
  %1468 = getelementptr inbounds %struct.Codepoint, ptr %129, i32 0, i32 0
  %1469 = load i32, ptr %1468, align 4, !tbaa !48
  %1470 = icmp eq i32 %1469, 92
  br i1 %1470, label %1471, label %1528

1471:                                             ; preds = %1466
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #11
  %1472 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %161, i8 noundef signext 39)
          to label %1473 unwind label %1490

1473:                                             ; preds = %1471
  store i32 %1472, ptr %130, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %1474 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1475 unwind label %1494

1475:                                             ; preds = %1473
  %1476 = getelementptr inbounds %struct.Codepoint, ptr %131, i32 0, i32 0
  store i32 %1474, ptr %1476, align 4
  %1477 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %131, i8 noundef signext 39)
          to label %1478 unwind label %1494

1478:                                             ; preds = %1475
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br i1 %1477, label %1479, label %1518

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #11
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %132, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %133) #11
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %133, ptr noundef nonnull align 8 dereferenceable(176) %161)
          to label %1481 unwind label %1498

1481:                                             ; preds = %1480
  call void @llvm.lifetime.start.p0(i64 8, ptr %135) #11
  %1482 = getelementptr inbounds %class.anon.20, ptr %135, i32 0, i32 0
  store ptr %132, ptr %1482, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %134, ptr noundef nonnull align 8 dereferenceable(8) %135) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef %134)
          to label %1483 unwind label %1502

1483:                                             ; preds = %1481
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  %1484 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1484, ptr noundef @.str.5)
          to label %1485 unwind label %1507

1485:                                             ; preds = %1483
  invoke void @__cxa_throw(ptr %1484, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1759 unwind label %1511

1486:                                             ; preds = %1582, %1579, %1569, %1565, %1561, %1464
  %1487 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1488 = extractvalue { ptr, i32 } %1487, 0
  store ptr %1488, ptr %7, align 8
  %1489 = extractvalue { ptr, i32 } %1487, 1
  store i32 %1489, ptr %8, align 4
  br label %1666

1490:                                             ; preds = %1521, %1518, %1471
  %1491 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1492 = extractvalue { ptr, i32 } %1491, 0
  store ptr %1492, ptr %7, align 8
  %1493 = extractvalue { ptr, i32 } %1491, 1
  store i32 %1493, ptr %8, align 4
  br label %1527

1494:                                             ; preds = %1475, %1473
  %1495 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1496 = extractvalue { ptr, i32 } %1495, 0
  store ptr %1496, ptr %7, align 8
  %1497 = extractvalue { ptr, i32 } %1495, 1
  store i32 %1497, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %1527

1498:                                             ; preds = %1480
  %1499 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1500 = extractvalue { ptr, i32 } %1499, 0
  store ptr %1500, ptr %7, align 8
  %1501 = extractvalue { ptr, i32 } %1499, 1
  store i32 %1501, ptr %8, align 4
  br label %1506

1502:                                             ; preds = %1481
  %1503 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1504 = extractvalue { ptr, i32 } %1503, 0
  store ptr %1504, ptr %7, align 8
  %1505 = extractvalue { ptr, i32 } %1503, 1
  store i32 %1505, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %134) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %135) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %133) #11
  br label %1506

1506:                                             ; preds = %1502, %1498
  call void @llvm.lifetime.end.p0(i64 8, ptr %133) #11
  br label %1515

1507:                                             ; preds = %1483
  %1508 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1509 = extractvalue { ptr, i32 } %1508, 0
  store ptr %1509, ptr %7, align 8
  %1510 = extractvalue { ptr, i32 } %1508, 1
  store i32 %1510, ptr %8, align 4
  call void @__cxa_free_exception(ptr %1484) #11
  br label %1515

1511:                                             ; preds = %1485
  %1512 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1513 = extractvalue { ptr, i32 } %1512, 0
  store ptr %1513, ptr %7, align 8
  %1514 = extractvalue { ptr, i32 } %1512, 1
  store i32 %1514, ptr %8, align 4
  br label %1515

1515:                                             ; preds = %1511, %1507, %1506
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #11
  br label %1527

1516:                                             ; No predecessors!
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517, %1478
  %1519 = load i32, ptr %130, align 4, !tbaa !47
  %1520 = zext i32 %1519 to i64
  invoke void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %136, i64 noundef %1520, i64 noundef 0)
          to label %1521 unwind label %1490

1521:                                             ; preds = %1518
  %1522 = getelementptr inbounds { i64, i64 }, ptr %136, i32 0, i32 0
  %1523 = load i64, ptr %1522, align 8
  %1524 = getelementptr inbounds { i64, i64 }, ptr %136, i32 0, i32 1
  %1525 = load i64, ptr %1524, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %1523, i64 %1525, i32 noundef 3)
          to label %1526 unwind label %1490

1526:                                             ; preds = %1521
  store i32 1, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %1664

1527:                                             ; preds = %1515, %1494, %1490
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %1666

1528:                                             ; preds = %1466
  %1529 = getelementptr inbounds %struct.Codepoint, ptr %129, i32 0, i32 0
  %1530 = load i32, ptr %1529, align 4, !tbaa !48
  %1531 = icmp eq i32 %1530, 39
  br i1 %1531, label %1532, label %1559

1532:                                             ; preds = %1528
  br label %1533

1533:                                             ; preds = %1532
  call void @llvm.lifetime.start.p0(i64 8, ptr %137) #11
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %137, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %138) #11
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %138, ptr noundef nonnull align 8 dereferenceable(176) %161)
          to label %1534 unwind label %1539

1534:                                             ; preds = %1533
  call void @llvm.lifetime.start.p0(i64 8, ptr %140) #11
  %1535 = getelementptr inbounds %class.anon.21, ptr %140, i32 0, i32 0
  store ptr %137, ptr %1535, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %139, ptr noundef nonnull align 8 dereferenceable(8) %140) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef %139)
          to label %1536 unwind label %1543

1536:                                             ; preds = %1534
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  %1537 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1537, ptr noundef @.str.5)
          to label %1538 unwind label %1548

1538:                                             ; preds = %1536
  invoke void @__cxa_throw(ptr %1537, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1759 unwind label %1552

1539:                                             ; preds = %1533
  %1540 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1541 = extractvalue { ptr, i32 } %1540, 0
  store ptr %1541, ptr %7, align 8
  %1542 = extractvalue { ptr, i32 } %1540, 1
  store i32 %1542, ptr %8, align 4
  br label %1547

1543:                                             ; preds = %1534
  %1544 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1545 = extractvalue { ptr, i32 } %1544, 0
  store ptr %1545, ptr %7, align 8
  %1546 = extractvalue { ptr, i32 } %1544, 1
  store i32 %1546, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %139) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %140) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %138) #11
  br label %1547

1547:                                             ; preds = %1543, %1539
  call void @llvm.lifetime.end.p0(i64 8, ptr %138) #11
  br label %1556

1548:                                             ; preds = %1536
  %1549 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1550 = extractvalue { ptr, i32 } %1549, 0
  store ptr %1550, ptr %7, align 8
  %1551 = extractvalue { ptr, i32 } %1549, 1
  store i32 %1551, ptr %8, align 4
  call void @__cxa_free_exception(ptr %1537) #11
  br label %1556

1552:                                             ; preds = %1538
  %1553 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1554 = extractvalue { ptr, i32 } %1553, 0
  store ptr %1554, ptr %7, align 8
  %1555 = extractvalue { ptr, i32 } %1553, 1
  store i32 %1555, ptr %8, align 4
  br label %1556

1556:                                             ; preds = %1552, %1548, %1547
  call void @llvm.lifetime.end.p0(i64 8, ptr %137) #11
  br label %1666

1557:                                             ; No predecessors!
  br label %1558

1558:                                             ; preds = %1557
  br label %1662

1559:                                             ; preds = %1528
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %1560 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1561 unwind label %1575

1561:                                             ; preds = %1559
  %1562 = getelementptr inbounds %struct.Codepoint, ptr %141, i32 0, i32 0
  store i32 %1560, ptr %1562, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %141, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  %1563 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 39)
          to label %1564 unwind label %1486

1564:                                             ; preds = %1561
  br i1 %1563, label %1565, label %1579

1565:                                             ; preds = %1564
  %1566 = getelementptr inbounds %struct.Codepoint, ptr %129, i32 0, i32 0
  %1567 = load i32, ptr %1566, align 4, !tbaa !48
  %1568 = zext i32 %1567 to i64
  invoke void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %142, i64 noundef %1568, i64 noundef 0)
          to label %1569 unwind label %1486

1569:                                             ; preds = %1565
  %1570 = getelementptr inbounds { i64, i64 }, ptr %142, i32 0, i32 0
  %1571 = load i64, ptr %1570, align 8
  %1572 = getelementptr inbounds { i64, i64 }, ptr %142, i32 0, i32 1
  %1573 = load i64, ptr %1572, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %1571, i64 %1573, i32 noundef 3)
          to label %1574 unwind label %1486

1574:                                             ; preds = %1569
  store i32 1, ptr %12, align 4
  br label %1664

1575:                                             ; preds = %1559
  %1576 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1577 = extractvalue { ptr, i32 } %1576, 0
  store ptr %1577, ptr %7, align 8
  %1578 = extractvalue { ptr, i32 } %1576, 1
  store i32 %1578, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %1666

1579:                                             ; preds = %1564
  %1580 = getelementptr inbounds %struct.Codepoint, ptr %129, i32 0, i32 0
  %1581 = load i32, ptr %1580, align 4, !tbaa !48
  invoke void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %143, i32 noundef %1581)
          to label %1582 unwind label %1486

1582:                                             ; preds = %1579
  %1583 = getelementptr inbounds %struct.Codepoint, ptr %143, i32 0, i32 0
  %1584 = load i32, ptr %1583, align 4
  %1585 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %1584)
          to label %1586 unwind label %1486

1586:                                             ; preds = %1582
  br i1 %1585, label %1587, label %1633

1587:                                             ; preds = %1586
  call void @llvm.lifetime.start.p0(i64 32, ptr %144) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  %1588 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 4 dereferenceable(4) %129)
          to label %1589 unwind label %1601

1589:                                             ; preds = %1587
  br label %1590

1590:                                             ; preds = %1599, %1589
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %145, ptr align 4 %6, i64 4, i1 false), !tbaa.struct !46
  %1591 = getelementptr inbounds %struct.Codepoint, ptr %145, i32 0, i32 0
  %1592 = load i32, ptr %1591, align 4
  %1593 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %1592)
          to label %1594 unwind label %1601

1594:                                             ; preds = %1590
  br i1 %1593, label %1595, label %1609

1595:                                             ; preds = %1594
  %1596 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %144, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %1597 unwind label %1601

1597:                                             ; preds = %1595
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %1598 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1599 unwind label %1605

1599:                                             ; preds = %1597
  %1600 = getelementptr inbounds %struct.Codepoint, ptr %146, i32 0, i32 0
  store i32 %1598, ptr %1600, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %146, i64 4, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %1590, !llvm.loop !71

1601:                                             ; preds = %1610, %1609, %1595, %1590, %1587
  %1602 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1603 = extractvalue { ptr, i32 } %1602, 0
  store ptr %1603, ptr %7, align 8
  %1604 = extractvalue { ptr, i32 } %1602, 1
  store i32 %1604, ptr %8, align 4
  br label %1632

1605:                                             ; preds = %1597
  %1606 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1607 = extractvalue { ptr, i32 } %1606, 0
  store ptr %1607, ptr %7, align 8
  %1608 = extractvalue { ptr, i32 } %1606, 1
  store i32 %1608, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %1632

1609:                                             ; preds = %1594
  invoke void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1610 unwind label %1601

1610:                                             ; preds = %1609
  %1611 = load ptr, ptr %161, align 8, !tbaa !67
  %1612 = getelementptr inbounds ptr, ptr %1611, i64 8
  %1613 = load ptr, ptr %1612, align 8
  invoke void %1613(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %148, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1614 unwind label %1601

1614:                                             ; preds = %1610
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%class.RcString) align 8 %149, ptr noundef nonnull align 8 dereferenceable(32) %144)
          to label %1615 unwind label %1618

1615:                                             ; preds = %1614
  invoke void @_ZN5IdentC2ENS_7HygieneE8RcString(ptr noundef nonnull align 8 dereferenceable(16) %147, ptr noundef %148, ptr noundef %149)
          to label %1616 unwind label %1622

1616:                                             ; preds = %1615
  invoke void @_ZN5TokenC1E10eTokenType5Ident(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 15, ptr noundef %147)
          to label %1617 unwind label %1626

1617:                                             ; preds = %1616
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #11
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #11
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #11
  store i32 1, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #11
  br label %1664

1618:                                             ; preds = %1614
  %1619 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1620 = extractvalue { ptr, i32 } %1619, 0
  store ptr %1620, ptr %7, align 8
  %1621 = extractvalue { ptr, i32 } %1619, 1
  store i32 %1621, ptr %8, align 4
  br label %1631

1622:                                             ; preds = %1615
  %1623 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1624 = extractvalue { ptr, i32 } %1623, 0
  store ptr %1624, ptr %7, align 8
  %1625 = extractvalue { ptr, i32 } %1623, 1
  store i32 %1625, ptr %8, align 4
  br label %1630

1626:                                             ; preds = %1616
  %1627 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1628 = extractvalue { ptr, i32 } %1627, 0
  store ptr %1628, ptr %7, align 8
  %1629 = extractvalue { ptr, i32 } %1627, 1
  store i32 %1629, ptr %8, align 4
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %147) #11
  br label %1630

1630:                                             ; preds = %1626, %1622
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %149) #11
  br label %1631

1631:                                             ; preds = %1630, %1618
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %148) #11
  br label %1632

1632:                                             ; preds = %1631, %1605, %1601
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %144) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %144) #11
  br label %1666

1633:                                             ; preds = %1586
  br label %1634

1634:                                             ; preds = %1633
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #11
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %150, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind writable sret(%struct.Span) align 8 %151, ptr noundef nonnull align 8 dereferenceable(176) %161)
          to label %1635 unwind label %1640

1635:                                             ; preds = %1634
  call void @llvm.lifetime.start.p0(i64 8, ptr %153) #11
  %1636 = getelementptr inbounds %class.anon.22, ptr %153, i32 0, i32 0
  store ptr %150, ptr %1636, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %152, ptr noundef nonnull align 8 dereferenceable(8) %153) #11
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef %152)
          to label %1637 unwind label %1644

1637:                                             ; preds = %1635
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  %1638 = call ptr @__cxa_allocate_exception(i64 16) #11
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %1638, ptr noundef @.str.5)
          to label %1639 unwind label %1649

1639:                                             ; preds = %1637
  invoke void @__cxa_throw(ptr %1638, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #12
          to label %1759 unwind label %1653

1640:                                             ; preds = %1634
  %1641 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1642 = extractvalue { ptr, i32 } %1641, 0
  store ptr %1642, ptr %7, align 8
  %1643 = extractvalue { ptr, i32 } %1641, 1
  store i32 %1643, ptr %8, align 4
  br label %1648

1644:                                             ; preds = %1635
  %1645 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1646 = extractvalue { ptr, i32 } %1645, 0
  store ptr %1646, ptr %7, align 8
  %1647 = extractvalue { ptr, i32 } %1645, 1
  store i32 %1647, ptr %8, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %152) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %153) #11
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %151) #11
  br label %1648

1648:                                             ; preds = %1644, %1640
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  br label %1657

1649:                                             ; preds = %1637
  %1650 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1651 = extractvalue { ptr, i32 } %1650, 0
  store ptr %1651, ptr %7, align 8
  %1652 = extractvalue { ptr, i32 } %1650, 1
  store i32 %1652, ptr %8, align 4
  call void @__cxa_free_exception(ptr %1638) #11
  br label %1657

1653:                                             ; preds = %1639
  %1654 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1655 = extractvalue { ptr, i32 } %1654, 0
  store ptr %1655, ptr %7, align 8
  %1656 = extractvalue { ptr, i32 } %1654, 1
  store i32 %1656, ptr %8, align 4
  br label %1657

1657:                                             ; preds = %1653, %1649, %1648
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #11
  br label %1666

1658:                                             ; No predecessors!
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661, %1558
  br label %1663

1663:                                             ; preds = %1662
  store i32 16, ptr %12, align 4
  br label %1664

1664:                                             ; preds = %1663, %1617, %1574, %1526
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  %1665 = load i32, ptr %12, align 4
  switch i32 %1665, label %1729 [
    i32 16, label %1726
  ]

1666:                                             ; preds = %1657, %1632, %1575, %1556, %1527, %1486
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %1733

1667:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 32, ptr %154) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  br label %1668

1668:                                             ; preds = %1708, %1667
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %1669 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1670 unwind label %1687

1670:                                             ; preds = %1668
  %1671 = getelementptr inbounds %struct.Codepoint, ptr %155, i32 0, i32 0
  store i32 %1669, ptr %1671, align 4
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %6, ptr align 4 %155, i64 4, i1 false), !tbaa.struct !46
  %1672 = invoke noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 34)
          to label %1673 unwind label %1687

1673:                                             ; preds = %1670
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br i1 %1672, label %1674, label %1709

1674:                                             ; preds = %1673
  %1675 = invoke noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %6, i8 noundef signext 92)
          to label %1676 unwind label %1691

1676:                                             ; preds = %1674
  br i1 %1675, label %1677, label %1705

1677:                                             ; preds = %1676
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %1678 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %161, i8 noundef signext 34)
          to label %1679 unwind label %1695

1679:                                             ; preds = %1677
  store i32 %1678, ptr %156, align 4, !tbaa !47
  %1680 = load i32, ptr %156, align 4, !tbaa !47
  %1681 = icmp ne i32 %1680, -1
  br i1 %1681, label %1682, label %1703

1682:                                             ; preds = %1679
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %1683 = load i32, ptr %156, align 4, !tbaa !47
  invoke void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %157, i32 noundef %1683)
          to label %1684 unwind label %1699

1684:                                             ; preds = %1682
  %1685 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 4 dereferenceable(4) %157)
          to label %1686 unwind label %1699

1686:                                             ; preds = %1684
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %1703

1687:                                             ; preds = %1670, %1668
  %1688 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1689 = extractvalue { ptr, i32 } %1688, 0
  store ptr %1689, ptr %7, align 8
  %1690 = extractvalue { ptr, i32 } %1688, 1
  store i32 %1690, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %1724

1691:                                             ; preds = %1705, %1674
  %1692 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1693 = extractvalue { ptr, i32 } %1692, 0
  store ptr %1693, ptr %7, align 8
  %1694 = extractvalue { ptr, i32 } %1692, 1
  store i32 %1694, ptr %8, align 4
  br label %1724

1695:                                             ; preds = %1677
  %1696 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1697 = extractvalue { ptr, i32 } %1696, 0
  store ptr %1697, ptr %7, align 8
  %1698 = extractvalue { ptr, i32 } %1696, 1
  store i32 %1698, ptr %8, align 4
  br label %1704

1699:                                             ; preds = %1684, %1682
  %1700 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1701 = extractvalue { ptr, i32 } %1700, 0
  store ptr %1701, ptr %7, align 8
  %1702 = extractvalue { ptr, i32 } %1700, 1
  store i32 %1702, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %1704

1703:                                             ; preds = %1686, %1679
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %1708

1704:                                             ; preds = %1699, %1695
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %1724

1705:                                             ; preds = %1676
  %1706 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %154, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %1707 unwind label %1691

1707:                                             ; preds = %1705
  br label %1708

1708:                                             ; preds = %1707, %1703
  br label %1668, !llvm.loop !72

1709:                                             ; preds = %1673
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  %1710 = load ptr, ptr %161, align 8, !tbaa !67
  %1711 = getelementptr inbounds ptr, ptr %1710, i64 8
  %1712 = load ptr, ptr %1711, align 8
  invoke void %1712(ptr dead_on_unwind writable sret(%"class.Ident::Hygiene") align 8 %159, ptr noundef nonnull align 8 dereferenceable(256) %161)
          to label %1713 unwind label %1715

1713:                                             ; preds = %1709
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 19, ptr noundef %158, ptr noundef %159)
          to label %1714 unwind label %1719

1714:                                             ; preds = %1713
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #11
  store i32 1, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #11
  br label %1729

1715:                                             ; preds = %1709
  %1716 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1717 = extractvalue { ptr, i32 } %1716, 0
  store ptr %1717, ptr %7, align 8
  %1718 = extractvalue { ptr, i32 } %1716, 1
  store i32 %1718, ptr %8, align 4
  br label %1723

1719:                                             ; preds = %1713
  %1720 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  %1721 = extractvalue { ptr, i32 } %1720, 0
  store ptr %1721, ptr %7, align 8
  %1722 = extractvalue { ptr, i32 } %1720, 1
  store i32 %1722, ptr %8, align 4
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %159) #11
  br label %1723

1723:                                             ; preds = %1719, %1715
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %158) #11
  br label %1724

1724:                                             ; preds = %1723, %1704, %1691, %1687
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %154) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %154) #11
  br label %1733

1725:                                             ; preds = %1025
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str.7, i32 noundef 773, ptr noundef @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #13
  unreachable

1726:                                             ; preds = %1664
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  store i32 0, ptr %12, align 4
  br label %1729

1729:                                             ; preds = %1728, %1714, %1664, %1462, %1209, %1024, %972
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %1730

1730:                                             ; preds = %1729, %289, %266, %250, %228, %222
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  %1731 = load i32, ptr %12, align 4
  switch i32 %1731, label %1759 [
    i32 0, label %1732
    i32 1, label %1750
  ]

1732:                                             ; preds = %1730
  br label %1748

1733:                                             ; preds = %1724, %1666, %1463, %1211, %1021, %973, %340
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %1734

1734:                                             ; preds = %1733, %283, %258, %244, %237, %217, %205, %195, %191
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %1735

1735:                                             ; preds = %1734
  %1736 = load i32, ptr %8, align 4
  %1737 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN5Lexer9EndOfFileE) #11
  %1738 = icmp eq i32 %1736, %1737
  br i1 %1738, label %1739, label %1751

1739:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #11
  %1740 = load ptr, ptr %7, align 8
  %1741 = call ptr @__cxa_begin_catch(ptr %1740) #11
  store ptr %1741, ptr %160, align 8
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 1)
          to label %1742 unwind label %1743

1742:                                             ; preds = %1739
  store i32 1, ptr %12, align 4
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  br label %1750

1743:                                             ; preds = %1739
  %1744 = landingpad { ptr, i32 }
          cleanup
  %1745 = extractvalue { ptr, i32 } %1744, 0
  store ptr %1745, ptr %7, align 8
  %1746 = extractvalue { ptr, i32 } %1744, 1
  store i32 %1746, ptr %8, align 4
  invoke void @__cxa_end_catch()
          to label %1747 unwind label %1756

1747:                                             ; preds = %1743
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  br label %1751

1748:                                             ; preds = %1732
  %1749 = call ptr @__cxa_allocate_exception(i64 8) #11
  store ptr @.str.31, ptr %1749, align 16, !tbaa !5
  call void @__cxa_throw(ptr %1749, ptr @_ZTIPKc, ptr null) #12
  unreachable

1750:                                             ; preds = %1742, %1730, %170
  ret void

1751:                                             ; preds = %1747, %1735
  %1752 = load ptr, ptr %7, align 8
  %1753 = load i32, ptr %8, align 4
  %1754 = insertvalue { ptr, i32 } poison, ptr %1752, 0
  %1755 = insertvalue { ptr, i32 } %1754, i32 %1753, 1
  resume { ptr, i32 } %1755

1756:                                             ; preds = %1743
  %1757 = landingpad { ptr, i32 }
          catch ptr null
  %1758 = extractvalue { ptr, i32 } %1757, 0
  call void @__clang_call_terminate(ptr %1758) #13
  unreachable

1759:                                             ; preds = %1730, %1639, %1538, %1485, %967, %906, %862, %790, %682, %561, %461, %257, %243
  unreachable
}

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4), i8 noundef signext) #3 align 2

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

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

declare void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(176), i8 noundef signext) unnamed_addr #4

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZN5Lexer8parseIntEPNS_7NumModeE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) #6 align 2

declare void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88), i64, i64, i32 noundef) unnamed_addr #4

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

declare void @_ZN5Token10make_floatEd9eCoreType(ptr dead_on_unwind writable sret(%class.Token) align 8, double noundef, i32 noundef) #4

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN5Lexer10parseFloatE4U128(ptr noundef nonnull align 8 dereferenceable(256), i64, i64) #6 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEENS0_12basic_stringIcS3_S4_EEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA23_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(23)) #10

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

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) #6 align 2

declare void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef) unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA2_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(2)) #10

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA25_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(25)) #10

declare void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(176), ptr noundef) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Lexer21getTokenInt_RawStringEb(ptr dead_on_unwind noalias writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(256), i1 noundef zeroext) #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256), i8 noundef signext) #6 align 2

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

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #6 align 2

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Lexer22getTokenInt_IdentifierE9CodepointS0_b(ptr dead_on_unwind noalias writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(256), i32, i32, i1 noundef zeroext) #6 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) #6 align 2

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

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

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

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

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

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

!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, !20, i64 184}
!10 = !{!"_ZTS5Lexer", !11, i64 0, !19, i64 176, !20, i64 184, !20, i64 188, !34, i64 192, !6, i64 200, !12, i64 208, !40, i64 212, !41, i64 216, !28, i64 240, !21, i64 248}
!11 = !{!"_ZTS11TokenStream", !12, i64 8, !13, i64 16, !21, i64 104, !28, i64 112, !29, i64 120, !33, i64 144}
!12 = !{!"bool", !7, i64 0}
!13 = !{!"_ZTS5Token", !14, i64 8, !15, i64 16, !17, i64 56, !21, i64 80}
!14 = !{!"_ZTS10eTokenType", !7, i64 0}
!15 = !{!"_ZTSN5Token4DataE", !16, i64 0, !7, i64 8}
!16 = !{!"_ZTSN5Token4Data3TagE", !7, i64 0}
!17 = !{!"_ZTS8Position", !18, i64 0, !19, i64 8, !20, i64 16, !20, i64 20}
!18 = !{!"_ZTS4Span", !6, i64 0}
!19 = !{!"_ZTS8RcString", !6, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = !{!"_ZTSN5Ident7HygieneE", !22, i64 0}
!22 = !{!"_ZTSSt10unique_ptrIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !23, i64 0}
!23 = !{!"_ZTSSt15__uniq_ptr_dataIN5Ident7Hygiene5InnerESt14default_deleteIS2_ELb1ELb1EE", !24, i64 0}
!24 = !{!"_ZTSSt15__uniq_ptr_implIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !25, i64 0}
!25 = !{!"_ZTSSt5tupleIJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSSt11_Tuple_implILm0EJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !27, i64 0}
!27 = !{!"_ZTSSt10_Head_baseILm0EPN5Ident7Hygiene5InnerELb0EE", !6, i64 0}
!28 = !{!"_ZTSN3AST7EditionE", !7, i64 0}
!29 = !{!"_ZTSSt6vectorIN11TokenStream12LookaheadEntESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseIN11TokenStream12LookaheadEntESaIS1_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN11TokenStream12LookaheadEntESaIS1_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseIN11TokenStream12LookaheadEntESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!33 = !{!"_ZTS10ParseState", !12, i64 0, !12, i64 1, !12, i64 2, !6, i64 8, !6, i64 16, !6, i64 24}
!34 = !{!"_ZTSSt10unique_ptrISt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EE", !35, i64 0}
!35 = !{!"_ZTSSt15__uniq_ptr_dataISt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_ELb1ELb1EE", !36, i64 0}
!36 = !{!"_ZTSSt15__uniq_ptr_implISt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EE", !37, i64 0}
!37 = !{!"_ZTSSt5tupleIJPSt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EEE", !38, i64 0}
!38 = !{!"_ZTSSt11_Tuple_implILm0EJPSt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EEE", !39, i64 0}
!39 = !{!"_ZTSSt10_Head_baseILm0EPSt14basic_ifstreamIcSt11char_traitsIcEELb0EE", !6, i64 0}
!40 = !{!"_ZTS9Codepoint", !20, i64 0}
!41 = !{!"_ZTSSt6vectorI5TokenSaIS0_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseI5TokenSaIS0_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseI5TokenSaIS0_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseI5TokenSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!45 = !{!10, !20, i64 188}
!46 = !{i64 0, i64 4, !47}
!47 = !{!20, !20, i64 0}
!48 = !{!40, !20, i64 0}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = distinct !{!51, !50}
!52 = !{!53, !53, i64 0}
!53 = !{!"_ZTS9eCoreType", !7, i64 0}
!54 = !{!55, !55, i64 0}
!55 = !{!"_ZTSN5Lexer7NumModeE", !7, i64 0}
!56 = !{i64 0, i64 8, !57, i64 8, i64 8, !57}
!57 = !{!58, !58, i64 0}
!58 = !{!"long", !7, i64 0}
!59 = !{!60, !60, i64 0}
!60 = !{!"double", !7, i64 0}
!61 = distinct !{!61, !50}
!62 = distinct !{!62, !50}
!63 = !{!12, !12, i64 0}
!64 = !{i8 0, i8 2}
!65 = !{}
!66 = distinct !{!66, !50}
!67 = !{!68, !68, i64 0}
!68 = !{!"vtable pointer", !8, i64 0}
!69 = distinct !{!69, !50}
!70 = distinct !{!70, !50}
!71 = distinct !{!71, !50}
!72 = distinct !{!72, !50}


; 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.1" }
%"struct.std::_Head_base.1" = type { ptr }
%struct.Codepoint = type { i32 }
%class.U128 = type { i64, i64 }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon = type { ptr }
%"class.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::allocator" = type { i8 }
%struct.Ident = type { %"class.Ident::Hygiene", %class.RcString }
%class.anon.20 = type { ptr }
%class.anon.21 = type { ptr }
%class.anon.22 = type { ptr }

@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@_ZTIN5Lexer9EndOfFileE = external dso_local constant { ptr, ptr }, align 8
@_ZTIN10ParseError7BadCharE = external constant ptr
@__func__._ZN5Lexer11getTokenIntEv = external hidden unnamed_addr constant [12 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [72 x i8], align 1
@__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv = external hidden unnamed_addr constant [27 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@_ZTIN12CompileError7GenericE = external dso_local constant { ptr, ptr, ptr }, align 8
@.str.11 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [12 x i8], align 1

declare i32 @__gxx_personality_v0(...)

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

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

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

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5Lexer9getSymbolEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4), i8 noundef signext) local_unnamed_addr #2 align 2

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #6

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) unnamed_addr #2 align 2

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #7

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_Z5issym9Codepoint(i32) local_unnamed_addr #5

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9Codepoint7isspaceEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Lexer11getTokenIntEv(ptr dead_on_unwind noalias writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %1) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %struct.Codepoint, align 4
  %4 = alloca %class.Token, align 8
  %5 = alloca %struct.Codepoint, align 4
  %6 = alloca i32, align 4
  %7 = alloca %class.U128, align 8
  %8 = alloca %class.Token, align 8
  %9 = alloca %class.Token, align 8
  %10 = alloca %class.Token, align 8
  %11 = alloca %class.Token, align 8
  %12 = alloca ptr, align 8
  %13 = alloca %struct.Span, align 8
  %14 = alloca %"class.std::function", align 8
  %15 = alloca %class.anon, align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.Ident::Hygiene", align 8
  %27 = alloca %struct.Codepoint, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %class.U128, align 8
  %31 = alloca %struct.Codepoint, align 4
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::allocator", align 1
  %34 = alloca %class.U128, align 8
  %35 = alloca %struct.Codepoint, align 4
  %36 = alloca %struct.Codepoint, align 4
  %37 = alloca %struct.Codepoint, align 4
  %38 = alloca %struct.Codepoint, align 4
  %39 = alloca %class.Token, align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %struct.Codepoint, align 4
  %42 = alloca %class.Token, align 8
  %43 = alloca %class.Token, align 8
  %44 = alloca %"class.std::__cxx11::basic_string", align 8
  %45 = alloca %"class.Ident::Hygiene", align 8
  %46 = alloca %class.Token, align 8
  %47 = alloca %class.Token, align 8
  %48 = alloca %struct.Ident, align 8
  %49 = alloca %class.RcString, align 8
  %50 = alloca %class.Token, align 8
  %51 = alloca %class.Token, align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.Ident::Hygiene", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.Ident::Hygiene", align 8
  %57 = alloca %class.Token, align 8
  %58 = alloca %class.Token, align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.Ident::Hygiene", align 8
  %61 = alloca %class.Token, align 8
  %62 = alloca %class.Token, align 8
  %63 = alloca %struct.Ident, align 8
  %64 = alloca %class.RcString, align 8
  %65 = alloca %class.Token, align 8
  %66 = alloca %class.Token, align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.Ident::Hygiene", align 8
  %69 = alloca %struct.Codepoint, align 4
  %70 = alloca %struct.Codepoint, align 4
  %71 = alloca ptr, align 8
  %72 = alloca %struct.Span, align 8
  %73 = alloca %"class.std::function", align 8
  %74 = alloca %class.anon.20, align 8
  %75 = alloca %class.U128, align 8
  %76 = alloca ptr, align 8
  %77 = alloca %struct.Span, align 8
  %78 = alloca %"class.std::function", align 8
  %79 = alloca %class.anon.21, align 8
  %80 = alloca %class.U128, align 8
  %81 = alloca %struct.Codepoint, align 4
  %82 = alloca %"class.std::__cxx11::basic_string", align 8
  %83 = alloca %struct.Ident, align 8
  %84 = alloca %"class.Ident::Hygiene", align 8
  %85 = alloca %class.RcString, align 8
  %86 = alloca ptr, align 8
  %87 = alloca %struct.Span, align 8
  %88 = alloca %"class.std::function", align 8
  %89 = alloca %class.anon.22, align 8
  %90 = alloca %"class.std::__cxx11::basic_string", align 8
  %91 = alloca %struct.Codepoint, align 4
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.Ident::Hygiene", align 8
  %94 = getelementptr inbounds i8, ptr %1, i64 216
  %95 = tail call noundef zeroext i1 @_ZNKSt6vectorI5TokenSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #10
  br i1 %95, label %98, label %96

96:                                               ; preds = %2
  %97 = tail call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorI5TokenSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #10
  tail call void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %0, ptr noundef nonnull align 8 dereferenceable(88) %97)
  tail call void @_ZNSt6vectorI5TokenSaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #10
  br label %944

98:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #10
  %99 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %100 unwind label %112

100:                                              ; preds = %98
  store i32 %99, ptr %3, align 4
  %101 = getelementptr inbounds i8, ptr %1, i64 184
  %102 = load i32, ptr %101, align 8, !tbaa !5
  %103 = icmp eq i32 %102, 1
  %104 = getelementptr inbounds i8, ptr %1, i64 188
  %105 = load i32, ptr %104, align 4
  %106 = icmp eq i32 %105, 1
  %or.cond = select i1 %103, i1 %106, i1 false
  br i1 %or.cond, label %107, label %149

107:                                              ; preds = %100
  %108 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 35)
  br i1 %108, label %109, label %149

109:                                              ; preds = %107
  %110 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %111 unwind label %114

111:                                              ; preds = %109
  store i32 %110, ptr %3, align 4, !tbaa !44
  switch i32 %110, label %142 [
    i32 33, label %116
    i32 91, label %141
  ]

112:                                              ; preds = %.invoke, %.critedge.invoke, %98
  %113 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %936

114:                                              ; preds = %109
  %115 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %936

116:                                              ; preds = %111
  %117 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %118 unwind label %120

118:                                              ; preds = %116
  store i32 %117, ptr %3, align 4, !tbaa !44
  switch i32 %117, label %135 [
    i32 47, label %.preheader
    i32 91, label %127
  ]

.preheader:                                       ; preds = %118
  %119 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 10)
  br i1 %119, label %.lr.ph360, label %.critedge.invoke

120:                                              ; preds = %116
  %121 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %936

.lr.ph360:                                        ; preds = %.preheader, %123
  %122 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %123 unwind label %125

123:                                              ; preds = %.lr.ph360
  store i32 %122, ptr %3, align 4, !tbaa !44
  %124 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 10)
  br i1 %124, label %.lr.ph360, label %.critedge.invoke, !llvm.loop !45

125:                                              ; preds = %.lr.ph360
  %126 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %936

127:                                              ; preds = %118
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %4) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %4, i32 noundef 43)
          to label %128 unwind label %130

128:                                              ; preds = %127
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %4)
          to label %129 unwind label %132

129:                                              ; preds = %128
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %4) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %4) #10
  br label %.critedge.invoke

130:                                              ; preds = %127
  %131 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %134

132:                                              ; preds = %128
  %133 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %4) #10
  br label %134

134:                                              ; preds = %132, %130
  %.pn308 = phi { ptr, i32 } [ %133, %132 ], [ %131, %130 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %4) #10
  br label %936

135:                                              ; preds = %118
  %136 = call ptr @__cxa_allocate_exception(i64 8) #10
  %137 = load i32, ptr %3, align 4, !tbaa !47
  %138 = trunc i32 %137 to i8
  invoke void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8) %136, ptr noundef nonnull align 8 dereferenceable(176) %1, i8 noundef signext %138)
          to label %.invoke unwind label %139

139:                                              ; preds = %135
  %140 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %136) #10
  br label %936

141:                                              ; preds = %111
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  br label %.critedge.invoke

142:                                              ; preds = %111
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %143 = call ptr @__cxa_allocate_exception(i64 8) #10
  %144 = load i32, ptr %3, align 4, !tbaa !47
  %145 = trunc i32 %144 to i8
  invoke void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8) %143, ptr noundef nonnull align 8 dereferenceable(176) %1, i8 noundef signext %145)
          to label %.invoke unwind label %147

.invoke:                                          ; preds = %142, %135
  %146 = phi ptr [ %136, %135 ], [ %143, %142 ]
  invoke void @__cxa_throw(ptr nonnull %146, ptr nonnull @_ZTIN10ParseError7BadCharE, ptr nonnull @_ZN10ParseError7BadCharD1Ev) #11
          to label %.cont unwind label %112

.cont:                                            ; preds = %.invoke
  unreachable

147:                                              ; preds = %142
  %148 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %143) #10
  br label %936

149:                                              ; preds = %107, %100
  %150 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 10)
  br i1 %150, label %.critedge.invoke, label %151

151:                                              ; preds = %149
  %152 = call noundef zeroext i1 @_ZNK9Codepoint7isspaceEv(ptr noundef nonnull align 4 dereferenceable(4) %3)
  br i1 %152, label %.preheader342, label %161

.preheader342:                                    ; preds = %151, %156
  %153 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %154 unwind label %158

154:                                              ; preds = %.preheader342
  store i32 %153, ptr %3, align 4, !tbaa !44
  %155 = call noundef zeroext i1 @_ZNK9Codepoint7isspaceEv(ptr noundef nonnull align 4 dereferenceable(4) %3)
  br i1 %155, label %156, label %.critedge

156:                                              ; preds = %154
  %157 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 10)
  br i1 %157, label %.preheader342, label %.critedge, !llvm.loop !48

158:                                              ; preds = %.preheader342
  %159 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %936

.critedge:                                        ; preds = %154, %156
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  br label %.critedge.invoke

.critedge.invoke:                                 ; preds = %123, %149, %.preheader, %129, %141, %.critedge
  %160 = phi i32 [ 3, %.critedge ], [ 21, %141 ], [ 21, %129 ], [ 2, %.preheader ], [ 2, %149 ], [ 2, %123 ]
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef %160)
          to label %935 unwind label %112

161:                                              ; preds = %151
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %162 = invoke noundef i32 @_ZN5Lexer9getSymbolEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %163 unwind label %195

163:                                              ; preds = %161
  %164 = icmp eq i32 %162, 0
  br i1 %164, label %165, label %512

165:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #10
  %166 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %167 unwind label %197

167:                                              ; preds = %165
  store i32 %166, ptr %5, align 4
  %168 = call noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4) %5)
  br i1 %168, label %169, label %383

169:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #10
  store i32 2, ptr %6, align 4, !tbaa !49
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #10
  %170 = invoke { i64, i64 } @_ZN5Lexer8parseIntEPNS_7NumModeE(ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef nonnull %6)
          to label %171 unwind label %199

171:                                              ; preds = %169
  %172 = extractvalue { i64, i64 } %170, 0
  store i64 %172, ptr %7, align 8
  %173 = getelementptr inbounds i8, ptr %7, i64 8
  %174 = extractvalue { i64, i64 } %170, 1
  store i64 %174, ptr %173, align 8
  %175 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %176 unwind label %201

176:                                              ; preds = %171
  store i32 %175, ptr %5, align 4, !tbaa !44
  %177 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 101)
  br i1 %177, label %182, label %178

178:                                              ; preds = %176
  %179 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 69)
  br i1 %179, label %182, label %180

180:                                              ; preds = %178
  %181 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 46)
  br i1 %181, label %182, label %319

182:                                              ; preds = %180, %178, %176
  %183 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 46)
  br i1 %183, label %184, label %248

184:                                              ; preds = %182
  %185 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %186 unwind label %203

186:                                              ; preds = %184
  store i32 %185, ptr %5, align 4, !tbaa !44
  %187 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 46)
  br i1 %187, label %188, label %230

188:                                              ; preds = %186
  %189 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %190 unwind label %205

190:                                              ; preds = %188
  store i32 %189, ptr %5, align 4, !tbaa !44
  %191 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 46)
  br i1 %191, label %192, label %212

192:                                              ; preds = %190
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %8) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %8, i32 noundef 49)
          to label %193 unwind label %207

193:                                              ; preds = %192
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %8)
          to label %194 unwind label %209

194:                                              ; preds = %193
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %8) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %8) #10
  br label %.invoke364

195:                                              ; preds = %538, %161
  %196 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %936

197:                                              ; preds = %507, %501, %498, %165
  %198 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %511

199:                                              ; preds = %.invoke364, %319, %232, %169
  %200 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

201:                                              ; preds = %171
  %202 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

203:                                              ; preds = %184
  %204 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

205:                                              ; preds = %188
  %206 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

207:                                              ; preds = %192
  %208 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %211

209:                                              ; preds = %193
  %210 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %8) #10
  br label %211

211:                                              ; preds = %209, %207
  %.pn302 = phi { ptr, i32 } [ %210, %209 ], [ %208, %207 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %8) #10
  br label %382

212:                                              ; preds = %190
  %213 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 61)
  br i1 %213, label %214, label %222

214:                                              ; preds = %212
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %9) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %9, i32 noundef 48)
          to label %215 unwind label %217

215:                                              ; preds = %214
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %9)
          to label %216 unwind label %219

216:                                              ; preds = %215
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #10
  br label %.invoke364

217:                                              ; preds = %214
  %218 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %221

219:                                              ; preds = %215
  %220 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %9) #10
  br label %221

221:                                              ; preds = %219, %217
  %.pn300 = phi { ptr, i32 } [ %220, %219 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %9) #10
  br label %382

222:                                              ; preds = %212
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %10) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %10, i32 noundef 47)
          to label %223 unwind label %225

223:                                              ; preds = %222
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %10)
          to label %224 unwind label %227

224:                                              ; preds = %223
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #10
  br label %.invoke364

225:                                              ; preds = %222
  %226 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %229

227:                                              ; preds = %223
  %228 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %10) #10
  br label %229

229:                                              ; preds = %227, %225
  %.pn298 = phi { ptr, i32 } [ %228, %227 ], [ %226, %225 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %10) #10
  br label %382

230:                                              ; preds = %186
  %231 = call noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4) %5)
  br i1 %231, label %248, label %232

232:                                              ; preds = %230
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %.sroa.064.0.copyload = load i32, ptr %5, align 4, !tbaa !44
  %233 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %.sroa.064.0.copyload)
          to label %234 unwind label %199

234:                                              ; preds = %232
  br i1 %233, label %235, label %243

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %11) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %11, i32 noundef 46)
          to label %236 unwind label %238

236:                                              ; preds = %235
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %11)
          to label %237 unwind label %240

237:                                              ; preds = %236
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %11) #10
  br label %.invoke364

238:                                              ; preds = %235
  %239 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %242

240:                                              ; preds = %236
  %241 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %11) #10
  br label %242

242:                                              ; preds = %240, %238
  %.pn284 = phi { ptr, i32 } [ %241, %240 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %11) #10
  br label %382

243:                                              ; preds = %234
  %244 = invoke noundef double @_ZNK4U1289to_doubleEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
          to label %245 unwind label %246

245:                                              ; preds = %243
  invoke void @_ZN5Token10make_floatEd9eCoreType(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, double noundef %244, i32 noundef 1)
          to label %381 unwind label %246

246:                                              ; preds = %245, %243
  %247 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

248:                                              ; preds = %230, %182
  %249 = load i32, ptr %6, align 4, !tbaa !49
  %.not286 = icmp eq i32 %249, 2
  br i1 %.not286, label %265, label %250

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %12, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %13, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %251 unwind label %255

251:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #10
  store ptr %12, ptr %15, align 8, !tbaa !51
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull %14)
          to label %252 unwind label %257

252:                                              ; preds = %251
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  %253 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %253, ptr noundef nonnull @.str.5)
          to label %254 unwind label %260

254:                                              ; preds = %252
  invoke void @__cxa_throw(ptr nonnull %253, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %949 unwind label %262

255:                                              ; preds = %250
  %256 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %259

257:                                              ; preds = %251
  %258 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #10
  br label %259

259:                                              ; preds = %257, %255
  %.pn294 = phi { ptr, i32 } [ %258, %257 ], [ %256, %255 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  br label %264

260:                                              ; preds = %252
  %261 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %253) #10
  br label %264

262:                                              ; preds = %254
  %263 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %264

264:                                              ; preds = %262, %260, %259
  %.pn296 = phi { ptr, i32 } [ %263, %262 ], [ %261, %260 ], [ %.pn294, %259 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %382

265:                                              ; preds = %248
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %266 = invoke noundef double @_ZN5Lexer10parseFloatE4U128(ptr noundef nonnull align 8 dereferenceable(256) %1, i64 %172, i64 %174)
          to label %267 unwind label %272

267:                                              ; preds = %265
  %268 = fcmp uno double %266, 0.000000e+00
  br i1 %268, label %269, label %277

269:                                              ; preds = %267
  %270 = call noundef zeroext i1 @_ZNKSt6vectorI5TokenSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #10
  br i1 %270, label %271, label %274

271:                                              ; preds = %269
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.7, i32 noundef 464, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #12
  unreachable

272:                                              ; preds = %318, %274, %265
  %273 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

274:                                              ; preds = %269
  %275 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorI5TokenSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #10
  invoke void @_ZN5TokenC2EOS_(ptr noundef nonnull align 8 dereferenceable(88) %0, ptr noundef nonnull align 8 dereferenceable(88) %275)
          to label %276 unwind label %272

276:                                              ; preds = %274
  call void @_ZNSt6vectorI5TokenSaIS0_EE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #10
  br label %381

277:                                              ; preds = %267
  %278 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %279 unwind label %291

279:                                              ; preds = %277
  store i32 %278, ptr %5, align 4, !tbaa !44
  %280 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %278)
          to label %281 unwind label %291

281:                                              ; preds = %279
  br i1 %280, label %282, label %317

282:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  %.sroa.052.0.copyload.pre = load i32, ptr %5, align 4, !tbaa !44
  br label %283

283:                                              ; preds = %290, %282
  %.sroa.052.0.copyload = phi i32 [ %289, %290 ], [ %.sroa.052.0.copyload.pre, %282 ]
  %284 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %.sroa.052.0.copyload)
          to label %285 unwind label %293

285:                                              ; preds = %283
  br i1 %284, label %286, label %297

286:                                              ; preds = %285
  %287 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %288 unwind label %293

288:                                              ; preds = %286
  %289 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %290 unwind label %295

290:                                              ; preds = %288
  store i32 %289, ptr %5, align 4, !tbaa !44
  br label %283, !llvm.loop !52

291:                                              ; preds = %279, %277
  %292 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %382

293:                                              ; preds = %286, %283
  %294 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %316

295:                                              ; preds = %288
  %296 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %316

297:                                              ; preds = %285
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %298 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.8)
  br i1 %298, label %315, label %299

299:                                              ; preds = %297
  %300 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull @.str.9)
  br i1 %300, label %315, label %301

301:                                              ; preds = %299
  %302 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %18) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %18)
          to label %303 unwind label %.thread

303:                                              ; preds = %301
  %304 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA23_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %18, ptr noundef nonnull align 1 dereferenceable(23) @.str.10)
          to label %305 unwind label %.thread318

305:                                              ; preds = %303
  %306 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEENS0_12basic_stringIcS3_S4_EEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %304, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %307 unwind label %.thread318

307:                                              ; preds = %305
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(112) %306)
          to label %308 unwind label %.thread318

308:                                              ; preds = %307
  invoke void @_ZN12CompileError7GenericC1ENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %302, ptr noundef nonnull %17)
          to label %309 unwind label %312

309:                                              ; preds = %308
  invoke void @__cxa_throw(ptr nonnull %302, ptr nonnull @_ZTIN12CompileError7GenericE, ptr nonnull @_ZN12CompileError7GenericD2Ev) #11
          to label %949 unwind label %312

.thread:                                          ; preds = %301
  %310 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %18) #10
  br label %314

.thread318:                                       ; preds = %303, %305, %307
  %311 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %18) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %18) #10
  br label %314

312:                                              ; preds = %308, %309
  %.0172 = phi i1 [ false, %309 ], [ true, %308 ]
  %313 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #10
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %18) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %18) #10
  br i1 %.0172, label %314, label %316

314:                                              ; preds = %.thread318, %.thread, %312
  %.pn287.pn317 = phi { ptr, i32 } [ %310, %.thread ], [ %313, %312 ], [ %311, %.thread318 ]
  call void @__cxa_free_exception(ptr %302) #10
  br label %316

315:                                              ; preds = %299, %297
  %.0169 = phi i32 [ 17, %297 ], [ 18, %299 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  br label %318

316:                                              ; preds = %312, %314, %295, %293
  %.pn290 = phi { ptr, i32 } [ %296, %295 ], [ %294, %293 ], [ %.pn287.pn317, %314 ], [ %313, %312 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #10
  br label %382

317:                                              ; preds = %281
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  br label %318

318:                                              ; preds = %317, %315
  %.1170 = phi i32 [ %.0169, %315 ], [ 1, %317 ]
  invoke void @_ZN5Token10make_floatEd9eCoreType(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, double noundef %266, i32 noundef %.1170)
          to label %381 unwind label %272

319:                                              ; preds = %180
  %.sroa.049.0.copyload = load i32, ptr %5, align 4, !tbaa !44
  %320 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %.sroa.049.0.copyload)
          to label %321 unwind label %199

321:                                              ; preds = %319
  br i1 %320, label %322, label %380

322:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  %.sroa.048.0.copyload.pre = load i32, ptr %5, align 4, !tbaa !44
  br label %323

323:                                              ; preds = %330, %322
  %.sroa.048.0.copyload = phi i32 [ %329, %330 ], [ %.sroa.048.0.copyload.pre, %322 ]
  %324 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %.sroa.048.0.copyload)
          to label %325 unwind label %.loopexit

325:                                              ; preds = %323
  br i1 %324, label %326, label %333

326:                                              ; preds = %325
  %327 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %328 unwind label %.loopexit

328:                                              ; preds = %326
  %329 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %330 unwind label %331

330:                                              ; preds = %328
  store i32 %329, ptr %5, align 4, !tbaa !44
  br label %323, !llvm.loop !53

.loopexit:                                        ; preds = %323, %326
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %379

.loopexit.split-lp:                               ; preds = %377
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %379

331:                                              ; preds = %328
  %332 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %379

333:                                              ; preds = %325
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %334 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.11)
  br i1 %334, label %377, label %335

335:                                              ; preds = %333
  %336 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.12)
  br i1 %336, label %377, label %337

337:                                              ; preds = %335
  %338 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.13)
  br i1 %338, label %377, label %339

339:                                              ; preds = %337
  %340 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.14)
  br i1 %340, label %377, label %341

341:                                              ; preds = %339
  %342 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.15)
  br i1 %342, label %377, label %343

343:                                              ; preds = %341
  %344 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.16)
  br i1 %344, label %377, label %345

345:                                              ; preds = %343
  %346 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.17)
  br i1 %346, label %377, label %347

347:                                              ; preds = %345
  %348 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.18)
  br i1 %348, label %377, label %349

349:                                              ; preds = %347
  %350 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.19)
  br i1 %350, label %377, label %351

351:                                              ; preds = %349
  %352 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.20)
  br i1 %352, label %377, label %353

353:                                              ; preds = %351
  %354 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.21)
  br i1 %354, label %377, label %355

355:                                              ; preds = %353
  %356 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.22)
  br i1 %356, label %377, label %357

357:                                              ; preds = %355
  %358 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.8)
  br i1 %358, label %377, label %359

359:                                              ; preds = %357
  %360 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.9)
  br i1 %360, label %377, label %361

361:                                              ; preds = %359
  %362 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %21) #10
  invoke void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %21)
          to label %363 unwind label %.thread321

363:                                              ; preds = %361
  %364 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA25_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %21, ptr noundef nonnull align 1 dereferenceable(25) @.str.23)
          to label %365 unwind label %.thread325

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEENS0_12basic_stringIcS3_S4_EEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %364, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %367 unwind label %.thread325

367:                                              ; preds = %365
  %368 = invoke noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA2_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112) %366, ptr noundef nonnull align 1 dereferenceable(2) @.str.2)
          to label %369 unwind label %.thread325

369:                                              ; preds = %367
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(112) %368)
          to label %370 unwind label %.thread325

370:                                              ; preds = %369
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %362, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %20)
          to label %371 unwind label %374

371:                                              ; preds = %370
  invoke void @__cxa_throw(ptr nonnull %362, ptr nonnull @_ZTIN12CompileError7GenericE, ptr nonnull @_ZN12CompileError7GenericD2Ev) #11
          to label %949 unwind label %374

.thread321:                                       ; preds = %361
  %372 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %21) #10
  br label %376

.thread325:                                       ; preds = %363, %365, %367, %369
  %373 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %21) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %21) #10
  br label %376

374:                                              ; preds = %370, %371
  %.0175 = phi i1 [ false, %371 ], [ true, %370 ]
  %375 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #10
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %21) #10
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %21) #10
  br i1 %.0175, label %376, label %379

376:                                              ; preds = %.thread325, %.thread321, %374
  %.pn279.pn324 = phi { ptr, i32 } [ %372, %.thread321 ], [ %375, %374 ], [ %373, %.thread325 ]
  call void @__cxa_free_exception(ptr %362) #10
  br label %379

377:                                              ; preds = %359, %357, %355, %353, %351, %349, %347, %345, %343, %341, %339, %337, %335, %333
  %.2171 = phi i32 [ 8, %333 ], [ 10, %335 ], [ 12, %337 ], [ 14, %339 ], [ 16, %341 ], [ 6, %343 ], [ 7, %345 ], [ 9, %347 ], [ 11, %349 ], [ 13, %351 ], [ 15, %353 ], [ 5, %355 ], [ 17, %357 ], [ 18, %359 ]
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %172, i64 %174, i32 noundef %.2171)
          to label %378 unwind label %.loopexit.split-lp

378:                                              ; preds = %377
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  br label %381

379:                                              ; preds = %.loopexit, %.loopexit.split-lp, %374, %376, %331
  %.pn282 = phi { ptr, i32 } [ %332, %331 ], [ %.pn279.pn324, %376 ], [ %375, %374 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  br label %382

380:                                              ; preds = %321
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  br label %.invoke364

.invoke364:                                       ; preds = %194, %224, %216, %237, %380
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %172, i64 %174, i32 noundef 1)
          to label %381 unwind label %199

381:                                              ; preds = %.invoke364, %276, %318, %245, %378
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #10
  br label %510

382:                                              ; preds = %272, %291, %316, %379, %264, %246, %242, %229, %221, %211, %205, %203, %201, %199
  %.pn304 = phi { ptr, i32 } [ %200, %199 ], [ %.pn302, %211 ], [ %.pn300, %221 ], [ %.pn298, %229 ], [ %206, %205 ], [ %.pn296, %264 ], [ %.pn284, %242 ], [ %247, %246 ], [ %204, %203 ], [ %.pn282, %379 ], [ %202, %201 ], [ %273, %272 ], [ %.pn290, %316 ], [ %292, %291 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #10
  br label %511

383:                                              ; preds = %167
  %384 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 98)
  br i1 %384, label %387, label %385

385:                                              ; preds = %383
  %386 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 114)
  br i1 %386, label %387, label %498

387:                                              ; preds = %385, %383
  %388 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 98)
  br i1 %388, label %389, label %.thread328

389:                                              ; preds = %387
  %390 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %395 unwind label %393

391:                                              ; preds = %495, %489, %398
  %392 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %511

393:                                              ; preds = %389
  %394 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %511

395:                                              ; preds = %389
  store i32 %390, ptr %5, align 4, !tbaa !44
  %396 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 114)
  br i1 %396, label %398, label %399

.thread328:                                       ; preds = %387
  %397 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 114)
  br i1 %397, label %398, label %.thread329

398:                                              ; preds = %.thread328, %395
  invoke void @_ZN5Lexer21getTokenInt_RawStringEb(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %1, i1 noundef zeroext %388)
          to label %510 unwind label %391

.thread329:                                       ; preds = %.thread328
  call void @__assert_fail(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.7, i32 noundef 539, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #12
  unreachable

399:                                              ; preds = %395
  %400 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 34)
  br i1 %400, label %401, label %444

401:                                              ; preds = %399
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  br label %402

402:                                              ; preds = %.backedge, %401
  %403 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %404 unwind label %417

404:                                              ; preds = %402
  store i32 %403, ptr %5, align 4, !tbaa !44
  %405 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 34)
  br i1 %405, label %406, label %432

406:                                              ; preds = %404
  %407 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 92)
  br i1 %407, label %408, label %430

408:                                              ; preds = %406
  %409 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %1, i8 noundef signext 34)
          to label %410 unwind label %421

410:                                              ; preds = %408
  %.not272 = icmp eq i32 %409, -1
  br i1 %.not272, label %.backedge, label %411

.backedge:                                        ; preds = %410, %427, %430
  br label %402, !llvm.loop !54

411:                                              ; preds = %410
  %412 = icmp ugt i32 %409, 256
  br i1 %412, label %413, label %427

413:                                              ; preds = %411
  %414 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %24) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.25, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %415 unwind label %.thread330

415:                                              ; preds = %413
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %414, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %23)
          to label %416 unwind label %424

416:                                              ; preds = %415
  invoke void @__cxa_throw(ptr nonnull %414, ptr nonnull @_ZTIN12CompileError7GenericE, ptr nonnull @_ZN12CompileError7GenericD2Ev) #11
          to label %949 unwind label %424

417:                                              ; preds = %402
  %418 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %443

419:                                              ; preds = %430
  %420 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %443

421:                                              ; preds = %427, %408
  %422 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %443

.thread330:                                       ; preds = %413
  %423 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  br label %426

424:                                              ; preds = %415, %416
  %.0179 = phi i1 [ false, %416 ], [ true, %415 ]
  %425 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %24) #10
  br i1 %.0179, label %426, label %443

426:                                              ; preds = %.thread330, %424
  %.pn273333 = phi { ptr, i32 } [ %423, %.thread330 ], [ %425, %424 ]
  call void @__cxa_free_exception(ptr %414) #10
  br label %443

427:                                              ; preds = %411
  %428 = trunc i32 %409 to i8
  %429 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %22, i8 noundef signext %428)
          to label %.backedge unwind label %421

430:                                              ; preds = %406
  %431 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %.backedge unwind label %419

432:                                              ; preds = %404
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  %433 = load ptr, ptr %1, align 8, !tbaa !55
  %434 = getelementptr inbounds i8, ptr %433, i64 64
  %435 = load ptr, ptr %434, align 8
  invoke void %435(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %26, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %436 unwind label %438

436:                                              ; preds = %432
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 20, ptr noundef nonnull %25, ptr noundef nonnull %26)
          to label %437 unwind label %440

437:                                              ; preds = %436
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  br label %510

438:                                              ; preds = %432
  %439 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %442

440:                                              ; preds = %436
  %441 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %26) #10
  br label %442

442:                                              ; preds = %440, %438
  %.pn270 = phi { ptr, i32 } [ %441, %440 ], [ %439, %438 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #10
  br label %443

443:                                              ; preds = %421, %426, %424, %442, %419, %417
  %.pn273.pn.pn = phi { ptr, i32 } [ %420, %419 ], [ %.pn270, %442 ], [ %418, %417 ], [ %.pn273333, %426 ], [ %425, %424 ], [ %422, %421 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #10
  br label %511

444:                                              ; preds = %399
  %445 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 39)
  br i1 %445, label %446, label %495

446:                                              ; preds = %444
  %447 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %448 unwind label %460

448:                                              ; preds = %446
  store i32 %447, ptr %5, align 4, !tbaa !44
  %449 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %5, i8 noundef signext 92)
  br i1 %449, label %450, label %475

450:                                              ; preds = %448
  %451 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %1, i8 noundef signext 39)
          to label %452 unwind label %462

452:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #10
  %453 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %454 unwind label %464

454:                                              ; preds = %452
  store i32 %453, ptr %27, align 4
  %455 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %27, i8 noundef signext 39)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #10
  br i1 %455, label %456, label %470

456:                                              ; preds = %454
  %457 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %458 unwind label %.thread334

458:                                              ; preds = %456
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %457, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %28)
          to label %459 unwind label %467

459:                                              ; preds = %458
  invoke void @__cxa_throw(ptr nonnull %457, ptr nonnull @_ZTIN12CompileError7GenericE, ptr nonnull @_ZN12CompileError7GenericD2Ev) #11
          to label %949 unwind label %467

460:                                              ; preds = %446
  %461 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %511

462:                                              ; preds = %470, %450
  %463 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %511

464:                                              ; preds = %452
  %465 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #10
  br label %511

.thread334:                                       ; preds = %456
  %466 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #10
  br label %469

467:                                              ; preds = %458, %459
  %.0181 = phi i1 [ false, %459 ], [ true, %458 ]
  %468 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #10
  br i1 %.0181, label %469, label %511

469:                                              ; preds = %.thread334, %467
  %.pn267337 = phi { ptr, i32 } [ %466, %.thread334 ], [ %468, %467 ]
  call void @__cxa_free_exception(ptr %457) #10
  br label %511

470:                                              ; preds = %454
  %471 = zext i32 %451 to i64
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %30, i64 noundef %471, i64 noundef 0)
  %472 = load i64, ptr %30, align 8
  %473 = getelementptr inbounds i8, ptr %30, i64 8
  %474 = load i64, ptr %473, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %472, i64 %474, i32 noundef 7)
          to label %510 unwind label %462

475:                                              ; preds = %448
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %31) #10
  %476 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %477 unwind label %483

477:                                              ; preds = %475
  store i32 %476, ptr %31, align 4
  %478 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %31, i8 noundef signext 39)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #10
  br i1 %478, label %479, label %489

479:                                              ; preds = %477
  %480 = call ptr @__cxa_allocate_exception(i64 40) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %33) #10
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %33)
          to label %481 unwind label %.thread338

481:                                              ; preds = %479
  invoke void @_ZN12CompileError7GenericC1ERK11TokenStreamNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(40) %480, ptr noundef nonnull align 8 dereferenceable(176) %1, ptr noundef nonnull %32)
          to label %482 unwind label %486

482:                                              ; preds = %481
  invoke void @__cxa_throw(ptr nonnull %480, ptr nonnull @_ZTIN12CompileError7GenericE, ptr nonnull @_ZN12CompileError7GenericD2Ev) #11
          to label %949 unwind label %486

483:                                              ; preds = %475
  %484 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %31) #10
  br label %511

.thread338:                                       ; preds = %479
  %485 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #10
  br label %488

486:                                              ; preds = %481, %482
  %.0186 = phi i1 [ false, %482 ], [ true, %481 ]
  %487 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #10
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %33) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %33) #10
  br i1 %.0186, label %488, label %511

488:                                              ; preds = %.thread338, %486
  %.pn265341 = phi { ptr, i32 } [ %485, %.thread338 ], [ %487, %486 ]
  call void @__cxa_free_exception(ptr %480) #10
  br label %511

489:                                              ; preds = %477
  %490 = load i32, ptr %5, align 4, !tbaa !47
  %491 = zext i32 %490 to i64
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %34, i64 noundef %491, i64 noundef 0)
  %492 = load i64, ptr %34, align 8
  %493 = getelementptr inbounds i8, ptr %34, i64 8
  %494 = load i64, ptr %493, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %492, i64 %494, i32 noundef 7)
          to label %510 unwind label %391

495:                                              ; preds = %444
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  call void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %35, i32 noundef 98)
  call void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %36, i32 noundef 0)
  %496 = load i32, ptr %35, align 4
  %497 = load i32, ptr %36, align 4
  invoke void @_ZN5Lexer22getTokenInt_IdentifierE9CodepointS0_b(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %1, i32 %496, i32 %497, i1 noundef zeroext true)
          to label %510 unwind label %391

498:                                              ; preds = %385
  %.sroa.029.0.copyload = load i32, ptr %5, align 4, !tbaa !44
  %499 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %.sroa.029.0.copyload)
          to label %500 unwind label %197

500:                                              ; preds = %498
  br i1 %499, label %501, label %503

501:                                              ; preds = %500
  %.sroa.028.0.copyload = load i32, ptr %5, align 4, !tbaa !44
  call void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %37, i32 noundef 0)
  %502 = load i32, ptr %37, align 4
  invoke void @_ZN5Lexer22getTokenInt_IdentifierE9CodepointS0_b(ptr dead_on_unwind writable sret(%class.Token) align 8 %0, ptr noundef nonnull align 8 dereferenceable(256) %1, i32 %.sroa.028.0.copyload, i32 %502, i1 noundef zeroext true)
          to label %510 unwind label %197

503:                                              ; preds = %500
  %504 = call ptr @__cxa_allocate_exception(i64 8) #10
  %505 = load i32, ptr %5, align 4, !tbaa !47
  %506 = trunc i32 %505 to i8
  invoke void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8) %504, ptr noundef nonnull align 8 dereferenceable(176) %1, i8 noundef signext %506)
          to label %507 unwind label %508

507:                                              ; preds = %503
  invoke void @__cxa_throw(ptr nonnull %504, ptr nonnull @_ZTIN10ParseError7BadCharE, ptr nonnull @_ZN10ParseError7BadCharD1Ev) #11
          to label %949 unwind label %197

508:                                              ; preds = %503
  %509 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %504) #10
  br label %511

510:                                              ; preds = %501, %437, %398, %470, %489, %495, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  br label %935

511:                                              ; preds = %391, %393, %443, %460, %483, %488, %486, %467, %469, %464, %462, %508, %382, %197
  %.pn304.pn = phi { ptr, i32 } [ %.pn304, %382 ], [ %198, %197 ], [ %509, %508 ], [ %392, %391 ], [ %.pn273.pn.pn, %443 ], [ %.pn265341, %488 ], [ %487, %486 ], [ %484, %483 ], [ %461, %460 ], [ %394, %393 ], [ %.pn267337, %469 ], [ %468, %467 ], [ %463, %462 ], [ %465, %464 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #10
  br label %936

512:                                              ; preds = %163
  %513 = icmp sgt i32 %162, 0
  br i1 %513, label %514, label %539

514:                                              ; preds = %512
  %515 = icmp eq i32 %162, 46
  br i1 %515, label %516, label %538

516:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #10
  %517 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %518 unwind label %527

518:                                              ; preds = %516
  store i32 %517, ptr %38, align 4
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %519 = call noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4) %38)
  br i1 %519, label %520, label %536

520:                                              ; preds = %518
  %521 = invoke { i64, i64 } @_ZN5Lexer8parseIntEPNS_7NumModeE(ptr noundef nonnull align 8 dereferenceable(256) %1, ptr noundef null)
          to label %522 unwind label %529

522:                                              ; preds = %520
  %523 = extractvalue { i64, i64 } %521, 0
  %524 = extractvalue { i64, i64 } %521, 1
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %39) #10
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %39, i64 %523, i64 %524, i32 noundef 1)
          to label %525 unwind label %531

525:                                              ; preds = %522
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %39)
          to label %526 unwind label %533

526:                                              ; preds = %525
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %39) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %39) #10
  br label %536

527:                                              ; preds = %516
  %528 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %537

529:                                              ; preds = %520
  %530 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %537

531:                                              ; preds = %522
  %532 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %535

533:                                              ; preds = %525
  %534 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %39) #10
  br label %535

535:                                              ; preds = %533, %531
  %.pn261 = phi { ptr, i32 } [ %534, %533 ], [ %532, %531 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %39) #10
  br label %537

536:                                              ; preds = %518, %526
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #10
  br label %538

537:                                              ; preds = %529, %535, %527
  %.pn261.pn.pn = phi { ptr, i32 } [ %528, %527 ], [ %.pn261, %535 ], [ %530, %529 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #10
  br label %936

538:                                              ; preds = %536, %514
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef %162)
          to label %935 unwind label %195

539:                                              ; preds = %512
  switch i32 %162, label %934 [
    i32 -1, label %540
    i32 -2, label %646
    i32 -3, label %789
    i32 -4, label %899
  ]

540:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %41) #10
  %541 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %542 unwind label %550

542:                                              ; preds = %540
  store i32 %541, ptr %41, align 4
  %543 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %41, i8 noundef signext 47)
  br i1 %543, label %544, label %554

544:                                              ; preds = %542
  %545 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %546 unwind label %552

546:                                              ; preds = %544
  store i32 %545, ptr %41, align 4, !tbaa !44
  %547 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %41, i8 noundef signext 47)
  br i1 %547, label %548, label %561

548:                                              ; preds = %546
  %549 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull @.str.27)
          to label %561 unwind label %.loopexit.split-lp344

550:                                              ; preds = %540
  %551 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %645

.loopexit343:                                     ; preds = %564
  %lpad.loopexit345 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %645

.loopexit.split-lp344:                            ; preds = %548, %631, %632
  %lpad.loopexit.split-lp346 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %645

552:                                              ; preds = %544
  %553 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %645

554:                                              ; preds = %542
  %555 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %41, i8 noundef signext 33)
  br i1 %555, label %556, label %561

556:                                              ; preds = %554
  %557 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %558 unwind label %559

558:                                              ; preds = %556
  store i32 %557, ptr %41, align 4, !tbaa !44
  br label %561

559:                                              ; preds = %556
  %560 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %645

561:                                              ; preds = %546, %554, %558, %548
  %.0189 = phi i1 [ false, %548 ], [ true, %558 ], [ false, %554 ], [ false, %546 ]
  %.0188 = phi i1 [ false, %548 ], [ false, %558 ], [ false, %554 ], [ true, %546 ]
  %562 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %41, i8 noundef signext 10)
  br i1 %562, label %.lr.ph, label %.critedge2

.lr.ph:                                           ; preds = %561, %568
  %563 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %41, i8 noundef signext 13)
  br i1 %563, label %564, label %.critedge2

564:                                              ; preds = %.lr.ph
  %565 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 4 dereferenceable(4) %41)
          to label %566 unwind label %.loopexit343

566:                                              ; preds = %564
  %567 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %568 unwind label %570

568:                                              ; preds = %566
  store i32 %567, ptr %41, align 4, !tbaa !44
  %569 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %41, i8 noundef signext 10)
  br i1 %569, label %.lr.ph, label %.critedge2, !llvm.loop !57

570:                                              ; preds = %566
  %571 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %645

.critedge2:                                       ; preds = %.lr.ph, %568, %561
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %brmerge = or i1 %.0189, %.0188
  br i1 %brmerge, label %572, label %632

572:                                              ; preds = %.critedge2
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %42) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %42, i32 noundef 30)
          to label %573 unwind label %592

573:                                              ; preds = %572
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %42)
          to label %574 unwind label %594

574:                                              ; preds = %573
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %42) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %43) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %44, ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  %575 = load ptr, ptr %1, align 8, !tbaa !55
  %576 = getelementptr inbounds i8, ptr %575, i64 64
  %577 = load ptr, ptr %576, align 8
  invoke void %577(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %45, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %578 unwind label %597

578:                                              ; preds = %574
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %43, i32 noundef 19, ptr noundef nonnull %44, ptr noundef nonnull %45)
          to label %579 unwind label %599

579:                                              ; preds = %578
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %43)
          to label %580 unwind label %601

580:                                              ; preds = %579
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %43) #10
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %43) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %46) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %46, i32 noundef 50)
          to label %581 unwind label %605

581:                                              ; preds = %580
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %46)
          to label %582 unwind label %607

582:                                              ; preds = %581
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %46) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %47) #10
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %49, ptr noundef nonnull @.str.28)
          to label %583 unwind label %610

583:                                              ; preds = %582
  invoke void @_ZN5IdentC2E8RcString(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull %49)
          to label %584 unwind label %612

584:                                              ; preds = %583
  invoke void @_ZN5TokenC1E10eTokenType5Ident(ptr noundef nonnull align 8 dereferenceable(88) %47, i32 noundef 14, ptr noundef nonnull %48)
          to label %585 unwind label %614

585:                                              ; preds = %584
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %47)
          to label %586 unwind label %616

586:                                              ; preds = %585
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %47) #10
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %47) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %50) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %50, i32 noundef 29)
          to label %587 unwind label %621

587:                                              ; preds = %586
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %50)
          to label %588 unwind label %623

588:                                              ; preds = %587
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %50) #10
  br i1 %.0189, label %589, label %631

589:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %51) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %51, i32 noundef 43)
          to label %590 unwind label %626

590:                                              ; preds = %589
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %51)
          to label %591 unwind label %628

591:                                              ; preds = %590
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %51) #10
  br label %631

592:                                              ; preds = %572
  %593 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %596

594:                                              ; preds = %573
  %595 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %42) #10
  br label %596

596:                                              ; preds = %594, %592
  %.pn243 = phi { ptr, i32 } [ %595, %594 ], [ %593, %592 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %42) #10
  br label %645

597:                                              ; preds = %574
  %598 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %604

599:                                              ; preds = %578
  %600 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %603

601:                                              ; preds = %579
  %602 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %43) #10
  br label %603

603:                                              ; preds = %601, %599
  %.pn245 = phi { ptr, i32 } [ %602, %601 ], [ %600, %599 ]
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #10
  br label %604

604:                                              ; preds = %603, %597
  %.pn245.pn = phi { ptr, i32 } [ %.pn245, %603 ], [ %598, %597 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %44) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %43) #10
  br label %645

605:                                              ; preds = %580
  %606 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %609

607:                                              ; preds = %581
  %608 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %46) #10
  br label %609

609:                                              ; preds = %607, %605
  %.pn248 = phi { ptr, i32 } [ %608, %607 ], [ %606, %605 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %46) #10
  br label %645

610:                                              ; preds = %582
  %611 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %620

612:                                              ; preds = %583
  %613 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %619

614:                                              ; preds = %584
  %615 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %618

616:                                              ; preds = %585
  %617 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %47) #10
  br label %618

618:                                              ; preds = %616, %614
  %.pn250 = phi { ptr, i32 } [ %617, %616 ], [ %615, %614 ]
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #10
  br label %619

619:                                              ; preds = %618, %612
  %.pn250.pn = phi { ptr, i32 } [ %.pn250, %618 ], [ %613, %612 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %49) #10
  br label %620

620:                                              ; preds = %619, %610
  %.pn250.pn.pn = phi { ptr, i32 } [ %.pn250.pn, %619 ], [ %611, %610 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %47) #10
  br label %645

621:                                              ; preds = %586
  %622 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %625

623:                                              ; preds = %587
  %624 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %50) #10
  br label %625

625:                                              ; preds = %623, %621
  %.pn254 = phi { ptr, i32 } [ %624, %623 ], [ %622, %621 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %50) #10
  br label %645

626:                                              ; preds = %589
  %627 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %630

628:                                              ; preds = %590
  %629 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %51) #10
  br label %630

630:                                              ; preds = %628, %626
  %.pn256 = phi { ptr, i32 } [ %629, %628 ], [ %627, %626 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %51) #10
  br label %645

631:                                              ; preds = %591, %588
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 21)
          to label %644 unwind label %.loopexit.split-lp344

632:                                              ; preds = %.critedge2
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %633 unwind label %.loopexit.split-lp344

633:                                              ; preds = %632
  %634 = load ptr, ptr %1, align 8, !tbaa !55
  %635 = getelementptr inbounds i8, ptr %634, i64 64
  %636 = load ptr, ptr %635, align 8
  invoke void %636(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %53, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %637 unwind label %639

637:                                              ; preds = %633
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 4, ptr noundef nonnull %52, ptr noundef nonnull %53)
          to label %638 unwind label %641

638:                                              ; preds = %637
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %644

639:                                              ; preds = %633
  %640 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %643

641:                                              ; preds = %637
  %642 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #10
  br label %643

643:                                              ; preds = %641, %639
  %.pn241 = phi { ptr, i32 } [ %642, %641 ], [ %640, %639 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  br label %645

644:                                              ; preds = %631, %638
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br label %935

645:                                              ; preds = %.loopexit343, %.loopexit.split-lp344, %552, %559, %570, %596, %604, %609, %620, %625, %630, %643, %550
  %.pn258.pn = phi { ptr, i32 } [ %551, %550 ], [ %571, %570 ], [ %.pn256, %630 ], [ %.pn254, %625 ], [ %.pn250.pn.pn, %620 ], [ %.pn248, %609 ], [ %.pn245.pn, %604 ], [ %.pn243, %596 ], [ %.pn241, %643 ], [ %553, %552 ], [ %560, %559 ], [ %lpad.loopexit345, %.loopexit343 ], [ %lpad.loopexit.split-lp346, %.loopexit.split-lp344 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %41) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #10
  br label %936

646:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  %647 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %648 unwind label %656

648:                                              ; preds = %646
  store i32 %647, ptr %3, align 4, !tbaa !44
  %649 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 42)
  br i1 %649, label %650, label %675

650:                                              ; preds = %648
  %651 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %652 unwind label %660

652:                                              ; preds = %650
  store i32 %651, ptr %3, align 4, !tbaa !44
  %653 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 42)
  br i1 %653, label %654, label %662

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull @.str.29)
          to label %682 unwind label %658

656:                                              ; preds = %646
  %657 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

658:                                              ; preds = %664, %654
  %659 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

660:                                              ; preds = %650
  %661 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

662:                                              ; preds = %652
  %663 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 47)
  br i1 %663, label %664, label %682

664:                                              ; preds = %662
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %55, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %665 unwind label %658

665:                                              ; preds = %664
  %666 = load ptr, ptr %1, align 8, !tbaa !55
  %667 = getelementptr inbounds i8, ptr %666, i64 64
  %668 = load ptr, ptr %667, align 8
  invoke void %668(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %56, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %669 unwind label %670

669:                                              ; preds = %665
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 4, ptr noundef nonnull %55, ptr noundef nonnull %56)
          to label %.sink.split unwind label %672

670:                                              ; preds = %665
  %671 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %674

672:                                              ; preds = %669
  %673 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %56) #10
  br label %674

674:                                              ; preds = %672, %670
  %.pn219 = phi { ptr, i32 } [ %673, %672 ], [ %671, %670 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #10
  br label %788

675:                                              ; preds = %648
  %676 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 33)
  br i1 %676, label %677, label %682

677:                                              ; preds = %675
  %678 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %679 unwind label %680

679:                                              ; preds = %677
  store i32 %678, ptr %3, align 4, !tbaa !44
  br label %682

680:                                              ; preds = %677
  %681 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

682:                                              ; preds = %662, %675, %679, %654
  %.0191 = phi i1 [ false, %654 ], [ false, %679 ], [ false, %675 ], [ true, %662 ]
  %.0190 = phi i1 [ false, %654 ], [ true, %679 ], [ false, %675 ], [ false, %662 ]
  br label %683

683:                                              ; preds = %712, %682
  %.0183 = phi i32 [ 0, %682 ], [ %.2185, %712 ]
  %684 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 47)
  br i1 %684, label %685, label %695

685:                                              ; preds = %683
  %686 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %687 unwind label %.loopexit348

687:                                              ; preds = %685
  %688 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %689 unwind label %693

689:                                              ; preds = %687
  store i32 %688, ptr %3, align 4, !tbaa !44
  %690 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 42)
  %691 = zext i1 %690 to i32
  %spec.select = add i32 %.0183, %691
  %692 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %710 unwind label %.loopexit348

.loopexit348:                                     ; preds = %.invoke365, %685, %689, %705, %706, %708
  %lpad.loopexit350 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

.loopexit.split-lp349:                            ; preds = %775, %776
  %lpad.loopexit.split-lp351 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

693:                                              ; preds = %687
  %694 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

695:                                              ; preds = %683
  %696 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 42)
  br i1 %696, label %697, label %.invoke365

697:                                              ; preds = %695
  %698 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %699 unwind label %703

699:                                              ; preds = %697
  store i32 %698, ptr %3, align 4, !tbaa !44
  %700 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 47)
  br i1 %700, label %701, label %708

701:                                              ; preds = %699
  %702 = icmp eq i32 %.0183, 0
  br i1 %702, label %715, label %705

703:                                              ; preds = %697
  %704 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

705:                                              ; preds = %701
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %54, i8 noundef signext 42)
          to label %706 unwind label %.loopexit348

706:                                              ; preds = %705
  %707 = add i32 %.0183, -1
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %54, i8 noundef signext 47)
          to label %710 unwind label %.loopexit348

708:                                              ; preds = %699
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %54, i8 noundef signext 42)
          to label %.invoke365 unwind label %.loopexit348

.invoke365:                                       ; preds = %695, %708
  %709 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %54, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %710 unwind label %.loopexit348

710:                                              ; preds = %.invoke365, %706, %689
  %.2185 = phi i32 [ %spec.select, %689 ], [ %707, %706 ], [ %.0183, %.invoke365 ]
  %711 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %712 unwind label %713

712:                                              ; preds = %710
  store i32 %711, ptr %3, align 4, !tbaa !44
  br label %683, !llvm.loop !58

713:                                              ; preds = %710
  %714 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %788

715:                                              ; preds = %701
  %brmerge314 = or i1 %.0191, %.0190
  br i1 %brmerge314, label %716, label %776

716:                                              ; preds = %715
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %57) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %57, i32 noundef 30)
          to label %717 unwind label %736

717:                                              ; preds = %716
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %57)
          to label %718 unwind label %738

718:                                              ; preds = %717
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %57) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %57) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %58) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  %719 = load ptr, ptr %1, align 8, !tbaa !55
  %720 = getelementptr inbounds i8, ptr %719, i64 64
  %721 = load ptr, ptr %720, align 8
  invoke void %721(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %60, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %722 unwind label %741

722:                                              ; preds = %718
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %58, i32 noundef 19, ptr noundef nonnull %59, ptr noundef nonnull %60)
          to label %723 unwind label %743

723:                                              ; preds = %722
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %58)
          to label %724 unwind label %745

724:                                              ; preds = %723
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #10
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %58) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %61) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %61, i32 noundef 50)
          to label %725 unwind label %749

725:                                              ; preds = %724
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %61)
          to label %726 unwind label %751

726:                                              ; preds = %725
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %61) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %61) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %62) #10
  invoke void @_ZN8RcString12new_internedEPKc(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %64, ptr noundef nonnull @.str.28)
          to label %727 unwind label %754

727:                                              ; preds = %726
  invoke void @_ZN5IdentC2E8RcString(ptr noundef nonnull align 8 dereferenceable(16) %63, ptr noundef nonnull %64)
          to label %728 unwind label %756

728:                                              ; preds = %727
  invoke void @_ZN5TokenC1E10eTokenType5Ident(ptr noundef nonnull align 8 dereferenceable(88) %62, i32 noundef 14, ptr noundef nonnull %63)
          to label %729 unwind label %758

729:                                              ; preds = %728
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %62)
          to label %730 unwind label %760

730:                                              ; preds = %729
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %62) #10
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %62) #10
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %65) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %65, i32 noundef 29)
          to label %731 unwind label %765

731:                                              ; preds = %730
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %65)
          to label %732 unwind label %767

732:                                              ; preds = %731
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %65) #10
  br i1 %.0190, label %733, label %775

733:                                              ; preds = %732
  call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %66) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %66, i32 noundef 43)
          to label %734 unwind label %770

734:                                              ; preds = %733
  invoke void @_ZNSt6vectorI5TokenSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 8 dereferenceable(88) %66)
          to label %735 unwind label %772

735:                                              ; preds = %734
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %66) #10
  br label %775

736:                                              ; preds = %716
  %737 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %740

738:                                              ; preds = %717
  %739 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %57) #10
  br label %740

740:                                              ; preds = %738, %736
  %.pn223 = phi { ptr, i32 } [ %739, %738 ], [ %737, %736 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %57) #10
  br label %788

741:                                              ; preds = %718
  %742 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %748

743:                                              ; preds = %722
  %744 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %747

745:                                              ; preds = %723
  %746 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %58) #10
  br label %747

747:                                              ; preds = %745, %743
  %.pn225 = phi { ptr, i32 } [ %746, %745 ], [ %744, %743 ]
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #10
  br label %748

748:                                              ; preds = %747, %741
  %.pn225.pn = phi { ptr, i32 } [ %.pn225, %747 ], [ %742, %741 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #10
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %58) #10
  br label %788

749:                                              ; preds = %724
  %750 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %753

751:                                              ; preds = %725
  %752 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %61) #10
  br label %753

753:                                              ; preds = %751, %749
  %.pn228 = phi { ptr, i32 } [ %752, %751 ], [ %750, %749 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %61) #10
  br label %788

754:                                              ; preds = %726
  %755 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %764

756:                                              ; preds = %727
  %757 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %763

758:                                              ; preds = %728
  %759 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %762

760:                                              ; preds = %729
  %761 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %62) #10
  br label %762

762:                                              ; preds = %760, %758
  %.pn230 = phi { ptr, i32 } [ %761, %760 ], [ %759, %758 ]
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %63) #10
  br label %763

763:                                              ; preds = %762, %756
  %.pn230.pn = phi { ptr, i32 } [ %.pn230, %762 ], [ %757, %756 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #10
  br label %764

764:                                              ; preds = %763, %754
  %.pn230.pn.pn = phi { ptr, i32 } [ %.pn230.pn, %763 ], [ %755, %754 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %62) #10
  br label %788

765:                                              ; preds = %730
  %766 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %769

767:                                              ; preds = %731
  %768 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %65) #10
  br label %769

769:                                              ; preds = %767, %765
  %.pn234 = phi { ptr, i32 } [ %768, %767 ], [ %766, %765 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %65) #10
  br label %788

770:                                              ; preds = %733
  %771 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %774

772:                                              ; preds = %734
  %773 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5TokenD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %66) #10
  br label %774

774:                                              ; preds = %772, %770
  %.pn236 = phi { ptr, i32 } [ %773, %772 ], [ %771, %770 ]
  call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %66) #10
  br label %788

775:                                              ; preds = %735, %732
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 21)
          to label %787 unwind label %.loopexit.split-lp349

776:                                              ; preds = %715
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %777 unwind label %.loopexit.split-lp349

777:                                              ; preds = %776
  %778 = load ptr, ptr %1, align 8, !tbaa !55
  %779 = getelementptr inbounds i8, ptr %778, i64 64
  %780 = load ptr, ptr %779, align 8
  invoke void %780(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %68, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %781 unwind label %782

781:                                              ; preds = %777
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 4, ptr noundef nonnull %67, ptr noundef nonnull %68)
          to label %.sink.split unwind label %784

782:                                              ; preds = %777
  %783 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %786

784:                                              ; preds = %781
  %785 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %68) #10
  br label %786

786:                                              ; preds = %784, %782
  %.pn221 = phi { ptr, i32 } [ %785, %784 ], [ %783, %782 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #10
  br label %788

.sink.split:                                      ; preds = %781, %669
  %.sink366 = phi ptr [ %56, %669 ], [ %68, %781 ]
  %.sink = phi ptr [ %55, %669 ], [ %67, %781 ]
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %.sink366) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #10
  br label %787

787:                                              ; preds = %.sink.split, %775
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #10
  br label %935

788:                                              ; preds = %.loopexit348, %.loopexit.split-lp349, %693, %703, %713, %740, %748, %753, %764, %769, %774, %786, %680, %674, %660, %658, %656
  %.pn238.pn = phi { ptr, i32 } [ %659, %658 ], [ %.pn219, %674 ], [ %661, %660 ], [ %681, %680 ], [ %657, %656 ], [ %714, %713 ], [ %694, %693 ], [ %.pn236, %774 ], [ %.pn234, %769 ], [ %.pn230.pn.pn, %764 ], [ %.pn228, %753 ], [ %.pn225.pn, %748 ], [ %.pn223, %740 ], [ %.pn221, %786 ], [ %704, %703 ], [ %lpad.loopexit350, %.loopexit348 ], [ %lpad.loopexit.split-lp351, %.loopexit.split-lp349 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #10
  br label %936

789:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %69) #10
  %790 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %791 unwind label %803

791:                                              ; preds = %789
  store i32 %790, ptr %69, align 4
  switch i32 %790, label %839 [
    i32 92, label %792
    i32 39, label %824
  ]

792:                                              ; preds = %791
  %793 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %1, i8 noundef signext 39)
          to label %794 unwind label %805

794:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #10
  %795 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %796 unwind label %807

796:                                              ; preds = %794
  store i32 %795, ptr %70, align 4
  %797 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %70, i8 noundef signext 39)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #10
  br i1 %797, label %798, label %819

798:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #10
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %71, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %72) #10
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %72, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %799 unwind label %809

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #10
  store ptr %71, ptr %74, align 8, !tbaa !51
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(8) %74) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull %73)
          to label %800 unwind label %811

800:                                              ; preds = %799
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #10
  %801 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %801, ptr noundef nonnull @.str.5)
          to label %802 unwind label %814

802:                                              ; preds = %800
  invoke void @__cxa_throw(ptr nonnull %801, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %949 unwind label %816

803:                                              ; preds = %850, %843, %789
  %804 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %898

805:                                              ; preds = %819, %792
  %806 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %898

807:                                              ; preds = %794
  %808 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #10
  br label %898

809:                                              ; preds = %798
  %810 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %813

811:                                              ; preds = %799
  %812 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %72) #10
  br label %813

813:                                              ; preds = %811, %809
  %.pn213 = phi { ptr, i32 } [ %812, %811 ], [ %810, %809 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %72) #10
  br label %818

814:                                              ; preds = %800
  %815 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %801) #10
  br label %818

816:                                              ; preds = %802
  %817 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %818

818:                                              ; preds = %816, %814, %813
  %.pn215 = phi { ptr, i32 } [ %817, %816 ], [ %815, %814 ], [ %.pn213, %813 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #10
  br label %898

819:                                              ; preds = %796
  %820 = zext i32 %793 to i64
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %75, i64 noundef %820, i64 noundef 0)
  %821 = load i64, ptr %75, align 8
  %822 = getelementptr inbounds i8, ptr %75, i64 8
  %823 = load i64, ptr %822, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %821, i64 %823, i32 noundef 3)
          to label %897 unwind label %805

824:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %76) #10
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %76, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #10
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %77, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %825 unwind label %829

825:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %79) #10
  store ptr %76, ptr %79, align 8, !tbaa !51
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr noundef nonnull %78)
          to label %826 unwind label %831

826:                                              ; preds = %825
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #10
  %827 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %827, ptr noundef nonnull @.str.5)
          to label %828 unwind label %834

828:                                              ; preds = %826
  invoke void @__cxa_throw(ptr nonnull %827, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %949 unwind label %836

829:                                              ; preds = %824
  %830 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %833

831:                                              ; preds = %825
  %832 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %78) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %79) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %77) #10
  br label %833

833:                                              ; preds = %831, %829
  %.pn209 = phi { ptr, i32 } [ %832, %831 ], [ %830, %829 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #10
  br label %838

834:                                              ; preds = %826
  %835 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %827) #10
  br label %838

836:                                              ; preds = %828
  %837 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %838

838:                                              ; preds = %836, %834, %833
  %.pn211 = phi { ptr, i32 } [ %837, %836 ], [ %835, %834 ], [ %.pn209, %833 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %76) #10
  br label %898

839:                                              ; preds = %791
  %840 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %841 unwind label %848

841:                                              ; preds = %839
  store i32 %840, ptr %3, align 4, !tbaa !44
  %842 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 39)
  br i1 %842, label %843, label %850

843:                                              ; preds = %841
  %844 = zext i32 %790 to i64
  call void @_ZN4U128C2Emm(ptr noundef nonnull align 8 dereferenceable(16) %80, i64 noundef %844, i64 noundef 0)
  %845 = load i64, ptr %80, align 8
  %846 = getelementptr inbounds i8, ptr %80, i64 8
  %847 = load i64, ptr %846, align 8
  invoke void @_ZN5TokenC1E4U1289eCoreType(ptr noundef nonnull align 8 dereferenceable(88) %0, i64 %845, i64 %847, i32 noundef 3)
          to label %897 unwind label %803

848:                                              ; preds = %839
  %849 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %898

850:                                              ; preds = %841
  call void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %81, i32 noundef %790)
  %851 = load i32, ptr %81, align 4
  %852 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %851)
          to label %853 unwind label %803

853:                                              ; preds = %850
  br i1 %852, label %854, label %882

854:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %82) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  %855 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 4 dereferenceable(4) %69)
          to label %.preheader353.preheader unwind label %.loopexit.split-lp355

.preheader353.preheader:                          ; preds = %854
  %.sroa.05.0.copyload.pre = load i32, ptr %3, align 4, !tbaa !44
  br label %.preheader353

.preheader353:                                    ; preds = %.preheader353.preheader, %862
  %.sroa.05.0.copyload = phi i32 [ %.sroa.05.0.copyload.pre, %.preheader353.preheader ], [ %861, %862 ]
  %856 = invoke noundef zeroext i1 @_Z5issym9Codepoint(i32 %.sroa.05.0.copyload)
          to label %857 unwind label %.loopexit354

857:                                              ; preds = %.preheader353
  br i1 %856, label %858, label %865

858:                                              ; preds = %857
  %859 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %860 unwind label %.loopexit354

860:                                              ; preds = %858
  %861 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %862 unwind label %863

862:                                              ; preds = %860
  store i32 %861, ptr %3, align 4, !tbaa !44
  br label %.preheader353, !llvm.loop !59

.loopexit354:                                     ; preds = %.preheader353, %858
  %lpad.loopexit356 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %881

.loopexit.split-lp355:                            ; preds = %854, %865
  %lpad.loopexit.split-lp357 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %881

863:                                              ; preds = %860
  %864 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %881

865:                                              ; preds = %857
  call void @_ZN5Lexer6ungetcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
  %866 = load ptr, ptr %1, align 8, !tbaa !55
  %867 = getelementptr inbounds i8, ptr %866, i64 64
  %868 = load ptr, ptr %867, align 8
  invoke void %868(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %84, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %869 unwind label %.loopexit.split-lp355

869:                                              ; preds = %865
  invoke void @_ZN8RcString12new_internedERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%class.RcString) align 8 %85, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %870 unwind label %873

870:                                              ; preds = %869
  invoke void @_ZN5IdentC2ENS_7HygieneE8RcString(ptr noundef nonnull align 8 dereferenceable(16) %83, ptr noundef nonnull %84, ptr noundef nonnull %85)
          to label %871 unwind label %875

871:                                              ; preds = %870
  invoke void @_ZN5TokenC1E10eTokenType5Ident(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 15, ptr noundef nonnull %83)
          to label %872 unwind label %877

872:                                              ; preds = %871
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #10
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #10
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #10
  br label %897

873:                                              ; preds = %869
  %874 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %880

875:                                              ; preds = %870
  %876 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %879

877:                                              ; preds = %871
  %878 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5IdentD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #10
  br label %879

879:                                              ; preds = %877, %875
  %.pn204 = phi { ptr, i32 } [ %878, %877 ], [ %876, %875 ]
  call void @_ZN8RcStringD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #10
  br label %880

880:                                              ; preds = %879, %873
  %.pn204.pn = phi { ptr, i32 } [ %.pn204, %879 ], [ %874, %873 ]
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %84) #10
  br label %881

881:                                              ; preds = %.loopexit354, %.loopexit.split-lp355, %880, %863
  %.pn207 = phi { ptr, i32 } [ %864, %863 ], [ %.pn204.pn, %880 ], [ %lpad.loopexit356, %.loopexit354 ], [ %lpad.loopexit.split-lp357, %.loopexit.split-lp355 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %82) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %82) #10
  br label %898

882:                                              ; preds = %853
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %86) #10
  store ptr @__func__._ZN5Lexer11getTokenIntEv, ptr %86, align 8, !tbaa !51
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #10
  invoke void @_ZNK11TokenStream10point_spanEv(ptr dead_on_unwind nonnull writable sret(%struct.Span) align 8 %87, ptr noundef nonnull align 8 dereferenceable(176) %1)
          to label %883 unwind label %887

883:                                              ; preds = %882
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %89) #10
  store ptr %86, ptr %89, align 8, !tbaa !51
  call void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %88, ptr noundef nonnull align 8 dereferenceable(8) %89) #10
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull %88)
          to label %884 unwind label %889

884:                                              ; preds = %883
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #10
  %885 = call ptr @__cxa_allocate_exception(i64 16) #10
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %885, ptr noundef nonnull @.str.5)
          to label %886 unwind label %892

886:                                              ; preds = %884
  invoke void @__cxa_throw(ptr nonnull %885, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #11
          to label %949 unwind label %894

887:                                              ; preds = %882
  %888 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %891

889:                                              ; preds = %883
  %890 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %89) #10
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %87) #10
  br label %891

891:                                              ; preds = %889, %887
  %.pn200 = phi { ptr, i32 } [ %890, %889 ], [ %888, %887 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #10
  br label %896

892:                                              ; preds = %884
  %893 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @__cxa_free_exception(ptr %885) #10
  br label %896

894:                                              ; preds = %886
  %895 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %896

896:                                              ; preds = %894, %892, %891
  %.pn202 = phi { ptr, i32 } [ %895, %894 ], [ %893, %892 ], [ %.pn200, %891 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %86) #10
  br label %898

897:                                              ; preds = %843, %819, %872
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #10
  br label %935

898:                                              ; preds = %805, %807, %818, %896, %881, %848, %838, %803
  %.pn215.pn.pn = phi { ptr, i32 } [ %.pn211, %838 ], [ %804, %803 ], [ %.pn207, %881 ], [ %.pn202, %896 ], [ %849, %848 ], [ %.pn215, %818 ], [ %806, %805 ], [ %808, %807 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %69) #10
  br label %936

899:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %90) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  br label %900

900:                                              ; preds = %.backedge367, %899
  %901 = invoke i32 @_ZN5Lexer4getcEv(ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %902 unwind label %912

902:                                              ; preds = %900
  store i32 %901, ptr %3, align 4, !tbaa !44
  %903 = call noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 34)
  br i1 %903, label %904, label %922

904:                                              ; preds = %902
  %905 = call noundef zeroext i1 @_ZN9CodepointeqEc(ptr noundef nonnull align 4 dereferenceable(4) %3, i8 noundef signext 92)
  br i1 %905, label %906, label %920

906:                                              ; preds = %904
  %907 = invoke noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256) %1, i8 noundef signext 34)
          to label %908 unwind label %916

908:                                              ; preds = %906
  %.not = icmp eq i32 %907, -1
  br i1 %.not, label %.backedge367, label %909

.backedge367:                                     ; preds = %908, %911, %920
  br label %900, !llvm.loop !60

909:                                              ; preds = %908
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %91) #10
  call void @_ZN9CodepointC2Ej(ptr noundef nonnull align 4 dereferenceable(4) %91, i32 noundef %907)
  %910 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 4 dereferenceable(4) %91)
          to label %911 unwind label %918

911:                                              ; preds = %909
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %91) #10
  br label %.backedge367

912:                                              ; preds = %900
  %913 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %933

914:                                              ; preds = %920
  %915 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %933

916:                                              ; preds = %906
  %917 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %933

918:                                              ; preds = %909
  %919 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %91) #10
  br label %933

920:                                              ; preds = %904
  %921 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 4 dereferenceable(4) %3)
          to label %.backedge367 unwind label %914

922:                                              ; preds = %902
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %92, ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  %923 = load ptr, ptr %1, align 8, !tbaa !55
  %924 = getelementptr inbounds i8, ptr %923, i64 64
  %925 = load ptr, ptr %924, align 8
  invoke void %925(ptr dead_on_unwind nonnull writable sret(%"class.Ident::Hygiene") align 8 %93, ptr noundef nonnull align 8 dereferenceable(256) %1)
          to label %926 unwind label %928

926:                                              ; preds = %922
  invoke void @_ZN5TokenC1E10eTokenTypeNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN5Ident7HygieneE(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 19, ptr noundef nonnull %92, ptr noundef nonnull %93)
          to label %927 unwind label %930

927:                                              ; preds = %926
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #10
  br label %935

928:                                              ; preds = %922
  %929 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  br label %932

930:                                              ; preds = %926
  %931 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN5Lexer9EndOfFileE
  call void @_ZN5Ident7HygieneD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %93) #10
  br label %932

932:                                              ; preds = %930, %928
  %.pn = phi { ptr, i32 } [ %931, %930 ], [ %929, %928 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #10
  br label %933

933:                                              ; preds = %916, %918, %932, %914, %912
  %.pn197.pn = phi { ptr, i32 } [ %915, %914 ], [ %.pn, %932 ], [ %913, %912 ], [ %919, %918 ], [ %917, %916 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %90) #10
  br label %936

934:                                              ; preds = %539
  call void @__assert_fail(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.7, i32 noundef 773, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN5Lexer11getTokenIntEv) #12
  unreachable

935:                                              ; preds = %.critedge.invoke, %510, %644, %787, %927, %897, %538
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #10
  br label %944

936:                                              ; preds = %195, %511, %537, %645, %788, %898, %933, %158, %147, %139, %134, %125, %120, %114, %112
  %.pn310 = phi { ptr, i32 } [ %113, %112 ], [ %148, %147 ], [ %140, %139 ], [ %.pn308, %134 ], [ %126, %125 ], [ %121, %120 ], [ %115, %114 ], [ %159, %158 ], [ %.pn304.pn, %511 ], [ %196, %195 ], [ %.pn261.pn.pn, %537 ], [ %.pn197.pn, %933 ], [ %.pn215.pn.pn, %898 ], [ %.pn238.pn, %788 ], [ %.pn258.pn, %645 ]
  %.67157 = extractvalue { ptr, i32 } %.pn310, 1
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #10
  %937 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN5Lexer9EndOfFileE) #10
  %938 = icmp eq i32 %.67157, %937
  br i1 %938, label %939, label %945

939:                                              ; preds = %936
  %.67 = extractvalue { ptr, i32 } %.pn310, 0
  %940 = call ptr @__cxa_begin_catch(ptr %.67) #10
  invoke void @_ZN5TokenC1E10eTokenType(ptr noundef nonnull align 8 dereferenceable(88) %0, i32 noundef 1)
          to label %941 unwind label %942

941:                                              ; preds = %939
  call void @__cxa_end_catch()
  br label %944

942:                                              ; preds = %939
  %943 = landingpad { ptr, i32 }
          cleanup
  invoke void @__cxa_end_catch()
          to label %945 unwind label %946

944:                                              ; preds = %935, %96, %941
  ret void

945:                                              ; preds = %942, %936
  %.merged = phi { ptr, i32 } [ %.pn310, %936 ], [ %943, %942 ]
  resume { ptr, i32 } %.merged

946:                                              ; preds = %942
  %947 = landingpad { ptr, i32 }
          catch ptr null
  %948 = extractvalue { ptr, i32 } %947, 0
  call void @__clang_call_terminate(ptr %948) #12
  unreachable

949:                                              ; preds = %886, %828, %802, %507, %482, %459, %416, %371, %309, %254
  unreachable
}

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9CodepointneEc(ptr noundef nonnull align 4 dereferenceable(4), i8 noundef signext) local_unnamed_addr #2 align 2

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

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

declare void @_ZN10ParseError7BadCharC1ERK11TokenStreamc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(176), i8 noundef signext) unnamed_addr #3

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9Codepoint7isdigitEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { i64, i64 } @_ZN5Lexer8parseIntEPNS_7NumModeE(ptr noundef nonnull align 8 dereferenceable(256), ptr noundef) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZNK4U1289to_doubleEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #5 align 2

declare void @_ZN5Token10make_floatEd9eCoreType(ptr dead_on_unwind writable sret(%class.Token) align 8, double noundef, i32 noundef) local_unnamed_addr #3

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef double @_ZN5Lexer10parseFloatE4U128(ptr noundef nonnull align 8 dereferenceable(256), i64, i64) local_unnamed_addr #5 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZpLRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK9Codepoint(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEENS0_12basic_stringIcS3_S4_EEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA23_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(23)) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #5 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA2_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(112) ptr @_ZStlsINSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEEA25_cEOT_S8_RKT0_(ptr noundef nonnull align 8 dereferenceable(112), ptr noundef nonnull align 1 dereferenceable(25)) local_unnamed_addr #9

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Lexer21getTokenInt_RawStringEb(ptr dead_on_unwind noalias writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(256), i1 noundef zeroext) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN5Lexer11parseEscapeEc(ptr noundef nonnull align 8 dereferenceable(256), i8 noundef signext) local_unnamed_addr #5 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Lexer22getTokenInt_IdentifierE9CodepointS0_b(ptr dead_on_unwind noalias writable sret(%class.Token) align 8, ptr noundef nonnull align 8 dereferenceable(256), i32, i32, i1 noundef zeroext) local_unnamed_addr #5 align 2

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext) local_unnamed_addr #5 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN5Lexer11getTokenIntEvE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2 align 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 #5 align 2

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

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

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

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

!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, !19, i64 184}
!6 = !{!"_ZTS5Lexer", !7, i64 0, !18, i64 176, !19, i64 184, !19, i64 188, !33, i64 192, !17, i64 200, !8, i64 208, !39, i64 212, !40, i64 216, !27, i64 240, !20, i64 248}
!7 = !{!"_ZTS11TokenStream", !8, i64 8, !11, i64 16, !20, i64 104, !27, i64 112, !28, i64 120, !32, i64 144}
!8 = !{!"bool", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTS5Token", !12, i64 8, !13, i64 16, !15, i64 56, !20, i64 80}
!12 = !{!"_ZTS10eTokenType", !9, i64 0}
!13 = !{!"_ZTSN5Token4DataE", !14, i64 0, !9, i64 8}
!14 = !{!"_ZTSN5Token4Data3TagE", !9, i64 0}
!15 = !{!"_ZTS8Position", !16, i64 0, !18, i64 8, !19, i64 16, !19, i64 20}
!16 = !{!"_ZTS4Span", !17, i64 0}
!17 = !{!"any pointer", !9, i64 0}
!18 = !{!"_ZTS8RcString", !17, i64 0}
!19 = !{!"int", !9, i64 0}
!20 = !{!"_ZTSN5Ident7HygieneE", !21, i64 0}
!21 = !{!"_ZTSSt10unique_ptrIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !22, i64 0}
!22 = !{!"_ZTSSt15__uniq_ptr_dataIN5Ident7Hygiene5InnerESt14default_deleteIS2_ELb1ELb1EE", !23, i64 0}
!23 = !{!"_ZTSSt15__uniq_ptr_implIN5Ident7Hygiene5InnerESt14default_deleteIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt5tupleIJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !25, i64 0}
!25 = !{!"_ZTSSt11_Tuple_implILm0EJPN5Ident7Hygiene5InnerESt14default_deleteIS2_EEE", !26, i64 0}
!26 = !{!"_ZTSSt10_Head_baseILm0EPN5Ident7Hygiene5InnerELb0EE", !17, i64 0}
!27 = !{!"_ZTSN3AST7EditionE", !9, i64 0}
!28 = !{!"_ZTSSt6vectorIN11TokenStream12LookaheadEntESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIN11TokenStream12LookaheadEntESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN11TokenStream12LookaheadEntESaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN11TokenStream12LookaheadEntESaIS1_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!32 = !{!"_ZTS10ParseState", !8, i64 0, !8, i64 1, !8, i64 2, !17, i64 8, !17, i64 16, !17, i64 24}
!33 = !{!"_ZTSSt10unique_ptrISt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EE", !34, i64 0}
!34 = !{!"_ZTSSt15__uniq_ptr_dataISt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_ELb1ELb1EE", !35, i64 0}
!35 = !{!"_ZTSSt15__uniq_ptr_implISt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EE", !36, i64 0}
!36 = !{!"_ZTSSt5tupleIJPSt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EEE", !37, i64 0}
!37 = !{!"_ZTSSt11_Tuple_implILm0EJPSt14basic_ifstreamIcSt11char_traitsIcEESt14default_deleteIS3_EEE", !38, i64 0}
!38 = !{!"_ZTSSt10_Head_baseILm0EPSt14basic_ifstreamIcSt11char_traitsIcEELb0EE", !17, i64 0}
!39 = !{!"_ZTS9Codepoint", !19, i64 0}
!40 = !{!"_ZTSSt6vectorI5TokenSaIS0_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseI5TokenSaIS0_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseI5TokenSaIS0_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseI5TokenSaIS0_EE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16}
!44 = !{!19, !19, i64 0}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = !{!39, !19, i64 0}
!48 = distinct !{!48, !46}
!49 = !{!50, !50, i64 0}
!50 = !{!"_ZTSN5Lexer7NumModeE", !9, i64 0}
!51 = !{!17, !17, i64 0}
!52 = distinct !{!52, !46}
!53 = distinct !{!53, !46}
!54 = distinct !{!54, !46}
!55 = !{!56, !56, i64 0}
!56 = !{!"vtable pointer", !10, i64 0}
!57 = distinct !{!57, !46}
!58 = distinct !{!58, !46}
!59 = distinct !{!59, !46}
!60 = distinct !{!60, !46}


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