; LLVM IR from ASDAlexander77/TypeScriptCompiler :: tsc/tsc-new-parser (node_factory)

; 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.ptr = type { %"class.std::shared_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::NodeArray" = type <{ %"struct.ts::data::ReadonlyArray", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray" = type { %"class.std::vector.21" }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::TextRange" = type { %"struct.ts::pos_type", i32 }
%"struct.ts::pos_type" = type { i32, i32 }
%struct.ptr.142 = type { %"class.std::shared_ptr.143" }
%"class.std::shared_ptr.143" = type { %"class.std::__shared_ptr.144" }
%"class.std::__shared_ptr.144" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.17 = type { %"class.std::shared_ptr.18" }
%"class.std::shared_ptr.18" = type { %"class.std::__shared_ptr.19" }
%"class.std::__shared_ptr.19" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.130 = type { %"class.std::shared_ptr.131" }
%"class.std::shared_ptr.131" = type { %"class.std::__shared_ptr.132" }
%"class.std::__shared_ptr.132" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.146 = type { %"class.std::shared_ptr.147" }
%"class.std::shared_ptr.147" = type { %"class.std::__shared_ptr.148" }
%"class.std::__shared_ptr.148" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.150 = type { %"class.std::shared_ptr.151" }
%"class.std::shared_ptr.151" = type { %"class.std::__shared_ptr.152" }
%"class.std::__shared_ptr.152" = type { ptr, %"class.std::__shared_count" }
%"struct.ts::data::Node" = type <{ ptr, %"struct.ts::data::TextRange", i32, i32, i32, i32, [4 x i8], %"struct.ts::data::NodeArray", i32, [4 x i8], %struct.ptr.17, %struct.ptr.17, i32, i8, [3 x i8] }>
%"struct.ts::data::ParameterDeclaration" = type { %"struct.ts::data::NamedDeclaration", %struct.ptr.146, %struct.ptr.150, %struct.ptr.138, %struct.ptr.130 }
%"struct.ts::data::NamedDeclaration" = type { %"struct.ts::data::Declaration", %struct.ptr.17 }
%"struct.ts::data::Declaration" = type { %"struct.ts::data::DeclarationStatement", %struct.ptr.58, %struct.ptr.58 }
%"struct.ts::data::DeclarationStatement" = type { %"struct.ts::data::Statement" }
%"struct.ts::data::Statement" = type { %"struct.ts::data::PrimaryExpression" }
%"struct.ts::data::PrimaryExpression" = type { %"struct.ts::data::MemberExpression" }
%"struct.ts::data::MemberExpression" = type { %"struct.ts::data::LeftHandSideExpression" }
%"struct.ts::data::LeftHandSideExpression" = type { %"struct.ts::data::UpdateExpression" }
%"struct.ts::data::UpdateExpression" = type { %"struct.ts::data::UnaryExpression" }
%"struct.ts::data::UnaryExpression" = type { %"struct.ts::data::ExpressionWithTypeArguments" }
%"struct.ts::data::ExpressionWithTypeArguments" = type { %"struct.ts::data::NodeWithTypeArguments", %struct.ptr.54 }
%"struct.ts::data::NodeWithTypeArguments" = type { %"struct.ts::data::Expression", %"struct.ts::data::NodeArray.46" }
%"struct.ts::data::Expression" = type { %"struct.ts::data::TypeNode" }
%"struct.ts::data::TypeNode" = type { %"struct.ts::data::JSDocContainer" }
%"struct.ts::data::JSDocContainer" = type { %"struct.ts::data::Node.base", [3 x i8], %"struct.ts::data::NodeArray.30", %"struct.ts::data::NodeArray.38" }
%"struct.ts::data::Node.base" = type <{ ptr, %"struct.ts::data::TextRange", i32, i32, i32, i32, [4 x i8], %"struct.ts::data::NodeArray", i32, [4 x i8], %struct.ptr.17, %struct.ptr.17, i32, i8 }>
%"struct.ts::data::NodeArray.30" = type <{ %"struct.ts::data::ReadonlyArray.31", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.31" = type { %"class.std::vector.32" }
%"class.std::vector.32" = type { %"struct.std::_Vector_base.33" }
%"struct.std::_Vector_base.33" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::JSDoc>, std::allocator<ptr<ts::data::JSDoc>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.38" = type <{ %"struct.ts::data::ReadonlyArray.39", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.39" = type { %"class.std::vector.40" }
%"class.std::vector.40" = type { %"struct.std::_Vector_base.41" }
%"struct.std::_Vector_base.41" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::JSDocTag>, std::allocator<ptr<ts::data::JSDocTag>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::NodeArray.46" = type <{ %"struct.ts::data::ReadonlyArray.47", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray.47" = type { %"class.std::vector.48" }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::TypeNode>, std::allocator<ptr<ts::data::TypeNode>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.ptr.54 = type { %"class.std::shared_ptr.55" }
%"class.std::shared_ptr.55" = type { %"class.std::__shared_ptr.56" }
%"class.std::__shared_ptr.56" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.58 = type { %"class.std::shared_ptr.59" }
%"class.std::shared_ptr.59" = type { %"class.std::__shared_ptr.60" }
%"class.std::__shared_ptr.60" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.138 = type { %"class.std::shared_ptr.139" }
%"class.std::shared_ptr.139" = type { %"class.std::__shared_ptr.140" }
%"class.std::__shared_ptr.140" = type { ptr, %"class.std::__shared_count" }

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

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 uwtable
declare dso_local noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) #1 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2ts11NodeFactory6asNameE3ptrINS_4data10IdentifierEE(ptr dead_on_unwind noalias writable sret(%struct.ptr) align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) #3 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) #4 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts11NodeFactory26createParameterDeclarationENS_4data9NodeArrayI3ptrINS1_4NodeEEEES3_INS1_16PunctuationTokenIL10SyntaxKind26EEEES5_S3_INS7_ILS8_58EEEES3_INS1_8TypeNodeEES3_INS1_10ExpressionEE(ptr dead_on_unwind noalias writable sret(%struct.ptr.142) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #1 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i1, align 1
  %18 = alloca %"struct.ts::data::NodeArray", align 8
  %19 = alloca %"struct.ts::data::NodeArray", align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca %struct.ptr.17, align 8
  %23 = alloca %struct.ptr, align 8
  %24 = alloca %struct.ptr, align 8
  %25 = alloca %struct.ptr.17, align 8
  %26 = alloca %struct.ptr.130, align 8
  %27 = alloca %struct.ptr.130, align 8
  %28 = alloca %struct.ptr.17, align 8
  %29 = alloca %"struct.ts::data::NodeArray", align 8
  %30 = alloca %struct.ptr.17, align 8
  %31 = alloca %struct.ptr.146, align 8
  %32 = alloca %struct.ptr.17, align 8
  %33 = alloca %struct.ptr.17, align 8
  %34 = alloca %struct.ptr.150, align 8
  %35 = alloca %struct.ptr.17, align 8
  %36 = alloca %struct.ptr.130, align 8
  %37 = alloca %"struct.ts::data::NodeArray", align 8
  store ptr %0, ptr %9, align 8
  store ptr %1, ptr %10, align 8, !tbaa !5
  store ptr %2, ptr %11, align 8, !tbaa !5
  store ptr %3, ptr %12, align 8, !tbaa !5
  store ptr %4, ptr %13, align 8, !tbaa !5
  store ptr %5, ptr %14, align 8, !tbaa !5
  store ptr %6, ptr %15, align 8, !tbaa !5
  store ptr %7, ptr %16, align 8, !tbaa !5
  %38 = load ptr, ptr %10, align 8
  store i1 false, ptr %17, align 1
  call void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data20ParameterDeclarationEEEEDa10SyntaxKind(ptr dead_on_unwind writable sret(%struct.ptr.142) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %38, i32 noundef 169)
  call void @llvm.lifetime.start.p0(i64 48, ptr %18) #5
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %19, ptr noundef nonnull align 8 dereferenceable(44) %2)
          to label %39 unwind label %78

39:                                               ; preds = %8
  invoke void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind writable sret(%"struct.ts::data::NodeArray") align 8 %18, ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %19)
          to label %40 unwind label %82

