; LLVM IR from ASDAlexander77/TypeScriptCompiler :: tsc/tsc-new-parser/scanner.ll (ZN2ts7Scanner10scanNumberEv)

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

%"struct.ts::DiagnosticMessageStore" = type { i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.ptr.100 = type { %"class.std::shared_ptr.101" }
%"class.std::shared_ptr.101" = type { %"class.std::__shared_ptr.102" }
%"class.std::__shared_ptr.102" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::DiagnosticMessage" = type <{ i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.104", %"class.std::vector.104", i8, [7 x i8] }>
%"class.std::vector.104" = type { %"struct.std::_Vector_base.105" }
%"struct.std::_Vector_base.105" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }
%"class.ts::Scanner" = type { i32, i32, i8, i32, %"struct.ts::safe_string", i32, i32, i32, i32, i32, %"class.std::__cxx11::basic_string", i32, %"class.std::vector.41", i32, i32, %"class.std::function" }
%"struct.ts::safe_string" = type { %"class.std::__cxx11::basic_string" }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::CommentDirective>, std::allocator<ptr<ts::data::CommentDirective>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }

@_ZN2ts11DiagnosticsL47Octal_literals_are_not_allowed_Use_the_syntax_0E = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL14Digit_expectedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL43Decimals_with_leading_zeros_are_not_allowedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL39Numeric_separators_are_not_allowed_hereE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@.str.6026 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6452 = external hidden unnamed_addr constant [1 x i32], align 4
@.str.6453 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6454 = external hidden unnamed_addr constant [4 x i32], align 4
@.str.6455 = external hidden unnamed_addr constant [3 x i32], align 4

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef, i32 noundef) #3

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) #3

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN2ts7Scanner10scanNumberEv(ptr noundef nonnull align 8 dereferenceable(176) %0) #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %struct.ptr.100, align 8
  %9 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.0", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca i8, align 1
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %struct.ptr.100, align 8
  %18 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca i32, align 4
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %struct.ptr.100, align 8
  %29 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.0", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %struct.ptr.100, align 8
  %38 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator.0", align 1
  %41 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  %42 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #5
  %43 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %44 = load i32, ptr %43, align 8, !tbaa !9
  store i32 %44, ptr %4, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 32, ptr %5) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  %45 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %46 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %47 = load i32, ptr %46, align 8, !tbaa !9
  %48 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %45, i32 noundef %47)
          to label %49 unwind label %78

49:                                               ; preds = %1
  %50 = icmp eq i32 %48, 48
  br i1 %50, label %51, label %198

51:                                               ; preds = %49
  %52 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %53 = load i32, ptr %52, align 8, !tbaa !9
  %54 = add nsw i32 %53, 1
  store i32 %54, ptr %52, align 8, !tbaa !9
  %55 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %56 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %57 = load i32, ptr %56, align 8, !tbaa !9
  %58 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %55, i32 noundef %57)
          to label %59 unwind label %78

59:                                               ; preds = %51
  %60 = icmp eq i32 %58, 95
  br i1 %60, label %61, label %105

61:                                               ; preds = %59
  %62 = invoke noundef i32 @_ZN2tsorENS_10TokenFlagsES0_(i32 noundef 512, i32 noundef 16384)
          to label %63 unwind label %78

63:                                               ; preds = %61
  %64 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %65 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %64, i32 noundef %62)
          to label %66 unwind label %78

66:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 128, ptr %9) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %9, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL39Numeric_separators_are_not_allowed_hereE)
          to label %67 unwind label %82

67:                                               ; preds = %66
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(121) %9)
          to label %68 unwind label %86

68:                                               ; preds = %67
  %69 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %70 = load i32, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %71 unwind label %90

71:                                               ; preds = %68
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %42, ptr noundef %8, i32 noundef %70, i32 noundef 1, ptr noundef %10)
          to label %72 unwind label %94

72:                                               ; preds = %71
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %9) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %9) #5
  %73 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %74 = load i32, ptr %73, align 8, !tbaa !9
  %75 = add nsw i32 %74, -1
  store i32 %75, ptr %73, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %76 unwind label %101

76:                                               ; preds = %72
  %77 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %197

78:                                               ; preds = %118, %111, %108, %105, %63, %61, %51, %1
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %6, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %7, align 4
  br label %450

82:                                               ; preds = %66
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %6, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %7, align 4
  br label %100

86:                                               ; preds = %67
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %6, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %7, align 4
  br label %99

90:                                               ; preds = %68
  %91 = landingpad { ptr, i32 }
          cleanup
  %92 = extractvalue { ptr, i32 } %91, 0
  store ptr %92, ptr %6, align 8
  %93 = extractvalue { ptr, i32 } %91, 1
  store i32 %93, ptr %7, align 4
  br label %98

94:                                               ; preds = %71
  %95 = landingpad { ptr, i32 }
          cleanup
  %96 = extractvalue { ptr, i32 } %95, 0
  store ptr %96, ptr %6, align 8
  %97 = extractvalue { ptr, i32 } %95, 1
  store i32 %97, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %98

98:                                               ; preds = %94, %90
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %8) #5
  br label %99

99:                                               ; preds = %98, %86
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %9) #5
  br label %100

100:                                              ; preds = %99, %82
  call void @llvm.lifetime.end.p0(i64 128, ptr %9) #5
  br label %450

101:                                              ; preds = %72
  %102 = landingpad { ptr, i32 }
          cleanup
  %103 = extractvalue { ptr, i32 } %102, 0
  store ptr %103, ptr %6, align 8
  %104 = extractvalue { ptr, i32 } %102, 1
  store i32 %104, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #5
  br label %450

105:                                              ; preds = %59
  %106 = invoke noundef zeroext i1 @_ZN2ts7Scanner10scanDigitsEv(ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %107 unwind label %78

107:                                              ; preds = %105
  br i1 %106, label %115, label %108

108:                                              ; preds = %107
  %109 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %110 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %109, i32 noundef 8192)
          to label %111 unwind label %78

111:                                              ; preds = %108
  %112 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %113 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %112)
          to label %114 unwind label %78

114:                                              ; preds = %111
  br label %196

115:                                              ; preds = %107
  %116 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %117 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %116) #5
  br i1 %117, label %118, label %121

118:                                              ; preds = %115
  %119 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEPKw(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef @.str.6453)
          to label %120 unwind label %78