40:                                               ; preds = %39
  %41 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %42 unwind label %86

42:                                               ; preds = %40
  %43 = getelementptr inbounds %"struct.ts::data::Node", ptr %41, i32 0, i32 7
  %44 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %43, ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #5
  %45 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %46 unwind label %92

46:                                               ; preds = %42
  %47 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %45, i32 0, i32 1
  %48 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %47, ptr noundef nonnull align 8 dereferenceable(16) %3) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #5
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %4) #5
  invoke void @_ZN3ptrIN2ts4data10IdentifierEEC2INS1_4NodeEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef %25)
          to label %49 unwind label %96

49:                                               ; preds = %46
  invoke void @_ZN2ts11NodeFactory6asNameE3ptrINS_4data10IdentifierEE(ptr dead_on_unwind writable sret(%struct.ptr) align 8 %23, ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %24)
          to label %50 unwind label %100

50:                                               ; preds = %49
  invoke void @_ZN3ptrIN2ts4data4NodeEEC2INS1_10IdentifierEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef %23)
          to label %51 unwind label %104

51:                                               ; preds = %50
  %52 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %53 unwind label %108

53:                                               ; preds = %51
  %54 = getelementptr inbounds %"struct.ts::data::NamedDeclaration", ptr %52, i32 0, i32 1
  %55 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %54, ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  call void @_ZN3ptrIN2ts4data10IdentifierEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #5
  call void @_ZN3ptrIN2ts4data10IdentifierEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #5
  %56 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %57 unwind label %92

57:                                               ; preds = %53
  %58 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %56, i32 0, i32 2
  %59 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %5) #5
  %60 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %61 unwind label %92

61:                                               ; preds = %57
  %62 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %60, i32 0, i32 3
  %63 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data8TypeNodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %62, ptr noundef nonnull align 8 dereferenceable(16) %6) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull align 8 dereferenceable(16) %7) #5
  invoke void @_ZN2ts11NodeFactory13asInitializerE3ptrINS_4data10ExpressionEE(ptr dead_on_unwind writable sret(%struct.ptr.130) align 8 %26, ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %27)
          to label %64 unwind label %115

64:                                               ; preds = %61
  %65 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %66 unwind label %119

66:                                               ; preds = %64
  %67 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %65, i32 0, i32 4
  %68 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data10ExpressionEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %67, ptr noundef nonnull align 8 dereferenceable(16) %26) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #5
  %69 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %70 unwind label %92