120:                                              ; preds = %118
  br label %195

121:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #5
  %122 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %122)
          to label %123 unwind label %147

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #5
  %124 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %125 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %124, ptr noundef null, i32 noundef 8)
          to label %126 unwind label %151

126:                                              ; preds = %123
  invoke void @_ZNSt7__cxx1110to_wstringEi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, i32 noundef %125)
          to label %127 unwind label %151

127:                                              ; preds = %126
  %128 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %129 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %128, ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  %130 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %131 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %130, i32 noundef 32)
          to label %132 unwind label %155

132:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #5
  %133 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 9
  %134 = load i32, ptr %133, align 8, !tbaa !30
  %135 = icmp eq i32 %134, 41
  %136 = zext i1 %135 to i8
  store i8 %136, ptr %15, align 1, !tbaa !31
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #5
  %137 = load i8, ptr %15, align 1, !tbaa !31, !range !32, !noundef !33
  %138 = trunc i8 %137 to i1
  %139 = zext i1 %138 to i64
  %140 = select i1 %138, ptr @.str.6454, ptr @.str.6455
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef %140, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %141 unwind label %159

141:                                              ; preds = %132
  %142 = load i8, ptr %15, align 1, !tbaa !31, !range !32, !noundef !33
  %143 = trunc i8 %142 to i1
  br i1 %143, label %144, label %163

144:                                              ; preds = %141
  %145 = load i32, ptr %4, align 4, !tbaa !29
  %146 = add nsw i32 %145, -1
  store i32 %146, ptr %4, align 4, !tbaa !29
  br label %163

147:                                              ; preds = %121
  %148 = landingpad { ptr, i32 }
          cleanup
  %149 = extractvalue { ptr, i32 } %148, 0
  store ptr %149, ptr %6, align 8
  %150 = extractvalue { ptr, i32 } %148, 1
  store i32 %150, ptr %7, align 4
  br label %194

151:                                              ; preds = %126, %123
  %152 = landingpad { ptr, i32 }
          cleanup
  %153 = extractvalue { ptr, i32 } %152, 0
  store ptr %153, ptr %6, align 8
  %154 = extractvalue { ptr, i32 } %152, 1
  store i32 %154, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #5
  br label %193

155:                                              ; preds = %127
  %156 = landingpad { ptr, i32 }
          cleanup
  %157 = extractvalue { ptr, i32 } %156, 0
  store ptr %157, ptr %6, align 8
  %158 = extractvalue { ptr, i32 } %156, 1
  store i32 %158, ptr %7, align 4
  br label %193

159:                                              ; preds = %132
  %160 = landingpad { ptr, i32 }
          cleanup
  %161 = extractvalue { ptr, i32 } %160, 0
  store ptr %161, ptr %6, align 8
  %162 = extractvalue { ptr, i32 } %160, 1
  store i32 %162, ptr %7, align 4
  br label %192

163:                                              ; preds = %144, %141
  call void @llvm.lifetime.start.p0(i64 128, ptr %18) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %18, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL47Octal_literals_are_not_allowed_Use_the_syntax_0E)
          to label %164 unwind label %173

164:                                              ; preds = %163
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(121) %18)
          to label %165 unwind label %177

165:                                              ; preds = %164
  %166 = load i32, ptr %4, align 4, !tbaa !29
  %167 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %168 = load i32, ptr %167, align 8, !tbaa !9
  %169 = load i32, ptr %4, align 4, !tbaa !29
  %170 = sub nsw i32 %168, %169
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %171 unwind label %181

171:                                              ; preds = %165
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %42, ptr noundef %17, i32 noundef %166, i32 noundef %170, ptr noundef %19)
          to label %172 unwind label %185

172:                                              ; preds = %171
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %18) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %18) #5
  store i32 9, ptr %2, align 4
  store i32 1, ptr %20, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  br label %448

173:                                              ; preds = %163
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %6, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %7, align 4
  br label %191

177:                                              ; preds = %164
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %6, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %7, align 4
  br label %190

181:                                              ; preds = %165
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %6, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %7, align 4
  br label %189

185:                                              ; preds = %171
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %6, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #5
  br label %189

189:                                              ; preds = %185, %181
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #5
  br label %190

190:                                              ; preds = %189, %177
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %18) #5
  br label %191

191:                                              ; preds = %190, %173
  call void @llvm.lifetime.end.p0(i64 128, ptr %18) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br label %192

192:                                              ; preds = %191, %159
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #5
  br label %193

193:                                              ; preds = %192, %155, %151
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %194

194:                                              ; preds = %193, %147
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #5
  br label %450

195:                                              ; preds = %120
  br label %196

196:                                              ; preds = %195, %114
  br label %197

197:                                              ; preds = %196, %76
  br label %205

198:                                              ; preds = %49
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %199 unwind label %201

199:                                              ; preds = %198
  %200 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #5
  br label %205

201:                                              ; preds = %198
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %6, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #5
  br label %450

205:                                              ; preds = %199, %197
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  %206 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %207 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %208 = load i32, ptr %207, align 8, !tbaa !9
  %209 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %206, i32 noundef %208)
          to label %210 unwind label %218

210:                                              ; preds = %205
  %211 = icmp eq i32 %209, 46
  br i1 %211, label %212, label %226

212:                                              ; preds = %210
  %213 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %214 = load i32, ptr %213, align 8, !tbaa !9
  %215 = add nsw i32 %214, 1
  store i32 %215, ptr %213, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %24) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %216 unwind label %222

216:                                              ; preds = %212
  %217 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #5
  br label %226

218:                                              ; preds = %205
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %6, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %7, align 4
  br label %447

222:                                              ; preds = %212
  %223 = landingpad { ptr, i32 }
          cleanup
  %224 = extractvalue { ptr, i32 } %223, 0
  store ptr %224, ptr %6, align 8
  %225 = extractvalue { ptr, i32 } %223, 1
  store i32 %225, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %24) #5
  br label %447

226:                                              ; preds = %216, %210
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #5
  %227 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %228 = load i32, ptr %227, align 8, !tbaa !9
  store i32 %228, ptr %25, align 4, !tbaa !29
  %229 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %230 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %231 = load i32, ptr %230, align 8, !tbaa !9
  %232 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %229, i32 noundef %231)
          to label %233 unwind label %266

233:                                              ; preds = %226
  %234 = icmp eq i32 %232, 69
  br i1 %234, label %242, label %235