70:                                               ; preds = %66
  %71 = getelementptr inbounds %"struct.ts::data::NamedDeclaration", ptr %69, i32 0, i32 1
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %71) #5
  %72 = invoke noundef zeroext i1 @_ZN2tsL16isThisIdentifierE3ptrINS_4data4NodeEE(ptr noundef %28)
          to label %73 unwind label %124

73:                                               ; preds = %70
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #5
  br i1 %72, label %74, label %128

74:                                               ; preds = %73
  %75 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %76 unwind label %92

76:                                               ; preds = %74
  %77 = getelementptr inbounds %"struct.ts::data::Node", ptr %75, i32 0, i32 5
  store i32 1, ptr %77, align 8, !tbaa !9
  br label %259

78:                                               ; preds = %8
  %79 = landingpad { ptr, i32 }
          cleanup
  %80 = extractvalue { ptr, i32 } %79, 0
  store ptr %80, ptr %20, align 8
  %81 = extractvalue { ptr, i32 } %79, 1
  store i32 %81, ptr %21, align 4
  br label %91

82:                                               ; preds = %39
  %83 = landingpad { ptr, i32 }
          cleanup
  %84 = extractvalue { ptr, i32 } %83, 0
  store ptr %84, ptr %20, align 8
  %85 = extractvalue { ptr, i32 } %83, 1
  store i32 %85, ptr %21, align 4
  br label %90

86:                                               ; preds = %40
  %87 = landingpad { ptr, i32 }
          cleanup
  %88 = extractvalue { ptr, i32 } %87, 0
  store ptr %88, ptr %20, align 8
  %89 = extractvalue { ptr, i32 } %87, 1
  store i32 %89, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  br label %90

90:                                               ; preds = %86, %82
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %19) #5
  br label %91

91:                                               ; preds = %90, %78
  call void @llvm.lifetime.end.p0(i64 48, ptr %18) #5
  br label %263

92:                                               ; preds = %250, %248, %238, %236, %232, %230, %227, %224, %181, %179, %175, %173, %170, %130, %128, %74, %66, %57, %53, %42
  %93 = landingpad { ptr, i32 }
          cleanup
  %94 = extractvalue { ptr, i32 } %93, 0
  store ptr %94, ptr %20, align 8
  %95 = extractvalue { ptr, i32 } %93, 1
  store i32 %95, ptr %21, align 4
  br label %263

96:                                               ; preds = %46
  %97 = landingpad { ptr, i32 }
          cleanup
  %98 = extractvalue { ptr, i32 } %97, 0
  store ptr %98, ptr %20, align 8
  %99 = extractvalue { ptr, i32 } %97, 1
  store i32 %99, ptr %21, align 4
  br label %114

100:                                              ; preds = %49
  %101 = landingpad { ptr, i32 }
          cleanup
  %102 = extractvalue { ptr, i32 } %101, 0
  store ptr %102, ptr %20, align 8
  %103 = extractvalue { ptr, i32 } %101, 1
  store i32 %103, ptr %21, align 4
  br label %113

104:                                              ; preds = %50
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %20, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %21, align 4
  br label %112

108:                                              ; preds = %51
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %20, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  br label %112

112:                                              ; preds = %108, %104
  call void @_ZN3ptrIN2ts4data10IdentifierEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #5
  br label %113

113:                                              ; preds = %112, %100
  call void @_ZN3ptrIN2ts4data10IdentifierEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #5
  br label %114

114:                                              ; preds = %113, %96
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #5
  br label %263

115:                                              ; preds = %61
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %20, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %21, align 4
  br label %123

119:                                              ; preds = %64
  %120 = landingpad { ptr, i32 }
          cleanup
  %121 = extractvalue { ptr, i32 } %120, 0
  store ptr %121, ptr %20, align 8
  %122 = extractvalue { ptr, i32 } %120, 1
  store i32 %122, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #5
  br label %123

123:                                              ; preds = %119, %115
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %27) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #5
  br label %263

124:                                              ; preds = %70
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %20, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #5
  br label %263

128:                                              ; preds = %73
  %129 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %130 unwind label %92

130:                                              ; preds = %128
  %131 = getelementptr inbounds %"struct.ts::data::Node", ptr %129, i32 0, i32 7
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %29, ptr noundef nonnull align 8 dereferenceable(44) %131)
          to label %132 unwind label %92

132:                                              ; preds = %130
  %133 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data4NodeEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %29)
          to label %134 unwind label %185

134:                                              ; preds = %132
  %135 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %136 unwind label %185

136:                                              ; preds = %134
  %137 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %135, i32 0, i32 1
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(16) %137) #5
  invoke void @_ZN3ptrIN2ts4data4NodeEEC2INS1_16PunctuationTokenIL10SyntaxKind26EEEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %30, ptr noundef %31)
          to label %138 unwind label %189

138:                                              ; preds = %136
  %139 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %30)
          to label %140 unwind label %193

140:                                              ; preds = %138
  %141 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %133, i32 noundef %139)
          to label %142 unwind label %193

142:                                              ; preds = %140
  %143 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %144 unwind label %193

144:                                              ; preds = %142
  %145 = getelementptr inbounds %"struct.ts::data::NamedDeclaration", ptr %143, i32 0, i32 1
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %145) #5
  %146 = invoke noundef i32 @_ZN2ts11NodeFactory18propagateNameFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %32)
          to label %147 unwind label %197

147:                                              ; preds = %144
  %148 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %141, i32 noundef %146)
          to label %149 unwind label %197

149:                                              ; preds = %147
  %150 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %151 unwind label %197

151:                                              ; preds = %149
  %152 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %150, i32 0, i32 2
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %152) #5
  invoke void @_ZN3ptrIN2ts4data4NodeEEC2INS1_16PunctuationTokenIL10SyntaxKind58EEEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef %34)
          to label %153 unwind label %201

153:                                              ; preds = %151
  %154 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %33)
          to label %155 unwind label %205

155:                                              ; preds = %153
  %156 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %148, i32 noundef %154)
          to label %157 unwind label %205

157:                                              ; preds = %155
  %158 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %159 unwind label %205

159:                                              ; preds = %157
  %160 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %158, i32 0, i32 4
  call void @_ZN3ptrIN2ts4data10ExpressionEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %160) #5
  invoke void @_ZN3ptrIN2ts4data4NodeEEC2INS1_10ExpressionEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef %36)
          to label %161 unwind label %209

161:                                              ; preds = %159
  %162 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %38, ptr noundef %35)
          to label %163 unwind label %213

163:                                              ; preds = %161
  %164 = invoke noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %156, i32 noundef %162)
          to label %165 unwind label %213

165:                                              ; preds = %163
  %166 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %167 unwind label %213

167:                                              ; preds = %165
  %168 = getelementptr inbounds %"struct.ts::data::Node", ptr %166, i32 0, i32 5
  %169 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %168, i32 noundef %164)
          to label %170 unwind label %213

170:                                              ; preds = %167
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #5
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #5
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %29) #5
  %171 = invoke noundef zeroext i1 @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
          to label %172 unwind label %92

172:                                              ; preds = %170
  br i1 %171, label %173, label %179

173:                                              ; preds = %172
  %174 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %175 unwind label %92

175:                                              ; preds = %173
  %176 = getelementptr inbounds %"struct.ts::data::ParameterDeclaration", ptr %174, i32 0, i32 3
  %177 = invoke noundef zeroext i1 @_ZN3ptrIN2ts4data8TypeNodeEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %176)
          to label %178 unwind label %92

178:                                              ; preds = %175
  br i1 %177, label %224, label %179

179:                                              ; preds = %178, %172
  %180 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %181 unwind label %92

181:                                              ; preds = %179
  %182 = getelementptr inbounds %"struct.ts::data::Node", ptr %180, i32 0, i32 5
  %183 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %182, i32 noundef 1)
          to label %184 unwind label %92

184:                                              ; preds = %181
  br label %224

185:                                              ; preds = %134, %132
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %20, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %21, align 4
  br label %223

189:                                              ; preds = %136
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %20, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %21, align 4
  br label %222

193:                                              ; preds = %142, %140, %138
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %20, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %21, align 4
  br label %221

197:                                              ; preds = %149, %147, %144
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %20, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %21, align 4
  br label %220

201:                                              ; preds = %151
  %202 = landingpad { ptr, i32 }
          cleanup
  %203 = extractvalue { ptr, i32 } %202, 0
  store ptr %203, ptr %20, align 8
  %204 = extractvalue { ptr, i32 } %202, 1
  store i32 %204, ptr %21, align 4
  br label %219

205:                                              ; preds = %157, %155, %153
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %20, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %21, align 4
  br label %218

209:                                              ; preds = %159
  %210 = landingpad { ptr, i32 }
          cleanup
  %211 = extractvalue { ptr, i32 } %210, 0
  store ptr %211, ptr %20, align 8
  %212 = extractvalue { ptr, i32 } %210, 1
  store i32 %212, ptr %21, align 4
  br label %217

213:                                              ; preds = %167, %165, %163, %161
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %20, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %21, align 4
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #5
  br label %217

217:                                              ; preds = %213, %209
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %36) #5
  br label %218

218:                                              ; preds = %217, %205
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %33) #5
  br label %219

219:                                              ; preds = %218, %201
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #5
  br label %220

220:                                              ; preds = %219, %197
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #5
  br label %221

221:                                              ; preds = %220, %193
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %30) #5
  br label %222

222:                                              ; preds = %221, %189
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #5
  br label %223

223:                                              ; preds = %222, %185
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %29) #5
  br label %263

224:                                              ; preds = %184, %178
  %225 = invoke noundef zeroext i1 @_ZN3ptrIN2ts4data10ExpressionEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
          to label %226 unwind label %92

226:                                              ; preds = %224
  br i1 %225, label %227, label %230

227:                                              ; preds = %226
  %228 = invoke noundef zeroext i1 @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %229 unwind label %92

229:                                              ; preds = %227
  br i1 %228, label %236, label %230

230:                                              ; preds = %229, %226
  %231 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %232 unwind label %92

232:                                              ; preds = %230
  %233 = getelementptr inbounds %"struct.ts::data::Node", ptr %231, i32 0, i32 5
  %234 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %233, i32 noundef 1024)
          to label %235 unwind label %92

235:                                              ; preds = %232
  br label %236

236:                                              ; preds = %235, %229
  %237 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %238 unwind label %92

238:                                              ; preds = %236
  %239 = getelementptr inbounds %"struct.ts::data::Node", ptr %237, i32 0, i32 7
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %37, ptr noundef nonnull align 8 dereferenceable(44) %239)
          to label %240 unwind label %92

240:                                              ; preds = %238
  %241 = invoke noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef %37)
          to label %242 unwind label %254