235:                                              ; preds = %233
  %236 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %237 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %238 = load i32, ptr %237, align 8, !tbaa !9
  %239 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %236, i32 noundef %238)
          to label %240 unwind label %266

240:                                              ; preds = %235
  %241 = icmp eq i32 %239, 101
  br i1 %241, label %242, label %324

242:                                              ; preds = %240, %233
  %243 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %244 = load i32, ptr %243, align 8, !tbaa !9
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr %243, align 8, !tbaa !9
  %246 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %247 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %246, i32 noundef 16)
          to label %248 unwind label %266

248:                                              ; preds = %242
  %249 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %250 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %251 = load i32, ptr %250, align 8, !tbaa !9
  %252 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %249, i32 noundef %251)
          to label %253 unwind label %266

253:                                              ; preds = %248
  %254 = icmp eq i32 %252, 43
  br i1 %254, label %262, label %255

255:                                              ; preds = %253
  %256 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %257 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %258 = load i32, ptr %257, align 8, !tbaa !9
  %259 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %256, i32 noundef %258)
          to label %260 unwind label %266

260:                                              ; preds = %255
  %261 = icmp eq i32 %259, 45
  br i1 %261, label %262, label %270

262:                                              ; preds = %260, %253
  %263 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %264 = load i32, ptr %263, align 8, !tbaa !9
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr %263, align 8, !tbaa !9
  br label %270

266:                                              ; preds = %255, %248, %242, %235, %226
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %6, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %7, align 4
  br label %446

270:                                              ; preds = %262, %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #5
  %271 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %272 = load i32, ptr %271, align 8, !tbaa !9
  store i32 %272, ptr %26, align 4, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %273 unwind label %280

273:                                              ; preds = %270
  %274 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br i1 %274, label %275, label %303

275:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 128, ptr %29) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %29, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL14Digit_expectedE)
          to label %276 unwind label %284

276:                                              ; preds = %275
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(121) %29)
          to label %277 unwind label %288

277:                                              ; preds = %276
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %278 unwind label %292

278:                                              ; preds = %277
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %42, ptr noundef %28, i32 noundef -1, i32 noundef 0, ptr noundef %30)
          to label %279 unwind label %296

279:                                              ; preds = %278
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %29) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %29) #5
  br label %321

280:                                              ; preds = %270
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %6, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %7, align 4
  br label %323

284:                                              ; preds = %275
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %6, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %7, align 4
  br label %302

288:                                              ; preds = %276
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %6, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %7, align 4
  br label %301

292:                                              ; preds = %277
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %6, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %7, align 4
  br label %300

296:                                              ; preds = %278
  %297 = landingpad { ptr, i32 }
          cleanup
  %298 = extractvalue { ptr, i32 } %297, 0
  store ptr %298, ptr %6, align 8
  %299 = extractvalue { ptr, i32 } %297, 1
  store i32 %299, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %300

300:                                              ; preds = %296, %292
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #5
  br label %301

301:                                              ; preds = %300, %288
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %29) #5
  br label %302

302:                                              ; preds = %301, %284
  call void @llvm.lifetime.end.p0(i64 128, ptr %29) #5
  br label %322

303:                                              ; preds = %273
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #5
  %304 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %305 = load i32, ptr %25, align 4, !tbaa !29
  %306 = load i32, ptr %26, align 4, !tbaa !29
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef nonnull align 8 dereferenceable(32) %304, i32 noundef %305, i32 noundef %306)
          to label %307 unwind label %312

307:                                              ; preds = %303
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %308 unwind label %316

308:                                              ; preds = %307
  %309 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #5
  %310 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 5
  %311 = load i32, ptr %310, align 8, !tbaa !9
  store i32 %311, ptr %25, align 4, !tbaa !29
  br label %321

312:                                              ; preds = %303
  %313 = landingpad { ptr, i32 }
          cleanup
  %314 = extractvalue { ptr, i32 } %313, 0
  store ptr %314, ptr %6, align 8
  %315 = extractvalue { ptr, i32 } %313, 1
  store i32 %315, ptr %7, align 4
  br label %320

316:                                              ; preds = %307
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %6, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #5
  br label %320

320:                                              ; preds = %316, %312
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #5
  br label %322

321:                                              ; preds = %308, %279
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  br label %324

322:                                              ; preds = %320, %302
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  br label %323

323:                                              ; preds = %322, %280
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #5
  br label %446

324:                                              ; preds = %321, %240
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  %325 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %326 = load i32, ptr %325, align 8, !tbaa !34
  %327 = invoke noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %326, i32 noundef 512)
          to label %328 unwind label %339

328:                                              ; preds = %324
  %329 = invoke noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef %327)
          to label %330 unwind label %339

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

331:                                              ; preds = %330
  %332 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %333 unwind label %339

333:                                              ; preds = %331
  %334 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br i1 %334, label %352, label %335

335:                                              ; preds = %333
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #5
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef @.str.6026, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %336 unwind label %343

336:                                              ; preds = %335
  %337 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %338 unwind label %347

338:                                              ; preds = %336
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #5
  br label %352

339:                                              ; preds = %431, %427, %425, %421, %417, %411, %407, %382, %368, %354, %331, %328, %324
  %340 = landingpad { ptr, i32 }
          cleanup
  %341 = extractvalue { ptr, i32 } %340, 0
  store ptr %341, ptr %6, align 8
  %342 = extractvalue { ptr, i32 } %340, 1
  store i32 %342, ptr %7, align 4
  br label %445

343:                                              ; preds = %335
  %344 = landingpad { ptr, i32 }
          cleanup
  %345 = extractvalue { ptr, i32 } %344, 0
  store ptr %345, ptr %6, align 8
  %346 = extractvalue { ptr, i32 } %344, 1
  store i32 %346, ptr %7, align 4
  br label %351

347:                                              ; preds = %336
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %6, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #5
  br label %351

351:                                              ; preds = %347, %343
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #5
  br label %445

352:                                              ; preds = %338, %333
  %353 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  br i1 %353, label %357, label %354

354:                                              ; preds = %352
  %355 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %356 unwind label %339

356:                                              ; preds = %354
  br label %357

357:                                              ; preds = %356, %352
  br label %368

358:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #5
  %359 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 4
  %360 = load i32, ptr %4, align 4, !tbaa !29
  %361 = load i32, ptr %25, align 4, !tbaa !29
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(32) %359, i32 noundef %360, i32 noundef %361)
          to label %362 unwind label %364