242:                                              ; preds = %240
  %243 = invoke noundef i32 @_ZN2tsanENS_13ModifierFlagsES0_(i32 noundef %241, i32 noundef 92)
          to label %244 unwind label %254

244:                                              ; preds = %242
  %245 = invoke noundef zeroext i1 @_ZN2tsntENS_13ModifierFlagsE(i32 noundef %243)
          to label %246 unwind label %254

246:                                              ; preds = %244
  %247 = xor i1 %245, true
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %37) #5
  br i1 %247, label %248, label %258

248:                                              ; preds = %246
  %249 = invoke noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
          to label %250 unwind label %92

250:                                              ; preds = %248
  %251 = getelementptr inbounds %"struct.ts::data::Node", ptr %249, i32 0, i32 5
  %252 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %251, i32 noundef 8192)
          to label %253 unwind label %92

253:                                              ; preds = %250
  br label %258

254:                                              ; preds = %244, %242, %240
  %255 = landingpad { ptr, i32 }
          cleanup
  %256 = extractvalue { ptr, i32 } %255, 0
  store ptr %256, ptr %20, align 8
  %257 = extractvalue { ptr, i32 } %255, 1
  store i32 %257, ptr %21, align 4
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %37) #5
  br label %263

258:                                              ; preds = %253, %246
  br label %259

259:                                              ; preds = %258, %76
  store i1 true, ptr %17, align 1
  %260 = load i1, ptr %17, align 1
  br i1 %260, label %262, label %261

261:                                              ; preds = %259
  call void @_ZN3ptrIN2ts4data20ParameterDeclarationEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5
  br label %262

262:                                              ; preds = %261, %259
  ret void

263:                                              ; preds = %254, %223, %124, %123, %114, %92, %91
  call void @_ZN3ptrIN2ts4data20ParameterDeclarationEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5
  br label %264

264:                                              ; preds = %263
  %265 = load ptr, ptr %20, align 8
  %266 = load i32, ptr %21, align 4
  %267 = insertvalue { ptr, i32 } poison, ptr %265, 0
  %268 = insertvalue { ptr, i32 } %267, i32 %266, 1
  resume { ptr, i32 } %268
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data20ParameterDeclarationEEEEDa10SyntaxKind(ptr dead_on_unwind noalias writable sret(%struct.ptr.142) align 8, ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory13asInitializerE3ptrINS_4data10ExpressionEE(ptr dead_on_unwind noalias writable sret(%struct.ptr.130) align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN2tsL16isThisIdentifierE3ptrINS_4data4NodeEE(ptr noundef) #4

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef) #1

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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, !17, i64 32}
!10 = !{!"_ZTSN2ts4data4NodeE", !11, i64 8, !14, i64 20, !15, i64 24, !16, i64 28, !17, i64 32, !18, i64 40, !13, i64 88, !25, i64 96, !25, i64 112, !29, i64 128, !24, i64 132}
!11 = !{!"_ZTSN2ts4data9TextRangeE", !12, i64 0, !13, i64 8}
!12 = !{!"_ZTSN2ts8pos_typeE", !13, i64 0, !13, i64 4}
!13 = !{!"int", !7, i64 0}
!14 = !{!"_ZTS10SyntaxKind", !7, i64 0}
!15 = !{!"_ZTSN2ts9NodeFlagsE", !7, i64 0}
!16 = !{!"_ZTSN2ts13ModifierFlagsE", !7, i64 0}
!17 = !{!"_ZTSN2ts14TransformFlagsE", !7, i64 0}
!18 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_4NodeEEEE", !19, i64 0, !11, i64 24, !24, i64 36, !24, i64 37, !24, i64 38, !17, i64 40}
!19 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_4NodeEEEE", !20, i64 0}
!20 = !{!"_ZTSSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!"bool", !7, i64 0}
!25 = !{!"_ZTS3ptrIN2ts4data4NodeEE", !26, i64 0}
!26 = !{!"_ZTSSt10shared_ptrIN2ts4data4NodeEE", !27, i64 0}
!27 = !{!"_ZTSSt12__shared_ptrIN2ts4data4NodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!28 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!29 = !{!"_ZTSN2ts13InternalFlagsE", !7, 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.ptr = type { %"class.std::shared_ptr" }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.ts::data::NodeArray" = type <{ %"struct.ts::data::ReadonlyArray", %"struct.ts::data::TextRange", i8, i8, i8, i8, i32, [4 x i8] }>
%"struct.ts::data::ReadonlyArray" = type { %"class.std::vector.21" }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl" = type { %"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<ptr<ts::data::Node>, std::allocator<ptr<ts::data::Node>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.ts::data::TextRange" = type { %"struct.ts::pos_type", i32 }
%"struct.ts::pos_type" = type { i32, i32 }
%struct.ptr.142 = type { %"class.std::shared_ptr.143" }
%"class.std::shared_ptr.143" = type { %"class.std::__shared_ptr.144" }
%"class.std::__shared_ptr.144" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.17 = type { %"class.std::shared_ptr.18" }
%"class.std::shared_ptr.18" = type { %"class.std::__shared_ptr.19" }
%"class.std::__shared_ptr.19" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.130 = type { %"class.std::shared_ptr.131" }
%"class.std::shared_ptr.131" = type { %"class.std::__shared_ptr.132" }
%"class.std::__shared_ptr.132" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.146 = type { %"class.std::shared_ptr.147" }
%"class.std::shared_ptr.147" = type { %"class.std::__shared_ptr.148" }
%"class.std::__shared_ptr.148" = type { ptr, %"class.std::__shared_count" }
%struct.ptr.150 = type { %"class.std::shared_ptr.151" }
%"class.std::shared_ptr.151" = type { %"class.std::__shared_ptr.152" }
%"class.std::__shared_ptr.152" = type { ptr, %"class.std::__shared_count" }

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

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 uwtable
declare dso_local noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) local_unnamed_addr #1 align 2

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN2ts11NodeFactory6asNameE3ptrINS_4data10IdentifierEE(ptr dead_on_unwind noalias writable sret(%struct.ptr) align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) local_unnamed_addr #3 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind noalias writable sret(%"struct.ts::data::NodeArray") align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN2ts11NodeFactory26createParameterDeclarationENS_4data9NodeArrayI3ptrINS1_4NodeEEEES3_INS1_16PunctuationTokenIL10SyntaxKind26EEEES5_S3_INS7_ILS8_58EEEES3_INS1_8TypeNodeEES3_INS1_10ExpressionEE(ptr dead_on_unwind noalias writable sret(%struct.ptr.142) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %9 = alloca %"struct.ts::data::NodeArray", align 8
  %10 = alloca %"struct.ts::data::NodeArray", align 8
  %11 = alloca %struct.ptr.17, align 8
  %12 = alloca %struct.ptr, align 8
  %13 = alloca %struct.ptr, align 8
  %14 = alloca %struct.ptr.17, align 8
  %15 = alloca %struct.ptr.130, align 8
  %16 = alloca %struct.ptr.130, align 8
  %17 = alloca %struct.ptr.17, align 8
  %18 = alloca %"struct.ts::data::NodeArray", align 8
  %19 = alloca %struct.ptr.17, align 8
  %20 = alloca %struct.ptr.146, align 8
  %21 = alloca %struct.ptr.17, align 8
  %22 = alloca %struct.ptr.17, align 8
  %23 = alloca %struct.ptr.150, align 8
  %24 = alloca %struct.ptr.17, align 8
  %25 = alloca %struct.ptr.130, align 8
  %26 = alloca %"struct.ts::data::NodeArray", align 8
  tail call void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data20ParameterDeclarationEEEEDa10SyntaxKind(ptr dead_on_unwind writable sret(%struct.ptr.142) align 8 %0, ptr noundef nonnull align 8 dereferenceable(232) %1, i32 noundef 169)
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) #5
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %10, ptr noundef nonnull align 8 dereferenceable(44) %2)
          to label %27 unwind label %55

27:                                               ; preds = %8
  invoke void @_ZN2ts11NodeFactory11asNodeArrayI3ptrINS_4data4NodeEEEENS3_9NodeArrayIT_EES8_(ptr dead_on_unwind nonnull writable sret(%"struct.ts::data::NodeArray") align 8 %9, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %10)
          to label %28 unwind label %57

28:                                               ; preds = %27
  %29 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %30 = getelementptr inbounds i8, ptr %29, i64 40
  %31 = call noundef nonnull align 8 dereferenceable(44) ptr @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEaSEOS5_(ptr noundef nonnull align 8 dereferenceable(44) %30, ptr noundef nonnull align 8 dereferenceable(44) %9) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %9) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %10) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #5
  %32 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %33 = getelementptr inbounds i8, ptr %32, i64 344
  %34 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %33, ptr noundef nonnull align 8 dereferenceable(16) %3) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11) #5
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull align 8 dereferenceable(16) %4) #5
  call void @_ZN3ptrIN2ts4data10IdentifierEEC2INS1_4NodeEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef nonnull %14)
  call void @_ZN2ts11NodeFactory6asNameE3ptrINS_4data10IdentifierEE(ptr dead_on_unwind nonnull writable sret(%struct.ptr) align 8 %12, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %13)
  call void @_ZN3ptrIN2ts4data4NodeEEC2INS1_10IdentifierEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %11, ptr noundef nonnull %12)
  %35 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %36 = getelementptr inbounds i8, ptr %35, i64 328
  %37 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data4NodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef nonnull align 8 dereferenceable(16) %11) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #5
  call void @_ZN3ptrIN2ts4data10IdentifierEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %12) #5
  call void @_ZN3ptrIN2ts4data10IdentifierEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) #5
  %38 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %39 = getelementptr inbounds i8, ptr %38, i64 360
  %40 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEEaSERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %5) #5
  %41 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %42 = getelementptr inbounds i8, ptr %41, i64 376
  %43 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data8TypeNodeEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %42, ptr noundef nonnull align 8 dereferenceable(16) %6) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef nonnull align 8 dereferenceable(16) %7) #5
  invoke void @_ZN2ts11NodeFactory13asInitializerE3ptrINS_4data10ExpressionEE(ptr dead_on_unwind nonnull writable sret(%struct.ptr.130) align 8 %15, ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %16)
          to label %44 unwind label %62

44:                                               ; preds = %28
  %45 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %46 = getelementptr inbounds i8, ptr %45, i64 392
  %47 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN3ptrIN2ts4data10ExpressionEEaSERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %46, ptr noundef nonnull align 8 dereferenceable(16) %15) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #5
  %48 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %49 = getelementptr inbounds i8, ptr %48, i64 328
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef nonnull align 8 dereferenceable(16) %49) #5
  %50 = invoke noundef zeroext i1 @_ZN2tsL16isThisIdentifierE3ptrINS_4data4NodeEE(ptr noundef nonnull %17)
          to label %51 unwind label %64