362:                                              ; preds = %358
  %363 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #5
  br label %368

364:                                              ; preds = %358
  %365 = landingpad { ptr, i32 }
          cleanup
  %366 = extractvalue { ptr, i32 } %365, 0
  store ptr %366, ptr %6, align 8
  %367 = extractvalue { ptr, i32 } %365, 1
  store i32 %367, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #5
  br label %445

368:                                              ; preds = %362, %357
  %369 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %370 = load i32, ptr %369, align 8, !tbaa !34
  %371 = invoke noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %370, i32 noundef 8192)
          to label %372 unwind label %339

372:                                              ; preds = %368
  %373 = icmp eq i32 %371, 8192
  br i1 %373, label %374, label %405

374:                                              ; preds = %372
  call void @llvm.lifetime.start.p0(i64 128, ptr %38) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %38, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL43Decimals_with_leading_zeros_are_not_allowedE)
          to label %375 unwind label %386

375:                                              ; preds = %374
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull align 8 dereferenceable(121) %38)
          to label %376 unwind label %390

376:                                              ; preds = %375
  %377 = load i32, ptr %4, align 4, !tbaa !29
  %378 = load i32, ptr %25, align 4, !tbaa !29
  %379 = load i32, ptr %4, align 4, !tbaa !29
  %380 = sub nsw i32 %378, %379
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %381 unwind label %394

381:                                              ; preds = %376
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %42, ptr noundef %37, i32 noundef %377, i32 noundef %380, ptr noundef %39)
          to label %382 unwind label %398

382:                                              ; preds = %381
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %38) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr %38) #5
  %383 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %384 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %383, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %385 unwind label %339

385:                                              ; preds = %382
  store i32 9, ptr %2, align 4
  store i32 1, ptr %20, align 4
  br label %444

386:                                              ; preds = %374
  %387 = landingpad { ptr, i32 }
          cleanup
  %388 = extractvalue { ptr, i32 } %387, 0
  store ptr %388, ptr %6, align 8
  %389 = extractvalue { ptr, i32 } %387, 1
  store i32 %389, ptr %7, align 4
  br label %404

390:                                              ; preds = %375
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %6, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %7, align 4
  br label %403

394:                                              ; preds = %376
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %6, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %7, align 4
  br label %402

398:                                              ; preds = %381
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %6, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #5
  br label %402

402:                                              ; preds = %398, %394
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #5
  br label %403

403:                                              ; preds = %402, %390
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %38) #5
  br label %404

404:                                              ; preds = %403, %386
  call void @llvm.lifetime.end.p0(i64 128, ptr %38) #5
  br label %445

405:                                              ; preds = %372
  %406 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br i1 %406, label %407, label %414

407:                                              ; preds = %405
  %408 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %409 = load i32, ptr %408, align 8, !tbaa !34
  %410 = invoke noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %409, i32 noundef 16)
          to label %411 unwind label %339

411:                                              ; preds = %407
  %412 = invoke noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef %410)
          to label %413 unwind label %339

413:                                              ; preds = %411
  br i1 %412, label %431, label %414

414:                                              ; preds = %413, %405
  %415 = load i32, ptr %4, align 4, !tbaa !29
  %416 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  br i1 %416, label %417, label %425

417:                                              ; preds = %414
  %418 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 11
  %419 = load i32, ptr %418, align 8, !tbaa !34
  %420 = invoke noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %419, i32 noundef 16)
          to label %421 unwind label %339

421:                                              ; preds = %417
  %422 = invoke noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef %420)
          to label %423 unwind label %339

423:                                              ; preds = %421
  %424 = xor i1 %422, true
  br label %425

425:                                              ; preds = %423, %414
  %426 = phi i1 [ false, %414 ], [ %424, %423 ]
  invoke void @_ZN2ts7Scanner42checkForIdentifierStartAfterNumericLiteralEib(ptr noundef nonnull align 8 dereferenceable(176) %42, i32 noundef %415, i1 noundef zeroext %426)
          to label %427 unwind label %339

427:                                              ; preds = %425
  %428 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %429 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %428, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %430 unwind label %339

430:                                              ; preds = %427
  store i32 9, ptr %2, align 4
  store i32 1, ptr %20, align 4
  br label %444

431:                                              ; preds = %413
  %432 = getelementptr inbounds %"class.ts::Scanner", ptr %42, i32 0, i32 10
  %433 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %432, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %434 unwind label %339

434:                                              ; preds = %431
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #5
  %435 = invoke noundef i32 @_ZN2ts7Scanner17checkBigIntSuffixEv(ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %436 unwind label %440

436:                                              ; preds = %434
  store i32 %435, ptr %41, align 4, !tbaa !35
  %437 = load i32, ptr %4, align 4, !tbaa !29
  invoke void @_ZN2ts7Scanner42checkForIdentifierStartAfterNumericLiteralEib(ptr noundef nonnull align 8 dereferenceable(176) %42, i32 noundef %437, i1 noundef zeroext false)
          to label %438 unwind label %440

438:                                              ; preds = %436
  %439 = load i32, ptr %41, align 4, !tbaa !35
  store i32 %439, ptr %2, align 4
  store i32 1, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  br label %444

440:                                              ; preds = %436, %434
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %6, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #5
  br label %445

444:                                              ; preds = %438, %430, %385
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  br label %448

445:                                              ; preds = %440, %404, %364, %351, %339
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #5
  br label %446

446:                                              ; preds = %445, %323, %266
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #5
  br label %447

447:                                              ; preds = %446, %222, %218
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #5
  br label %450

448:                                              ; preds = %444, %172
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  %449 = load i32, ptr %2, align 4
  ret i32 %449

450:                                              ; preds = %447, %201, %194, %101, %100, %78
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #5
  br label %451

451:                                              ; preds = %450
  %452 = load ptr, ptr %6, align 8
  %453 = load i32, ptr %7, align 4
  %454 = insertvalue { ptr, i32 } poison, ptr %452, 0
  %455 = insertvalue { ptr, i32 } %454, i32 %453, 1
  resume { ptr, i32 } %455
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsorENS_10TokenFlagsES0_(i32 noundef, i32 noundef) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1110to_wstringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts7Scanner42checkForIdentifierStartAfterNumericLiteralEib(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef, i1 noundef zeroext) #2 align 2

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

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { 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 #4 = { 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 #5 = { 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, !19, i64 48}
!10 = !{!"_ZTSN2ts7ScannerE", !11, i64 0, !12, i64 4, !13, i64 8, !14, i64 12, !15, i64 16, !19, i64 48, !19, i64 52, !19, i64 56, !19, i64 60, !20, i64 64, !16, i64 72, !21, i64 104, !22, i64 112, !19, i64 136, !26, i64 140, !27, i64 144}
!11 = !{!"_ZTSN2ts10ScriptKindE", !7, i64 0}
!12 = !{!"_ZTSN2ts12ScriptTargetE", !7, i64 0}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSN2ts15LanguageVariantE", !7, i64 0}
!15 = !{!"_ZTSN2ts11safe_stringE", !16, i64 0}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE", !17, i64 0, !18, i64 8, !7, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderE", !6, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"int", !7, i64 0}
!20 = !{!"_ZTS10SyntaxKind", !7, i64 0}
!21 = !{!"_ZTSN2ts10TokenFlagsE", !7, i64 0}
!22 = !{!"_ZTSSt6vectorI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"_ZTSN2ts16JSDocParsingModeE", !7, i64 0}
!27 = !{!"_ZTSSt8functionIFv3ptrIN2ts4data17DiagnosticMessageEEiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEE", !28, i64 0, !6, i64 24}
!28 = !{!"_ZTSSt14_Function_base", !7, i64 0, !6, i64 16}
!29 = !{!19, !19, i64 0}
!30 = !{!10, !20, i64 64}
!31 = !{!13, !13, i64 0}
!32 = !{i8 0, i8 2}
!33 = !{}
!34 = !{!10, !21, i64 104}
!35 = !{!20, !20, i64 0}


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

%"struct.ts::DiagnosticMessageStore" = type { i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<wchar_t>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%struct.ptr.100 = type { %"class.std::shared_ptr.101" }
%"class.std::shared_ptr.101" = type { %"class.std::__shared_ptr.102" }
%"class.std::__shared_ptr.102" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::DiagnosticMessage" = type <{ i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::vector.104", %"class.std::vector.104", i8, [7 x i8] }>
%"class.std::vector.104" = type { %"struct.std::_Vector_base.105" }
%"struct.std::_Vector_base.105" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<wchar_t>, std::allocator<std::__cxx11::basic_string<wchar_t>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.0" = type { i8 }

@_ZN2ts11DiagnosticsL47Octal_literals_are_not_allowed_Use_the_syntax_0E = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL14Digit_expectedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL43Decimals_with_leading_zeros_are_not_allowedE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@_ZN2ts11DiagnosticsL39Numeric_separators_are_not_allowed_hereE = external hidden global %"struct.ts::DiagnosticMessageStore", align 8
@.str.6026 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6452 = external hidden unnamed_addr constant [1 x i32], align 4
@.str.6453 = external hidden unnamed_addr constant [2 x i32], align 4
@.str.6454 = external hidden unnamed_addr constant [4 x i32], align 4
@.str.6455 = external hidden unnamed_addr constant [3 x i32], align 4

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef, i32 noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176), ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4), i32 noundef) local_unnamed_addr #3

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

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZN2ts7Scanner10scanNumberEv(ptr noundef nonnull align 8 dereferenceable(176) %0) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::__cxx11::basic_string", align 8
  %3 = alloca %struct.ptr.100, align 8
  %4 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator.0", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %struct.ptr.100, align 8
  %12 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", 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_string", align 8
  %19 = alloca %struct.ptr.100, align 8
  %20 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator.0", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %struct.ptr.100, align 8
  %29 = alloca %"struct.ts::data::DiagnosticMessage", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator.0", align 1
  %32 = getelementptr inbounds i8, ptr %0, i64 48
  %33 = load i32, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  %34 = getelementptr inbounds i8, ptr %0, i64 16
  %35 = load i32, ptr %32, align 8, !tbaa !5
  %36 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %35)
          to label %37 unwind label %58

37:                                               ; preds = %1
  %38 = icmp eq i32 %36, 48
  br i1 %38, label %39, label %126

39:                                               ; preds = %37
  %40 = load i32, ptr %32, align 8, !tbaa !5
  %41 = add nsw i32 %40, 1
  store i32 %41, ptr %32, align 8, !tbaa !5
  %42 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %41)
          to label %43 unwind label %58

43:                                               ; preds = %39
  %44 = icmp eq i32 %42, 95
  br i1 %44, label %45, label %73

45:                                               ; preds = %43
  %46 = call noundef i32 @_ZN2tsorENS_10TokenFlagsES0_(i32 noundef 512, i32 noundef 16384)
  %47 = getelementptr inbounds i8, ptr %0, i64 104
  %48 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %47, i32 noundef %46)
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %4) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %4, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL39Numeric_separators_are_not_allowed_hereE)
          to label %49 unwind label %60

49:                                               ; preds = %45
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(121) %4)
          to label %50 unwind label %62

50:                                               ; preds = %49
  %51 = load i32, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %52 unwind label %64

52:                                               ; preds = %50
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull %3, i32 noundef %51, i32 noundef 1, ptr noundef nonnull %5)
          to label %53 unwind label %66

53:                                               ; preds = %52
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %4) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %4) #5
  %54 = load i32, ptr %32, align 8, !tbaa !5
  %55 = add nsw i32 %54, -1
  store i32 %55, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %56 unwind label %71

56:                                               ; preds = %53
  %57 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %131

58:                                               ; preds = %84, %76, %73, %39, %1
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %288

60:                                               ; preds = %45
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %70

62:                                               ; preds = %49
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %69

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

66:                                               ; preds = %52
  %67 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #5
  br label %68

68:                                               ; preds = %66, %64
  %.pn52 = phi { ptr, i32 } [ %67, %66 ], [ %65, %64 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #5
  br label %69

69:                                               ; preds = %68, %62
  %.pn52.pn = phi { ptr, i32 } [ %.pn52, %68 ], [ %63, %62 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %4) #5
  br label %70

70:                                               ; preds = %69, %60
  %.pn52.pn.pn = phi { ptr, i32 } [ %.pn52.pn, %69 ], [ %61, %60 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %4) #5
  br label %288

71:                                               ; preds = %53
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #5
  br label %288

73:                                               ; preds = %43
  %74 = invoke noundef zeroext i1 @_ZN2ts7Scanner10scanDigitsEv(ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %75 unwind label %58

75:                                               ; preds = %73
  br i1 %74, label %81, label %76

76:                                               ; preds = %75
  %77 = getelementptr inbounds i8, ptr %0, i64 104
  %78 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %77, i32 noundef 8192)
  %79 = getelementptr inbounds i8, ptr %0, i64 72
  %80 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %131 unwind label %58

81:                                               ; preds = %75
  %82 = getelementptr inbounds i8, ptr %0, i64 72
  %83 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %82) #5
  br i1 %83, label %84, label %86

84:                                               ; preds = %81
  %85 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEPKw(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull @.str.6453)
          to label %131 unwind label %58

86:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %82)
          to label %87 unwind label %100

87:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #5
  %88 = invoke noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef null, i32 noundef 8)
          to label %89 unwind label %102

89:                                               ; preds = %87
  invoke void @_ZNSt7__cxx1110to_wstringEi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, i32 noundef %88)
          to label %90 unwind label %102

90:                                               ; preds = %89
  %91 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %82, ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  %92 = getelementptr inbounds i8, ptr %0, i64 104
  %93 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %92, i32 noundef 32)
  %94 = getelementptr inbounds i8, ptr %0, i64 64
  %95 = load i32, ptr %94, align 8, !tbaa !28
  %96 = icmp eq i32 %95, 41
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #5
  %97 = select i1 %96, ptr @.str.6454, ptr @.str.6455
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull %97, ptr noundef nonnull align 8 dereferenceable(32) %8)
          to label %98 unwind label %104

98:                                               ; preds = %90
  %99 = sext i1 %96 to i32
  %spec.select = add nsw i32 %33, %99
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %12) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %12, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL47Octal_literals_are_not_allowed_Use_the_syntax_0E)
          to label %106 unwind label %112

100:                                              ; preds = %86
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %125

102:                                              ; preds = %89, %87
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #5
  br label %124

104:                                              ; preds = %90
  %105 = landingpad { ptr, i32 }
          cleanup
  br label %123

106:                                              ; preds = %98
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull align 8 dereferenceable(121) %12)
          to label %107 unwind label %114

107:                                              ; preds = %106
  %108 = load i32, ptr %32, align 8, !tbaa !5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %109 unwind label %116

109:                                              ; preds = %107
  %110 = sub nsw i32 %108, %spec.select
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull %11, i32 noundef %spec.select, i32 noundef %110, ptr noundef nonnull %13)
          to label %111 unwind label %118

111:                                              ; preds = %109
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %12) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %12) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  br label %287

112:                                              ; preds = %98
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %122

114:                                              ; preds = %106
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %121

116:                                              ; preds = %107
  %117 = landingpad { ptr, i32 }
          cleanup
  br label %120

118:                                              ; preds = %109
  %119 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #5
  br label %120

120:                                              ; preds = %118, %116
  %.pn = phi { ptr, i32 } [ %119, %118 ], [ %117, %116 ]
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #5
  br label %121

121:                                              ; preds = %120, %114
  %.pn.pn = phi { ptr, i32 } [ %.pn, %120 ], [ %115, %114 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %12) #5
  br label %122

122:                                              ; preds = %121, %112
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %121 ], [ %113, %112 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %12) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #5
  br label %123

123:                                              ; preds = %122, %104
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %122 ], [ %105, %104 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #5
  br label %124

124:                                              ; preds = %123, %102
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %123 ], [ %103, %102 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #5
  br label %125

125:                                              ; preds = %124, %100
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %124 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #5
  br label %288

126:                                              ; preds = %37
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %127 unwind label %129

127:                                              ; preds = %126
  %128 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  br label %131

129:                                              ; preds = %126
  %130 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #5
  br label %288

131:                                              ; preds = %56, %84, %76, %127
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  %132 = load i32, ptr %32, align 8, !tbaa !5
  %133 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %132)
          to label %134 unwind label %141

134:                                              ; preds = %131
  %135 = icmp eq i32 %133, 46
  br i1 %135, label %136, label %145

136:                                              ; preds = %134
  %137 = load i32, ptr %32, align 8, !tbaa !5
  %138 = add nsw i32 %137, 1
  store i32 %138, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %139 unwind label %143

139:                                              ; preds = %136
  %140 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  br label %145

141:                                              ; preds = %131
  %142 = landingpad { ptr, i32 }
          cleanup
  br label %286

143:                                              ; preds = %136
  %144 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #5
  br label %286

145:                                              ; preds = %139, %134
  %146 = load i32, ptr %32, align 8, !tbaa !5
  %147 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %146)
          to label %148 unwind label %172

148:                                              ; preds = %145
  %149 = icmp eq i32 %147, 69
  br i1 %149, label %155, label %150

150:                                              ; preds = %148
  %151 = load i32, ptr %32, align 8, !tbaa !5
  %152 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %151)
          to label %153 unwind label %172

153:                                              ; preds = %150
  %154 = icmp eq i32 %152, 101
  br i1 %154, label %155, label %209

155:                                              ; preds = %153, %148
  %156 = load i32, ptr %32, align 8, !tbaa !5
  %157 = add nsw i32 %156, 1
  store i32 %157, ptr %32, align 8, !tbaa !5
  %158 = getelementptr inbounds i8, ptr %0, i64 104
  %159 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_10TokenFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %158, i32 noundef 16)
  %160 = load i32, ptr %32, align 8, !tbaa !5
  %161 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %160)
          to label %162 unwind label %172

162:                                              ; preds = %155
  %163 = icmp eq i32 %161, 43
  br i1 %163, label %169, label %164

164:                                              ; preds = %162
  %165 = load i32, ptr %32, align 8, !tbaa !5
  %166 = invoke noundef i32 @_ZN2ts11safe_stringixEi(ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %165)
          to label %167 unwind label %172

167:                                              ; preds = %164
  %168 = icmp eq i32 %166, 45
  br i1 %168, label %169, label %._crit_edge

._crit_edge:                                      ; preds = %167
  %.pre = load i32, ptr %32, align 8, !tbaa !5
  br label %174

169:                                              ; preds = %167, %162
  %170 = load i32, ptr %32, align 8, !tbaa !5
  %171 = add nsw i32 %170, 1
  store i32 %171, ptr %32, align 8, !tbaa !5
  br label %174

172:                                              ; preds = %164, %155, %150, %145
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %286

174:                                              ; preds = %._crit_edge, %169
  %175 = phi i32 [ %.pre, %._crit_edge ], [ %171, %169 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #5
  invoke void @_ZN2ts7Scanner18scanNumberFragmentB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %176 unwind label %183

176:                                              ; preds = %174
  %177 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  br i1 %177, label %178, label %196

178:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %20) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %20, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL14Digit_expectedE)
          to label %179 unwind label %185

179:                                              ; preds = %178
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(121) %20)
          to label %180 unwind label %187

180:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %181 unwind label %189

181:                                              ; preds = %180
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull %19, i32 noundef -1, i32 noundef 0, ptr noundef nonnull %21)
          to label %182 unwind label %191

182:                                              ; preds = %181
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %20) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %20) #5
  br label %206

183:                                              ; preds = %174
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %208

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

187:                                              ; preds = %179
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %194

189:                                              ; preds = %180
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %193

191:                                              ; preds = %181
  %192 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #5
  br label %193

193:                                              ; preds = %191, %189
  %.pn58 = phi { ptr, i32 } [ %192, %191 ], [ %190, %189 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #5
  br label %194

194:                                              ; preds = %193, %187
  %.pn58.pn = phi { ptr, i32 } [ %.pn58, %193 ], [ %188, %187 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %20) #5
  br label %195

195:                                              ; preds = %194, %185
  %.pn58.pn.pn = phi { ptr, i32 } [ %.pn58.pn, %194 ], [ %186, %185 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %20) #5
  br label %207

196:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #5
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %146, i32 noundef %175)
          to label %197 unwind label %201

197:                                              ; preds = %196
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %18)
          to label %198 unwind label %203

198:                                              ; preds = %197
  %199 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  %200 = load i32, ptr %32, align 8, !tbaa !5
  br label %206

201:                                              ; preds = %196
  %202 = landingpad { ptr, i32 }
          cleanup
  br label %205

203:                                              ; preds = %197
  %204 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #5
  br label %205

205:                                              ; preds = %203, %201
  %.pn56 = phi { ptr, i32 } [ %204, %203 ], [ %202, %201 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #5
  br label %207

206:                                              ; preds = %198, %182
  %.019 = phi i32 [ %146, %182 ], [ %200, %198 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  br label %209

207:                                              ; preds = %205, %195
  %.pn58.pn.pn.pn = phi { ptr, i32 } [ %.pn58.pn.pn, %195 ], [ %.pn56, %205 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #5
  br label %208

208:                                              ; preds = %207, %183
  %.pn58.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn58.pn.pn.pn, %207 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #5
  br label %286

209:                                              ; preds = %206, %153
  %.120 = phi i32 [ %.019, %206 ], [ %146, %153 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  %210 = getelementptr inbounds i8, ptr %0, i64 104
  %211 = load i32, ptr %210, align 8, !tbaa !29
  %212 = call noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %211, i32 noundef 512)
  %213 = call noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef %212)
  br i1 %213, label %233, label %214

214:                                              ; preds = %209
  %215 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %216 unwind label %222

216:                                              ; preds = %214
  %217 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br i1 %217, label %229, label %218

218:                                              ; preds = %216
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #5
  invoke void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.6026, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %219 unwind label %224

219:                                              ; preds = %218
  %220 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %221 unwind label %226

221:                                              ; preds = %219
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  br label %229

222:                                              ; preds = %.invoke, %276, %272, %231, %214
  %223 = landingpad { ptr, i32 }
          cleanup
  br label %285

224:                                              ; preds = %218
  %225 = landingpad { ptr, i32 }
          cleanup
  br label %228

226:                                              ; preds = %219
  %227 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #5
  br label %228

228:                                              ; preds = %226, %224
  %.pn64 = phi { ptr, i32 } [ %227, %226 ], [ %225, %224 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #5
  br label %285

229:                                              ; preds = %221, %216
  %230 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  br i1 %230, label %238, label %231

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %16)
          to label %238 unwind label %222

233:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #5
  invoke void @_ZN2ts11safe_string9substringB5cxx11Eii(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %33, i32 noundef %.120)
          to label %234 unwind label %236

234:                                              ; preds = %233
  %235 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  br label %238

236:                                              ; preds = %233
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #5
  br label %285

238:                                              ; preds = %229, %231, %234
  %239 = load i32, ptr %210, align 8, !tbaa !29
  %240 = call noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %239, i32 noundef 8192)
  %241 = icmp eq i32 %240, 8192
  br i1 %241, label %242, label %259

242:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %29) #5
  invoke void @_ZN2ts4data17DiagnosticMessageC2ERNS_22DiagnosticMessageStoreE(ptr noundef nonnull align 8 dereferenceable(121) %29, ptr noundef nonnull align 8 dereferenceable(72) @_ZN2ts11DiagnosticsL43Decimals_with_leading_zeros_are_not_allowedE)
          to label %243 unwind label %248

243:                                              ; preds = %242
  invoke void @_ZN3ptrIN2ts4data17DiagnosticMessageEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(121) %29)
          to label %244 unwind label %250

244:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #5
  call void @_ZNSaIwEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  invoke void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2IS3_EEPKwRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.6452, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %245 unwind label %252

245:                                              ; preds = %244
  %246 = sub nsw i32 %.120, %33
  invoke void @_ZN2ts7Scanner5errorE3ptrINS_4data17DiagnosticMessageEEiiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE(ptr noundef nonnull align 8 dereferenceable(176) %0, ptr noundef nonnull %28, i32 noundef %33, i32 noundef %246, ptr noundef nonnull %30)
          to label %247 unwind label %254

247:                                              ; preds = %245
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #5
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %29) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %29) #5
  br label %.invoke

248:                                              ; preds = %242
  %249 = landingpad { ptr, i32 }
          cleanup
  br label %258

250:                                              ; preds = %243
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %257

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

254:                                              ; preds = %245
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #5
  br label %256

256:                                              ; preds = %254, %252
  %.pn66 = phi { ptr, i32 } [ %255, %254 ], [ %253, %252 ]
  call void @_ZNSt15__new_allocatorIwED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #5
  call void @_ZN3ptrIN2ts4data17DiagnosticMessageEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #5
  br label %257

257:                                              ; preds = %256, %250
  %.pn66.pn = phi { ptr, i32 } [ %.pn66, %256 ], [ %251, %250 ]
  call void @_ZN2ts4data17DiagnosticMessageD2Ev(ptr noundef nonnull align 8 dereferenceable(121) %29) #5
  br label %258

258:                                              ; preds = %257, %248
  %.pn66.pn.pn = phi { ptr, i32 } [ %.pn66.pn, %257 ], [ %249, %248 ]
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %29) #5
  br label %285

259:                                              ; preds = %238
  %260 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br i1 %260, label %261, label %265

261:                                              ; preds = %259
  %262 = load i32, ptr %210, align 8, !tbaa !29
  %263 = call noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %262, i32 noundef 16)
  %264 = call noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef %263)
  br i1 %264, label %276, label %265

265:                                              ; preds = %261, %259
  %266 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  br i1 %266, label %267, label %272

267:                                              ; preds = %265
  %268 = load i32, ptr %210, align 8, !tbaa !29
  %269 = call noundef i32 @_ZN2tsanENS_10TokenFlagsES0_(i32 noundef %268, i32 noundef 16)
  %270 = call noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef %269)
  %271 = xor i1 %270, true
  br label %272

272:                                              ; preds = %267, %265
  %273 = phi i1 [ false, %265 ], [ %271, %267 ]
  invoke void @_ZN2ts7Scanner42checkForIdentifierStartAfterNumericLiteralEib(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef %33, i1 noundef zeroext %273)
          to label %.invoke unwind label %222

.invoke:                                          ; preds = %272, %247
  %274 = getelementptr inbounds i8, ptr %0, i64 72
  %275 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %274, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %284 unwind label %222

276:                                              ; preds = %261
  %277 = getelementptr inbounds i8, ptr %0, i64 72
  %278 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %277, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %279 unwind label %222

279:                                              ; preds = %276
  %280 = invoke noundef i32 @_ZN2ts7Scanner17checkBigIntSuffixEv(ptr noundef nonnull align 8 dereferenceable(176) %0)
          to label %281 unwind label %282

281:                                              ; preds = %279
  invoke void @_ZN2ts7Scanner42checkForIdentifierStartAfterNumericLiteralEib(ptr noundef nonnull align 8 dereferenceable(176) %0, i32 noundef %33, i1 noundef zeroext false)
          to label %284 unwind label %282

282:                                              ; preds = %281, %279
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %285

284:                                              ; preds = %.invoke, %281
  %.0 = phi i32 [ %280, %281 ], [ 9, %.invoke ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  br label %287

285:                                              ; preds = %282, %258, %236, %228, %222
  %.pn70 = phi { ptr, i32 } [ %223, %222 ], [ %.pn66.pn.pn, %258 ], [ %283, %282 ], [ %237, %236 ], [ %.pn64, %228 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #5
  br label %286

286:                                              ; preds = %172, %208, %285, %143, %141
  %.pn70.pn.pn = phi { ptr, i32 } [ %144, %143 ], [ %142, %141 ], [ %.pn70, %285 ], [ %.pn58.pn.pn.pn.pn, %208 ], [ %173, %172 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #5
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #5
  br label %288

287:                                              ; preds = %284, %111
  %.1 = phi i32 [ %.0, %284 ], [ 9, %111 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #5
  ret i32 %.1

288:                                              ; preds = %286, %129, %125, %71, %70, %58
  %.pn70.pn.pn.pn = phi { ptr, i32 } [ %.pn70.pn.pn, %286 ], [ %72, %71 ], [ %.pn52.pn.pn, %70 ], [ %59, %58 ], [ %.pn.pn.pn.pn.pn.pn, %125 ], [ %130, %129 ]
  call void @_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %2) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #5
  resume { ptr, i32 } %.pn70.pn.pn.pn
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN2tsorENS_10TokenFlagsES0_(i32 noundef, i32 noundef) local_unnamed_addr #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1110to_wstringEi(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef i32 @_ZNSt7__cxx114stoiERKNS_12basic_stringIwSt11char_traitsIwESaIwEEEPmi(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef) local_unnamed_addr #4

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIwSt11char_traitsIwESaIwEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN2tsntENS_10TokenFlagsE(i32 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts7Scanner42checkForIdentifierStartAfterNumericLiteralEib(ptr noundef nonnull align 8 dereferenceable(176), i32 noundef, i1 noundef zeroext) local_unnamed_addr #2 align 2

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress 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 = { 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 #4 = { 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 #5 = { 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, !18, i64 48}
!6 = !{!"_ZTSN2ts7ScannerE", !7, i64 0, !10, i64 4, !11, i64 8, !12, i64 12, !13, i64 16, !18, i64 48, !18, i64 52, !18, i64 56, !18, i64 60, !19, i64 64, !14, i64 72, !20, i64 104, !21, i64 112, !18, i64 136, !25, i64 140, !26, i64 144}
!7 = !{!"_ZTSN2ts10ScriptKindE", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"_ZTSN2ts12ScriptTargetE", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"_ZTSN2ts15LanguageVariantE", !8, i64 0}
!13 = !{!"_ZTSN2ts11safe_stringE", !14, i64 0}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEE", !15, i64 0, !17, i64 8, !8, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_Alloc_hiderE", !16, i64 0}
!16 = !{!"any pointer", !8, i64 0}
!17 = !{!"long", !8, i64 0}
!18 = !{!"int", !8, i64 0}
!19 = !{!"_ZTS10SyntaxKind", !8, i64 0}
!20 = !{!"_ZTSN2ts10TokenFlagsE", !8, i64 0}
!21 = !{!"_ZTSSt6vectorI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !22, i64 0}
!22 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE12_Vector_implE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data16CommentDirectiveEESaIS4_EE17_Vector_impl_dataE", !16, i64 0, !16, i64 8, !16, i64 16}
!25 = !{!"_ZTSN2ts16JSDocParsingModeE", !8, i64 0}
!26 = !{!"_ZTSSt8functionIFv3ptrIN2ts4data17DiagnosticMessageEEiNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEEEE", !27, i64 0, !16, i64 24}
!27 = !{!"_ZTSSt14_Function_base", !8, i64 0, !16, i64 16}
!28 = !{!6, !19, i64 64}
!29 = !{!6, !20, i64 104}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,ReassociatePass,SROAPass,SimplifyCFGPass