51:                                               ; preds = %44
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #5
  %52 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  br i1 %50, label %53, label %66

53:                                               ; preds = %51
  %54 = getelementptr inbounds i8, ptr %52, i64 32
  store i32 1, ptr %54, align 8, !tbaa !5
  br label %139

55:                                               ; preds = %8
  %56 = landingpad { ptr, i32 }
          cleanup
  br label %59

57:                                               ; preds = %27
  %58 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %10) #5
  br label %59

59:                                               ; preds = %57, %55
  %.pn = phi { ptr, i32 } [ %58, %57 ], [ %56, %55 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %9) #5
  br label %140

60:                                               ; preds = %125, %66
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %140

62:                                               ; preds = %28
  %63 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #5
  br label %140

64:                                               ; preds = %44
  %65 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %17) #5
  br label %140

66:                                               ; preds = %51
  %67 = getelementptr inbounds i8, ptr %52, i64 40
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %18, ptr noundef nonnull align 8 dereferenceable(44) %67)
          to label %68 unwind label %60

68:                                               ; preds = %66
  %69 = invoke noundef i32 @_ZN2ts11NodeFactory22propagateChildrenFlagsI3ptrINS_4data4NodeEEEENS_14TransformFlagsENS3_9NodeArrayIT_EE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %18)
          to label %70 unwind label %103

70:                                               ; preds = %68
  %71 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %72 = getelementptr inbounds i8, ptr %71, i64 344
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %72) #5
  call void @_ZN3ptrIN2ts4data4NodeEEC2INS1_16PunctuationTokenIL10SyntaxKind26EEEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull %20)
  %73 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %19)
          to label %74 unwind label %105

74:                                               ; preds = %70
  %75 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %69, i32 noundef %73)
  %76 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %77 = getelementptr inbounds i8, ptr %76, i64 328
  call void @_ZN3ptrIN2ts4data4NodeEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef nonnull align 8 dereferenceable(16) %77) #5
  %78 = invoke noundef i32 @_ZN2ts11NodeFactory18propagateNameFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %21)
          to label %79 unwind label %107

79:                                               ; preds = %74
  %80 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %75, i32 noundef %78)
  %81 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %82 = getelementptr inbounds i8, ptr %81, i64 360
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %82) #5
  call void @_ZN3ptrIN2ts4data4NodeEEC2INS1_16PunctuationTokenIL10SyntaxKind58EEEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %22, ptr noundef nonnull %23)
  %83 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %22)
          to label %84 unwind label %109

84:                                               ; preds = %79
  %85 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %80, i32 noundef %83)
  %86 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %87 = getelementptr inbounds i8, ptr %86, i64 392
  call void @_ZN3ptrIN2ts4data10ExpressionEEC2ERKS3_(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef nonnull align 8 dereferenceable(16) %87) #5
  call void @_ZN3ptrIN2ts4data4NodeEEC2INS1_10ExpressionEEES_IT_E(ptr noundef nonnull align 8 dereferenceable(16) %24, ptr noundef nonnull %25)
  %88 = invoke noundef i32 @_ZN2ts11NodeFactory19propagateChildFlagsE3ptrINS_4data4NodeEE(ptr noundef nonnull align 8 dereferenceable(232) %1, ptr noundef nonnull %24)
          to label %89 unwind label %111

89:                                               ; preds = %84
  %90 = call noundef i32 @_ZN2tsorENS_14TransformFlagsES0_(i32 noundef %85, i32 noundef %88)
  %91 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %92 = getelementptr inbounds i8, ptr %91, i64 32
  %93 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %92, i32 noundef %90)
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #5
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #5
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #5
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  %94 = call noundef zeroext i1 @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %5)
  br i1 %94, label %95, label %99

95:                                               ; preds = %89
  %96 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %97 = getelementptr inbounds i8, ptr %96, i64 376
  %98 = call noundef zeroext i1 @_ZN3ptrIN2ts4data8TypeNodeEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %97)
  br i1 %98, label %117, label %99

99:                                               ; preds = %95, %89
  %100 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %101 = getelementptr inbounds i8, ptr %100, i64 32
  %102 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %101, i32 noundef 1)
  br label %117

103:                                              ; preds = %68
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %116

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

107:                                              ; preds = %74
  %108 = landingpad { ptr, i32 }
          cleanup
  br label %114

109:                                              ; preds = %79
  %110 = landingpad { ptr, i32 }
          cleanup
  br label %113

111:                                              ; preds = %84
  %112 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #5
  call void @_ZN3ptrIN2ts4data10ExpressionEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %25) #5
  br label %113

113:                                              ; preds = %111, %109
  %.pn10 = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #5
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind58EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #5
  br label %114

114:                                              ; preds = %113, %107
  %.pn10.pn = phi { ptr, i32 } [ %.pn10, %113 ], [ %108, %107 ]
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #5
  br label %115

115:                                              ; preds = %114, %105
  %.pn10.pn.pn = phi { ptr, i32 } [ %.pn10.pn, %114 ], [ %106, %105 ]
  call void @_ZN3ptrIN2ts4data4NodeEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #5
  call void @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #5
  br label %116

116:                                              ; preds = %115, %103
  %.pn10.pn.pn.pn = phi { ptr, i32 } [ %.pn10.pn.pn, %115 ], [ %104, %103 ]
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %18) #5
  br label %140

117:                                              ; preds = %99, %95
  %118 = call noundef zeroext i1 @_ZN3ptrIN2ts4data10ExpressionEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %7)
  br i1 %118, label %119, label %121

119:                                              ; preds = %117
  %120 = call noundef zeroext i1 @_ZN3ptrIN2ts4data16PunctuationTokenIL10SyntaxKind26EEEEntEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
  br i1 %120, label %125, label %121

121:                                              ; preds = %119, %117
  %122 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %123 = getelementptr inbounds i8, ptr %122, i64 32
  %124 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %123, i32 noundef 1024)
  br label %125

125:                                              ; preds = %121, %119
  %126 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %127 = getelementptr inbounds i8, ptr %126, i64 40
  invoke void @_ZN2ts4data9NodeArrayI3ptrINS0_4NodeEEEC2ERKS5_(ptr noundef nonnull align 8 dereferenceable(44) %26, ptr noundef nonnull align 8 dereferenceable(44) %127)
          to label %128 unwind label %60

128:                                              ; preds = %125
  %129 = invoke noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef nonnull %26)
          to label %130 unwind label %137

130:                                              ; preds = %128
  %131 = call noundef i32 @_ZN2tsanENS_13ModifierFlagsES0_(i32 noundef %129, i32 noundef 92)
  %132 = call noundef zeroext i1 @_ZN2tsntENS_13ModifierFlagsE(i32 noundef %131)
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %26) #5
  br i1 %132, label %139, label %133

133:                                              ; preds = %130
  %134 = call noundef ptr @_ZN3ptrIN2ts4data20ParameterDeclarationEEptEv(ptr noundef nonnull align 8 dereferenceable(16) %0)
  %135 = getelementptr inbounds i8, ptr %134, i64 32
  %136 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN2tsoRERNS_14TransformFlagsES0_(ptr noundef nonnull align 4 dereferenceable(4) %135, i32 noundef 8192)
  br label %139

137:                                              ; preds = %128
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(44) %26) #5
  br label %140

139:                                              ; preds = %53, %133, %130
  ret void

140:                                              ; preds = %137, %116, %64, %62, %60, %59
  %.pn15 = phi { ptr, i32 } [ %138, %137 ], [ %61, %60 ], [ %.pn10.pn.pn.pn, %116 ], [ %65, %64 ], [ %63, %62 ], [ %.pn, %59 ]
  call void @_ZN3ptrIN2ts4data20ParameterDeclarationEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %0) #5
  resume { ptr, i32 } %.pn15
}

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory21createBaseDeclarationI3ptrINS_4data20ParameterDeclarationEEEEDa10SyntaxKind(ptr dead_on_unwind noalias writable sret(%struct.ptr.142) align 8, ptr noundef nonnull align 8 dereferenceable(232), i32 noundef) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN2ts11NodeFactory13asInitializerE3ptrINS_4data10ExpressionEE(ptr dead_on_unwind noalias writable sret(%struct.ptr.130) align 8, ptr noundef nonnull align 8 dereferenceable(232), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @_ZN2tsL16isThisIdentifierE3ptrINS_4data4NodeEE(ptr noundef) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare hidden noundef i32 @_ZN2tsL16modifiersToFlagsENS_4data9NodeArrayI3ptrINS0_4NodeEEEE(ptr noundef) local_unnamed_addr #1

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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, !15, i64 32}
!6 = !{!"_ZTSN2ts4data4NodeE", !7, i64 8, !12, i64 20, !13, i64 24, !14, i64 28, !15, i64 32, !16, i64 40, !9, i64 88, !24, i64 96, !24, i64 112, !28, i64 128, !23, i64 132}
!7 = !{!"_ZTSN2ts4data9TextRangeE", !8, i64 0, !9, i64 8}
!8 = !{!"_ZTSN2ts8pos_typeE", !9, i64 0, !9, i64 4}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTS10SyntaxKind", !10, i64 0}
!13 = !{!"_ZTSN2ts9NodeFlagsE", !10, i64 0}
!14 = !{!"_ZTSN2ts13ModifierFlagsE", !10, i64 0}
!15 = !{!"_ZTSN2ts14TransformFlagsE", !10, i64 0}
!16 = !{!"_ZTSN2ts4data9NodeArrayI3ptrINS0_4NodeEEEE", !17, i64 0, !7, i64 24, !23, i64 36, !23, i64 37, !23, i64 38, !15, i64 40}
!17 = !{!"_ZTSN2ts4data13ReadonlyArrayI3ptrINS0_4NodeEEEE", !18, i64 0}
!18 = !{!"_ZTSSt6vectorI3ptrIN2ts4data4NodeEESaIS4_EE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseI3ptrIN2ts4data4NodeEESaIS4_EE17_Vector_impl_dataE", !22, i64 0, !22, i64 8, !22, i64 16}
!22 = !{!"any pointer", !10, i64 0}
!23 = !{!"bool", !10, i64 0}
!24 = !{!"_ZTS3ptrIN2ts4data4NodeEE", !25, i64 0}
!25 = !{!"_ZTSSt10shared_ptrIN2ts4data4NodeEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIN2ts4data4NodeELN9__gnu_cxx12_Lock_policyE2EE", !22, i64 0, !27, i64 8}
!27 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !22, i64 0}
!28 = !{!"_ZTSN2ts13InternalFlagsE", !10, i64 0}


; Effective O3 passes: GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass