; LLVM IR from gulrak/filesystem :: test (filesystem_test)

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

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"class.Catch::XmlWriter::ScopedElement" = type <{ ptr, i32, [4 x i8] }>
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.421" = type { ptr }
%"class.Catch::JunitReporter" = type <{ %"struct.Catch::CumulativeReporterBase.base", [6 x i8], %"class.Catch::XmlWriter", %"class.Catch::Timer", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i8, [3 x i8] }>
%"struct.Catch::CumulativeReporterBase.base" = type <{ %"struct.Catch::IStreamingReporter", %"class.std::shared_ptr", ptr, %"class.std::vector.385", %"class.std::vector.390", %"class.std::vector.395", %"class.std::vector.400", %"class.std::vector.405", %"class.std::shared_ptr.410", %"class.std::shared_ptr.410", %"class.std::vector.413", %"struct.Catch::ReporterPreferences" }>
%"struct.Catch::IStreamingReporter" = type { 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 }
%"class.std::vector.385" = type { %"struct.std::_Vector_base.386" }
%"struct.std::_Vector_base.386" = type { %"struct.std::_Vector_base<Catch::AssertionStats, std::allocator<Catch::AssertionStats>>::_Vector_impl" }
%"struct.std::_Vector_base<Catch::AssertionStats, std::allocator<Catch::AssertionStats>>::_Vector_impl" = type { %"struct.std::_Vector_base<Catch::AssertionStats, std::allocator<Catch::AssertionStats>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Catch::AssertionStats, std::allocator<Catch::AssertionStats>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.390" = type { %"struct.std::_Vector_base.391" }
%"struct.std::_Vector_base.391" = type { %"struct.std::_Vector_base<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::vector<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.395" = type { %"struct.std::_Vector_base.396" }
%"struct.std::_Vector_base.396" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.400" = type { %"struct.std::_Vector_base.401" }
%"struct.std::_Vector_base.401" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.405" = type { %"struct.std::_Vector_base.406" }
%"struct.std::_Vector_base.406" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestRunStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestGroupStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::Node<Catch::TestCaseStats, Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::shared_ptr.410" = type { %"class.std::__shared_ptr.411" }
%"class.std::__shared_ptr.411" = type { ptr, %"class.std::__shared_count" }
%"class.std::vector.413" = type { %"struct.std::_Vector_base.414" }
%"struct.std::_Vector_base.414" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>, std::allocator<std::shared_ptr<Catch::CumulativeReporterBase<Catch::JunitReporter>::SectionNode>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.Catch::ReporterPreferences" = type { i8, i8 }
%"class.Catch::XmlWriter" = type { i8, i8, %"class.std::vector.16", %"class.std::__cxx11::basic_string", ptr }
%"class.std::vector.16" = type { %"struct.std::_Vector_base.17" }
%"struct.std::_Vector_base.17" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Catch::Timer" = type { i64 }
%"struct.Catch::CumulativeReporterBase<Catch::JunitReporter>::Node" = type { ptr, %"struct.Catch::TestGroupStats", %"class.std::vector.395" }
%"struct.Catch::TestGroupStats" = type <{ ptr, %"struct.Catch::GroupInfo", %"struct.Catch::Totals", i8, [7 x i8] }>
%"struct.Catch::GroupInfo" = type { %"class.std::__cxx11::basic_string", i64, i64 }
%"struct.Catch::Totals" = type { i32, %"struct.Catch::Counts", %"struct.Catch::Counts" }
%"struct.Catch::Counts" = type { i64, i64, i64 }
%"struct.Catch::CumulativeReporterBase" = type <{ %"struct.Catch::IStreamingReporter", %"class.std::shared_ptr", ptr, %"class.std::vector.385", %"class.std::vector.390", %"class.std::vector.395", %"class.std::vector.400", %"class.std::vector.405", %"class.std::shared_ptr.410", %"class.std::shared_ptr.410", %"class.std::vector.413", %"struct.Catch::ReporterPreferences", [6 x i8] }>

@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [11 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef, i32 noundef) #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind noalias writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8, ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Catch13JunitReporter10writeGroupERKNS_22CumulativeReporterBaseIS0_E4NodeINS_14TestGroupStatsENS3_INS_13TestCaseStatsENS2_11SectionNodeEEEEEd(ptr noundef nonnull align 8 dereferenceable(365) %0, ptr noundef nonnull align 8 dereferenceable(152) %1, double noundef %2) #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca double, align 8
  %7 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator", align 1
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::allocator", align 1
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca i64, align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator", align 1
  %22 = alloca i64, align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator", align 1
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::allocator", align 1
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::allocator", align 1
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::allocator", align 1
  %36 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::allocator", align 1
  %47 = alloca %"class.std::__cxx11::basic_string", align 8
  %48 = alloca %"class.std::allocator", align 1
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca i32, align 4
  %52 = alloca ptr, align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.421", align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator.421", align 8
  %55 = alloca ptr, align 8
  %56 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::allocator", align 1
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::allocator", align 1
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store double %2, ptr %6, align 8, !tbaa !9
  %64 = load ptr, ptr %4, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #4
  %65 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef @.str.285, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %66 unwind label %121

66:                                               ; preds = %3
  %67 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %7, ptr noundef nonnull align 8 dereferenceable(72) %65, ptr noundef nonnull align 8 dereferenceable(32) %8, i32 noundef %67)
          to label %68 unwind label %125

68:                                               ; preds = %66
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #4
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase<Catch::JunitReporter>::Node", ptr %69, i32 0, i32 1
  store ptr %70, ptr %12, align 8, !tbaa !5
  %71 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %72 unwind label %130

72:                                               ; preds = %68
  %73 = load ptr, ptr %12, align 8, !tbaa !5
  %74 = getelementptr inbounds %"struct.Catch::TestGroupStats", ptr %73, i32 0, i32 1
  %75 = getelementptr inbounds %"struct.Catch::GroupInfo", ptr %74, i32 0, i32 0
  %76 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72) %71, ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %77 unwind label %134

77:                                               ; preds = %72
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #4
  %78 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.286, ptr noundef nonnull align 1 dereferenceable(1) %16)
          to label %79 unwind label %139

79:                                               ; preds = %77
  %80 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 6
  %81 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIjEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %78, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %82 unwind label %143

82:                                               ; preds = %79
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #4
  %83 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.287, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %84 unwind label %148

84:                                               ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  %85 = load ptr, ptr %12, align 8, !tbaa !5
  %86 = getelementptr inbounds %"struct.Catch::TestGroupStats", ptr %85, i32 0, i32 2
  %87 = getelementptr inbounds %"struct.Catch::Totals", ptr %86, i32 0, i32 1
  %88 = getelementptr inbounds %"struct.Catch::Counts", ptr %87, i32 0, i32 1
  %89 = load i64, ptr %88, align 8, !tbaa !11
  %90 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 6
  %91 = load i32, ptr %90, align 8, !tbaa !21
  %92 = zext i32 %91 to i64
  %93 = sub i64 %89, %92
  store i64 %93, ptr %19, align 8, !tbaa !61
  %94 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeImEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %83, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %95 unwind label %152

95:                                               ; preds = %84
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #4
  %96 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %97 unwind label %157

97:                                               ; preds = %95
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #4
  %98 = load ptr, ptr %12, align 8, !tbaa !5
  %99 = getelementptr inbounds %"struct.Catch::TestGroupStats", ptr %98, i32 0, i32 2
  %100 = getelementptr inbounds %"struct.Catch::Totals", ptr %99, i32 0, i32 1
  %101 = call noundef i64 @_ZNK5Catch6Counts5totalEv(ptr noundef nonnull align 8 dereferenceable(24) %100)
  store i64 %101, ptr %22, align 8, !tbaa !61
  %102 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeImEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %96, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %103 unwind label %161

103:                                              ; preds = %97
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #4
  %104 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef @.str.289, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %105 unwind label %166

105:                                              ; preds = %103
  %106 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIA4_cEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %104, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull align 1 dereferenceable(4) @.str.290)
          to label %107 unwind label %170

107:                                              ; preds = %105
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #4
  %108 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %109 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %108) #4
  %110 = load ptr, ptr %109, align 8, !tbaa !62
  %111 = getelementptr inbounds ptr, ptr %110, i64 11
  %112 = load ptr, ptr %111, align 8
  %113 = invoke noundef i32 %112(ptr noundef nonnull align 8 dereferenceable(8) %109)
          to label %114 unwind label %175

114:                                              ; preds = %107
  %115 = icmp eq i32 %113, 2
  br i1 %115, label %116, label %188

116:                                              ; preds = %114
  %117 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef @.str.291, ptr noundef nonnull align 1 dereferenceable(1) %26)
          to label %118 unwind label %179

118:                                              ; preds = %116
  %119 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIA1_cEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %117, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 1 dereferenceable(1) @.str.164)
          to label %120 unwind label %183

120:                                              ; preds = %118
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  br label %209

121:                                              ; preds = %3
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %10, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %11, align 4
  br label %129

125:                                              ; preds = %66
  %126 = landingpad { ptr, i32 }
          cleanup
  %127 = extractvalue { ptr, i32 } %126, 0
  store ptr %127, ptr %10, align 8
  %128 = extractvalue { ptr, i32 } %126, 1
  store i32 %128, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #4
  br label %129

129:                                              ; preds = %125, %121
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #4
  br label %461

130:                                              ; preds = %68
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %10, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %11, align 4
  br label %138

134:                                              ; preds = %72
  %135 = landingpad { ptr, i32 }
          cleanup
  %136 = extractvalue { ptr, i32 } %135, 0
  store ptr %136, ptr %10, align 8
  %137 = extractvalue { ptr, i32 } %135, 1
  store i32 %137, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #4
  br label %138

138:                                              ; preds = %134, %130
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #4
  br label %460

139:                                              ; preds = %77
  %140 = landingpad { ptr, i32 }
          cleanup
  %141 = extractvalue { ptr, i32 } %140, 0
  store ptr %141, ptr %10, align 8
  %142 = extractvalue { ptr, i32 } %140, 1
  store i32 %142, ptr %11, align 4
  br label %147

143:                                              ; preds = %79
  %144 = landingpad { ptr, i32 }
          cleanup
  %145 = extractvalue { ptr, i32 } %144, 0
  store ptr %145, ptr %10, align 8
  %146 = extractvalue { ptr, i32 } %144, 1
  store i32 %146, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #4
  br label %147

147:                                              ; preds = %143, %139
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #4
  br label %460

148:                                              ; preds = %82
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %10, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %11, align 4
  br label %156

152:                                              ; preds = %84
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %10, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  br label %156

156:                                              ; preds = %152, %148
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #4
  br label %460

157:                                              ; preds = %95
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %10, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %11, align 4
  br label %165

161:                                              ; preds = %97
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %10, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #4
  br label %165

165:                                              ; preds = %161, %157
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #4
  br label %460

166:                                              ; preds = %103
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %10, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %11, align 4
  br label %174

170:                                              ; preds = %105
  %171 = landingpad { ptr, i32 }
          cleanup
  %172 = extractvalue { ptr, i32 } %171, 0
  store ptr %172, ptr %10, align 8
  %173 = extractvalue { ptr, i32 } %171, 1
  store i32 %173, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  br label %174

174:                                              ; preds = %170, %166
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #4
  br label %460

175:                                              ; preds = %222, %214, %107
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %10, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %11, align 4
  br label %460

179:                                              ; preds = %116
  %180 = landingpad { ptr, i32 }
          cleanup
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %10, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %11, align 4
  br label %187

183:                                              ; preds = %118
  %184 = landingpad { ptr, i32 }
          cleanup
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %10, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #4
  br label %187

187:                                              ; preds = %183, %179
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %26) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #4
  br label %460

188:                                              ; preds = %114
  %189 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef @.str.291, ptr noundef nonnull align 1 dereferenceable(1) %28)
          to label %190 unwind label %195

190:                                              ; preds = %188
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #4
  %191 = load double, ptr %6, align 8, !tbaa !9
  invoke void @_ZN5Catch12_GLOBAL__N_114formatDurationB5cxx11Ed(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, double noundef %191)
          to label %192 unwind label %199

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72) %189, ptr noundef nonnull align 8 dereferenceable(32) %27, ptr noundef nonnull align 8 dereferenceable(32) %29)
          to label %194 unwind label %203

194:                                              ; preds = %192
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  br label %209

195:                                              ; preds = %188
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %10, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %11, align 4
  br label %208

199:                                              ; preds = %190
  %200 = landingpad { ptr, i32 }
          cleanup
  %201 = extractvalue { ptr, i32 } %200, 0
  store ptr %201, ptr %10, align 8
  %202 = extractvalue { ptr, i32 } %200, 1
  store i32 %202, ptr %11, align 4
  br label %207

203:                                              ; preds = %192
  %204 = landingpad { ptr, i32 }
          cleanup
  %205 = extractvalue { ptr, i32 } %204, 0
  store ptr %205, ptr %10, align 8
  %206 = extractvalue { ptr, i32 } %204, 1
  store i32 %206, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #4
  br label %207

207:                                              ; preds = %203, %199
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #4
  br label %208

208:                                              ; preds = %207, %195
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %28) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #4
  br label %460

209:                                              ; preds = %194, %120
  %210 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %31) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef @.str.292, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %211 unwind label %262

211:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #4
  invoke void @_ZN5Catch12_GLOBAL__N_119getCurrentTimestampB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32)
          to label %212 unwind label %266

212:                                              ; preds = %211
  %213 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72) %210, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %32)
          to label %214 unwind label %270

214:                                              ; preds = %212
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #4
  %215 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %216 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %215) #4
  %217 = load ptr, ptr %216, align 8, !tbaa !62
  %218 = getelementptr inbounds ptr, ptr %217, i64 14
  %219 = load ptr, ptr %218, align 8
  %220 = invoke noundef zeroext i1 %219(ptr noundef nonnull align 8 dereferenceable(8) %216)
          to label %221 unwind label %175

221:                                              ; preds = %214
  br i1 %220, label %231, label %222

222:                                              ; preds = %221
  %223 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %224 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %223) #4
  %225 = load ptr, ptr %224, align 8, !tbaa !62
  %226 = getelementptr inbounds ptr, ptr %225, i64 17
  %227 = load ptr, ptr %226, align 8
  %228 = invoke noundef i32 %227(ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %229 unwind label %175

229:                                              ; preds = %222
  %230 = icmp ne i32 %228, 0
  br i1 %230, label %231, label %382

231:                                              ; preds = %229, %221
  call void @llvm.lifetime.start.p0(i64 16, ptr %33) #4
  %232 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %35) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef @.str.293, ptr noundef nonnull align 1 dereferenceable(1) %35)
          to label %233 unwind label %276

233:                                              ; preds = %231
  %234 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %33, ptr noundef nonnull align 8 dereferenceable(72) %232, ptr noundef nonnull align 8 dereferenceable(32) %34, i32 noundef %234)
          to label %235 unwind label %280

235:                                              ; preds = %233
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #4
  %236 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %237 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %236) #4
  %238 = load ptr, ptr %237, align 8, !tbaa !62
  %239 = getelementptr inbounds ptr, ptr %238, i64 14
  %240 = load ptr, ptr %239, align 8
  %241 = invoke noundef zeroext i1 %240(ptr noundef nonnull align 8 dereferenceable(8) %237)
          to label %242 unwind label %285

242:                                              ; preds = %235
  br i1 %241, label %243, label %323

243:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 16, ptr %36) #4
  %244 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef @.str.294, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %245 unwind label %289

245:                                              ; preds = %243
  %246 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %36, ptr noundef nonnull align 8 dereferenceable(72) %244, ptr noundef nonnull align 8 dereferenceable(32) %37, i32 noundef %246)
          to label %247 unwind label %293

247:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %248 unwind label %297

248:                                              ; preds = %247
  %249 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeIA8_cEERS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(12) %36, ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 1 dereferenceable(8) @.str.295)
          to label %250 unwind label %301

250:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 32, ptr %41) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %42) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %251 unwind label %305

251:                                              ; preds = %250
  call void @llvm.lifetime.start.p0(i64 32, ptr %43) #4
  %252 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %253 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %252) #4
  %254 = load ptr, ptr %253, align 8, !tbaa !62
  %255 = getelementptr inbounds ptr, ptr %254, i64 15
  %256 = load ptr, ptr %255, align 8
  %257 = invoke noundef nonnull align 8 dereferenceable(24) ptr %256(ptr noundef nonnull align 8 dereferenceable(8) %253)
          to label %258 unwind label %309

258:                                              ; preds = %251
  invoke void @_ZN5Catch16serializeFiltersERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %43, ptr noundef nonnull align 8 dereferenceable(24) %257)
          to label %259 unwind label %309

259:                                              ; preds = %258
  %260 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS1_RKS8_RKT_(ptr noundef nonnull align 8 dereferenceable(12) %249, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 8 dereferenceable(32) %43)
          to label %261 unwind label %313

261:                                              ; preds = %259
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %36) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #4
  br label %323

262:                                              ; preds = %209
  %263 = landingpad { ptr, i32 }
          cleanup
  %264 = extractvalue { ptr, i32 } %263, 0
  store ptr %264, ptr %10, align 8
  %265 = extractvalue { ptr, i32 } %263, 1
  store i32 %265, ptr %11, align 4
  br label %275

266:                                              ; preds = %211
  %267 = landingpad { ptr, i32 }
          cleanup
  %268 = extractvalue { ptr, i32 } %267, 0
  store ptr %268, ptr %10, align 8
  %269 = extractvalue { ptr, i32 } %267, 1
  store i32 %269, ptr %11, align 4
  br label %274

270:                                              ; preds = %212
  %271 = landingpad { ptr, i32 }
          cleanup
  %272 = extractvalue { ptr, i32 } %271, 0
  store ptr %272, ptr %10, align 8
  %273 = extractvalue { ptr, i32 } %271, 1
  store i32 %273, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #4
  br label %274

274:                                              ; preds = %270, %266
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #4
  br label %275

275:                                              ; preds = %274, %262
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #4
  br label %460

276:                                              ; preds = %231
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %10, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %11, align 4
  br label %284

280:                                              ; preds = %233
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %10, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #4
  br label %284

284:                                              ; preds = %280, %276
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %35) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %35) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #4
  br label %381

285:                                              ; preds = %323, %235
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %10, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %11, align 4
  br label %380

289:                                              ; preds = %243
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %10, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %11, align 4
  br label %322

293:                                              ; preds = %245
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %10, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %11, align 4
  br label %321

297:                                              ; preds = %247
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %10, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %11, align 4
  br label %320

301:                                              ; preds = %248
  %302 = landingpad { ptr, i32 }
          cleanup
  %303 = extractvalue { ptr, i32 } %302, 0
  store ptr %303, ptr %10, align 8
  %304 = extractvalue { ptr, i32 } %302, 1
  store i32 %304, ptr %11, align 4
  br label %319

305:                                              ; preds = %250
  %306 = landingpad { ptr, i32 }
          cleanup
  %307 = extractvalue { ptr, i32 } %306, 0
  store ptr %307, ptr %10, align 8
  %308 = extractvalue { ptr, i32 } %306, 1
  store i32 %308, ptr %11, align 4
  br label %318

309:                                              ; preds = %258, %251
  %310 = landingpad { ptr, i32 }
          cleanup
  %311 = extractvalue { ptr, i32 } %310, 0
  store ptr %311, ptr %10, align 8
  %312 = extractvalue { ptr, i32 } %310, 1
  store i32 %312, ptr %11, align 4
  br label %317

313:                                              ; preds = %259
  %314 = landingpad { ptr, i32 }
          cleanup
  %315 = extractvalue { ptr, i32 } %314, 0
  store ptr %315, ptr %10, align 8
  %316 = extractvalue { ptr, i32 } %314, 1
  store i32 %316, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  br label %317

317:                                              ; preds = %313, %309
  call void @llvm.lifetime.end.p0(i64 32, ptr %43) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  br label %318

318:                                              ; preds = %317, %305
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %41) #4
  br label %319

319:                                              ; preds = %318, %301
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  br label %320

320:                                              ; preds = %319, %297
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %36) #4
  br label %321

321:                                              ; preds = %320, %293
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  br label %322

322:                                              ; preds = %321, %289
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %36) #4
  br label %380

323:                                              ; preds = %261, %242
  %324 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %325 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %324) #4
  %326 = load ptr, ptr %325, align 8, !tbaa !62
  %327 = getelementptr inbounds ptr, ptr %326, i64 17
  %328 = load ptr, ptr %327, align 8
  %329 = invoke noundef i32 %328(ptr noundef nonnull align 8 dereferenceable(8) %325)
          to label %330 unwind label %285

330:                                              ; preds = %323
  %331 = icmp ne i32 %329, 0
  br i1 %331, label %332, label %379

332:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #4
  %333 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %45) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %45, ptr noundef @.str.294, ptr noundef nonnull align 1 dereferenceable(1) %46)
          to label %334 unwind label %350

334:                                              ; preds = %332
  %335 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %44, ptr noundef nonnull align 8 dereferenceable(72) %333, ptr noundef nonnull align 8 dereferenceable(32) %45, i32 noundef %335)
          to label %336 unwind label %354

336:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 32, ptr %47) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %48)
          to label %337 unwind label %358

337:                                              ; preds = %336
  %338 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeIA12_cEERS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(12) %44, ptr noundef nonnull align 8 dereferenceable(32) %47, ptr noundef nonnull align 1 dereferenceable(12) @.str.297)
          to label %339 unwind label %362

339:                                              ; preds = %337
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %340 unwind label %366

340:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  %341 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase", ptr %64, i32 0, i32 1
  %342 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %341) #4
  %343 = load ptr, ptr %342, align 8, !tbaa !62
  %344 = getelementptr inbounds ptr, ptr %343, i64 17
  %345 = load ptr, ptr %344, align 8
  %346 = invoke noundef i32 %345(ptr noundef nonnull align 8 dereferenceable(8) %342)
          to label %347 unwind label %370

347:                                              ; preds = %340
  store i32 %346, ptr %51, align 4, !tbaa !64
  %348 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeIjEERS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(12) %338, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull align 4 dereferenceable(4) %51)
          to label %349 unwind label %370

349:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %44) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #4
  br label %379

350:                                              ; preds = %332
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %10, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %11, align 4
  br label %378

354:                                              ; preds = %334
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %10, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %11, align 4
  br label %377

358:                                              ; preds = %336
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %10, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %11, align 4
  br label %376

362:                                              ; preds = %337
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %10, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %11, align 4
  br label %375

366:                                              ; preds = %339
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %10, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %11, align 4
  br label %374

370:                                              ; preds = %347, %340
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %10, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  br label %374

374:                                              ; preds = %370, %366
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #4
  br label %375

375:                                              ; preds = %374, %362
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #4
  br label %376

376:                                              ; preds = %375, %358
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %48) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %47) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %44) #4
  br label %377

377:                                              ; preds = %376, %354
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #4
  br label %378

378:                                              ; preds = %377, %350
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %46) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %45) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #4
  br label %380

379:                                              ; preds = %349, %330
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %33) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #4
  br label %382

380:                                              ; preds = %378, %322, %285
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %33) #4
  br label %381

381:                                              ; preds = %380, %284
  call void @llvm.lifetime.end.p0(i64 16, ptr %33) #4
  br label %460

382:                                              ; preds = %379, %229
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #4
  %383 = load ptr, ptr %5, align 8, !tbaa !5
  %384 = getelementptr inbounds %"struct.Catch::CumulativeReporterBase<Catch::JunitReporter>::Node", ptr %383, i32 0, i32 2
  store ptr %384, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #4
  %385 = load ptr, ptr %52, align 8, !tbaa !5
  %386 = call ptr @_ZNKSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %385) #4
  %387 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.421", ptr %53, i32 0, i32 0
  store ptr %386, ptr %387, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #4
  %388 = load ptr, ptr %52, align 8, !tbaa !5
  %389 = call ptr @_ZNKSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %388) #4
  %390 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.421", ptr %54, i32 0, i32 0
  store ptr %389, ptr %390, align 8
  br label %391

391:                                              ; preds = %399, %382
  %392 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef nonnull align 8 dereferenceable(8) %54) #4
  br i1 %392, label %394, label %393

393:                                              ; preds = %391
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  br label %405

394:                                              ; preds = %391
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #4
  %395 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #4
  store ptr %395, ptr %55, align 8, !tbaa !5
  %396 = load ptr, ptr %55, align 8, !tbaa !5
  %397 = call noundef nonnull align 8 dereferenceable(336) ptr @_ZNKSt19__shared_ptr_accessIN5Catch22CumulativeReporterBaseINS0_13JunitReporterEE4NodeINS0_13TestCaseStatsENS3_11SectionNodeEEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %396) #4
  invoke void @_ZN5Catch13JunitReporter13writeTestCaseERKNS_22CumulativeReporterBaseIS0_E4NodeINS_13TestCaseStatsENS2_11SectionNodeEEE(ptr noundef nonnull align 8 dereferenceable(365) %64, ptr noundef nonnull align 8 dereferenceable(336) %397)
          to label %398 unwind label %401

398:                                              ; preds = %394
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  br label %399

399:                                              ; preds = %398
  %400 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %53) #4
  br label %391

401:                                              ; preds = %394
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %10, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #4
  br label %460

405:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 16, ptr %56) #4
  %406 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %58)
          to label %407 unwind label %422

407:                                              ; preds = %405
  %408 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %56, ptr noundef nonnull align 8 dereferenceable(72) %406, ptr noundef nonnull align 8 dereferenceable(32) %57, i32 noundef %408)
          to label %409 unwind label %426

409:                                              ; preds = %407
  call void @llvm.lifetime.start.p0(i64 32, ptr %59) #4
  %410 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 4
  invoke void @_ZN5Catch4trimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(32) %410)
          to label %411 unwind label %430

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement9writeTextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr noundef nonnull align 8 dereferenceable(12) %56, ptr noundef nonnull align 8 dereferenceable(32) %59, i32 noundef 2)
          to label %413 unwind label %434

413:                                              ; preds = %411
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %56) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #4
  %414 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %62) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %62)
          to label %415 unwind label %441

415:                                              ; preds = %413
  %416 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %60, ptr noundef nonnull align 8 dereferenceable(72) %414, ptr noundef nonnull align 8 dereferenceable(32) %61, i32 noundef %416)
          to label %417 unwind label %445

417:                                              ; preds = %415
  call void @llvm.lifetime.start.p0(i64 32, ptr %63) #4
  %418 = getelementptr inbounds %"class.Catch::JunitReporter", ptr %64, i32 0, i32 5
  invoke void @_ZN5Catch4trimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(32) %418)
          to label %419 unwind label %449

419:                                              ; preds = %417
  %420 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement9writeTextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr noundef nonnull align 8 dereferenceable(12) %60, ptr noundef nonnull align 8 dereferenceable(32) %63, i32 noundef 2)
          to label %421 unwind label %453

421:                                              ; preds = %419
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %60) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %7) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #4
  ret void

422:                                              ; preds = %405
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %10, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %11, align 4
  br label %440

426:                                              ; preds = %407
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %10, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %11, align 4
  br label %439

430:                                              ; preds = %409
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %10, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %11, align 4
  br label %438

434:                                              ; preds = %411
  %435 = landingpad { ptr, i32 }
          cleanup
  %436 = extractvalue { ptr, i32 } %435, 0
  store ptr %436, ptr %10, align 8
  %437 = extractvalue { ptr, i32 } %435, 1
  store i32 %437, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #4
  br label %438

438:                                              ; preds = %434, %430
  call void @llvm.lifetime.end.p0(i64 32, ptr %59) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %56) #4
  br label %439

439:                                              ; preds = %438, %426
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #4
  br label %440

440:                                              ; preds = %439, %422
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %58) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %56) #4
  br label %460

441:                                              ; preds = %413
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %10, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %11, align 4
  br label %459

445:                                              ; preds = %415
  %446 = landingpad { ptr, i32 }
          cleanup
  %447 = extractvalue { ptr, i32 } %446, 0
  store ptr %447, ptr %10, align 8
  %448 = extractvalue { ptr, i32 } %446, 1
  store i32 %448, ptr %11, align 4
  br label %458

449:                                              ; preds = %417
  %450 = landingpad { ptr, i32 }
          cleanup
  %451 = extractvalue { ptr, i32 } %450, 0
  store ptr %451, ptr %10, align 8
  %452 = extractvalue { ptr, i32 } %450, 1
  store i32 %452, ptr %11, align 4
  br label %457

453:                                              ; preds = %419
  %454 = landingpad { ptr, i32 }
          cleanup
  %455 = extractvalue { ptr, i32 } %454, 0
  store ptr %455, ptr %10, align 8
  %456 = extractvalue { ptr, i32 } %454, 1
  store i32 %456, ptr %11, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #4
  br label %457

457:                                              ; preds = %453, %449
  call void @llvm.lifetime.end.p0(i64 32, ptr %63) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %60) #4
  br label %458

458:                                              ; preds = %457, %445
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #4
  br label %459

459:                                              ; preds = %458, %441
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %62) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %62) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #4
  br label %460

460:                                              ; preds = %459, %440, %401, %381, %275, %208, %187, %175, %174, %165, %156, %147, %138
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %7) #4
  br label %461

461:                                              ; preds = %460, %129
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #4
  br label %462

462:                                              ; preds = %461
  %463 = load ptr, ptr %10, align 8
  %464 = load i32, ptr %11, align 4
  %465 = insertvalue { ptr, i32 } poison, ptr %463, 0
  %466 = insertvalue { ptr, i32 } %465, i32 %464, 1
  resume { ptr, i32 } %466
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIA4_cEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5Catch12_GLOBAL__N_114formatDurationB5cxx11Ed(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef) #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5Catch12_GLOBAL__N_119getCurrentTimestampB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8) #2

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

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

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

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

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

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

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

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

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

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

declare void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr)

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 = { 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, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !16, i64 72}
!12 = !{!"_ZTSN5Catch14TestGroupStatsE", !13, i64 8, !17, i64 56, !20, i64 112}
!13 = !{!"_ZTSN5Catch9GroupInfoE", !14, i64 0, !16, i64 32, !16, i64 40}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !15, i64 0, !16, i64 8, !7, i64 16}
!15 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSN5Catch6TotalsE", !18, i64 0, !19, i64 8, !19, i64 32}
!18 = !{!"int", !7, i64 0}
!19 = !{!"_ZTSN5Catch6CountsE", !16, i64 0, !16, i64 8, !16, i64 16}
!20 = !{!"bool", !7, i64 0}
!21 = !{!22, !18, i64 360}
!22 = !{!"_ZTSN5Catch13JunitReporterE", !23, i64 0, !55, i64 216, !60, i64 288, !14, i64 296, !14, i64 328, !18, i64 360, !20, i64 364}
!23 = !{!"_ZTSN5Catch22CumulativeReporterBaseINS_13JunitReporterEEE", !24, i64 0, !25, i64 8, !6, i64 24, !28, i64 32, !32, i64 56, !36, i64 80, !40, i64 104, !44, i64 128, !48, i64 152, !48, i64 168, !50, i64 184, !54, i64 208}
!24 = !{!"_ZTSN5Catch18IStreamingReporterE"}
!25 = !{!"_ZTSSt10shared_ptrIKN5Catch7IConfigEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !27, i64 8}
!27 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!28 = !{!"_ZTSSt6vectorIN5Catch14AssertionStatsESaIS1_EE", !29, i64 0}
!29 = !{!"_ZTSSt12_Vector_baseIN5Catch14AssertionStatsESaIS1_EE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseIN5Catch14AssertionStatsESaIS1_EE12_Vector_implE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseIN5Catch14AssertionStatsESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!32 = !{!"_ZTSSt6vectorIS_ISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EESaIS8_EE", !33, i64 0}
!33 = !{!"_ZTSSt12_Vector_baseISt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE11SectionNodeEESaIS7_EESaIS9_EE", !34, i64 0}
!34 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE11SectionNodeEESaIS7_EESaIS9_EE12_Vector_implE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE11SectionNodeEESaIS7_EESaIS9_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!36 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!40 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE", !45, i64 0}
!45 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE12_Vector_implE", !47, i64 0}
!47 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!48 = !{!"_ZTSSt10shared_ptrIN5Catch22CumulativeReporterBaseINS0_13JunitReporterEE11SectionNodeEE", !49, i64 0}
!49 = !{!"_ZTSSt12__shared_ptrIN5Catch22CumulativeReporterBaseINS0_13JunitReporterEE11SectionNodeELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !27, i64 8}
!50 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE", !51, i64 0}
!51 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE12_Vector_implE", !53, i64 0}
!53 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!54 = !{!"_ZTSN5Catch19ReporterPreferencesE", !20, i64 0, !20, i64 1}
!55 = !{!"_ZTSN5Catch9XmlWriterE", !20, i64 0, !20, i64 1, !56, i64 8, !14, i64 32, !6, i64 64}
!56 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !57, i64 0}
!57 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !58, i64 0}
!58 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !59, i64 0}
!59 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!60 = !{!"_ZTSN5Catch5TimerE", !16, i64 0}
!61 = !{!16, !16, i64 0}
!62 = !{!63, !63, i64 0}
!63 = !{!"vtable pointer", !8, i64 0}
!64 = !{!18, !18, 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"

%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon.0 }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon.0 = type { i64, [8 x i8] }
%"class.Catch::XmlWriter::ScopedElement" = type <{ ptr, i32, [4 x i8] }>
%"class.std::allocator" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.421" = type { ptr }

@.str.34 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.164 = external hidden unnamed_addr constant [1 x i8], align 1
@.str.285 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.286 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.287 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.288 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.289 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.290 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.291 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.292 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.293 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.294 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.295 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.296 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.297 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.298 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.299 = external hidden unnamed_addr constant [11 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef, i32 noundef) local_unnamed_addr #1

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind noalias writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8, ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72), 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 void @_ZN5Catch16serializeFiltersERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN5Catch13JunitReporter10writeGroupERKNS_22CumulativeReporterBaseIS0_E4NodeINS_14TestGroupStatsENS3_INS_13TestCaseStatsENS2_11SectionNodeEEEEEd(ptr noundef nonnull align 8 dereferenceable(365) %0, ptr noundef nonnull align 8 dereferenceable(152) %1, double noundef %2) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %"class.std::allocator", align 1
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::allocator", align 1
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::allocator", align 1
  %13 = alloca i64, align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator", align 1
  %16 = alloca i64, align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator", align 1
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::allocator", align 1
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::allocator", align 1
  %30 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::allocator", align 1
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::allocator", align 1
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::allocator", align 1
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::allocator", align 1
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::allocator", align 1
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca i32, align 4
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.421", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.421", align 8
  %48 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::allocator", align 1
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.Catch::XmlWriter::ScopedElement", align 8
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::allocator", align 1
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #4
  %56 = getelementptr inbounds i8, ptr %0, i64 216
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.285, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %57 unwind label %96

57:                                               ; preds = %3
  %58 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind nonnull writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %4, ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %5, i32 noundef %58)
          to label %59 unwind label %98

59:                                               ; preds = %57
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %60 unwind label %101

60:                                               ; preds = %59
  %61 = getelementptr inbounds i8, ptr %1, i64 16
  %62 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %63 unwind label %103

63:                                               ; preds = %60
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.286, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %64 unwind label %106

64:                                               ; preds = %63
  %65 = getelementptr inbounds i8, ptr %0, i64 360
  %66 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIjEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %67 unwind label %108

67:                                               ; preds = %64
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.287, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %68 unwind label %111

68:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #4
  %69 = getelementptr inbounds i8, ptr %1, i64 72
  %70 = getelementptr inbounds i8, ptr %1, i64 80
  %71 = load i64, ptr %70, align 8, !tbaa !5
  %72 = load i32, ptr %65, align 8, !tbaa !18
  %73 = zext i32 %72 to i64
  %74 = sub i64 %71, %73
  store i64 %74, ptr %13, align 8, !tbaa !58
  %75 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeImEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %76 unwind label %113

76:                                               ; preds = %68
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %15) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull @.str.288, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %77 unwind label %116

77:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #4
  %78 = call noundef i64 @_ZNK5Catch6Counts5totalEv(ptr noundef nonnull align 8 dereferenceable(24) %69)
  store i64 %78, ptr %16, align 8, !tbaa !58
  %79 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeImEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %80 unwind label %118

80:                                               ; preds = %77
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.289, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %81 unwind label %121

81:                                               ; preds = %80
  %82 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIA4_cEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(4) @.str.290)
          to label %83 unwind label %123

83:                                               ; preds = %81
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #4
  %84 = getelementptr inbounds i8, ptr %0, i64 8
  %85 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %86 = load ptr, ptr %85, align 8, !tbaa !59
  %87 = getelementptr inbounds i8, ptr %86, i64 88
  %88 = load ptr, ptr %87, align 8
  %89 = invoke noundef i32 %88(ptr noundef nonnull align 8 dereferenceable(8) %85)
          to label %90 unwind label %126

90:                                               ; preds = %83
  %91 = icmp eq i32 %89, 2
  br i1 %91, label %92, label %133

92:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull @.str.291, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %93 unwind label %128

93:                                               ; preds = %92
  %94 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIA1_cEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 1 dereferenceable(1) @.str.164)
          to label %95 unwind label %130

95:                                               ; preds = %93
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  br label %146

96:                                               ; preds = %3
  %97 = landingpad { ptr, i32 }
          cleanup
  br label %100

98:                                               ; preds = %57
  %99 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #4
  br label %100

100:                                              ; preds = %98, %96
  %.pn = phi { ptr, i32 } [ %99, %98 ], [ %97, %96 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #4
  br label %318

101:                                              ; preds = %59
  %102 = landingpad { ptr, i32 }
          cleanup
  br label %105

103:                                              ; preds = %60
  %104 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #4
  br label %105

105:                                              ; preds = %103, %101
  %.pn45 = phi { ptr, i32 } [ %104, %103 ], [ %102, %101 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #4
  br label %317

106:                                              ; preds = %63
  %107 = landingpad { ptr, i32 }
          cleanup
  br label %110

108:                                              ; preds = %64
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #4
  br label %110

110:                                              ; preds = %108, %106
  %.pn47 = phi { ptr, i32 } [ %109, %108 ], [ %107, %106 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #4
  br label %317

111:                                              ; preds = %67
  %112 = landingpad { ptr, i32 }
          cleanup
  br label %115

113:                                              ; preds = %68
  %114 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #4
  br label %115

115:                                              ; preds = %113, %111
  %.pn49 = phi { ptr, i32 } [ %114, %113 ], [ %112, %111 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #4
  br label %317

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

118:                                              ; preds = %77
  %119 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #4
  br label %120

120:                                              ; preds = %118, %116
  %.pn51 = phi { ptr, i32 } [ %119, %118 ], [ %117, %116 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #4
  br label %317

121:                                              ; preds = %80
  %122 = landingpad { ptr, i32 }
          cleanup
  br label %125

123:                                              ; preds = %81
  %124 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #4
  br label %125

125:                                              ; preds = %123, %121
  %.pn53 = phi { ptr, i32 } [ %124, %123 ], [ %122, %121 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #4
  br label %317

126:                                              ; preds = %157, %150, %83
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %317

128:                                              ; preds = %92
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %132

130:                                              ; preds = %93
  %131 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #4
  br label %132

132:                                              ; preds = %130, %128
  %.pn58 = phi { ptr, i32 } [ %131, %130 ], [ %129, %128 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #4
  br label %317

133:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.291, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %134 unwind label %138

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #4
  invoke void @_ZN5Catch12_GLOBAL__N_114formatDurationB5cxx11Ed(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, double noundef %2)
          to label %135 unwind label %140

135:                                              ; preds = %134
  %136 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %23)
          to label %137 unwind label %142

137:                                              ; preds = %135
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #4
  br label %146

138:                                              ; preds = %133
  %139 = landingpad { ptr, i32 }
          cleanup
  br label %145

140:                                              ; preds = %134
  %141 = landingpad { ptr, i32 }
          cleanup
  br label %144

142:                                              ; preds = %135
  %143 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #4
  br label %144

144:                                              ; preds = %142, %140
  %.pn55 = phi { ptr, i32 } [ %143, %142 ], [ %141, %140 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #4
  br label %145

145:                                              ; preds = %144, %138
  %.pn55.pn = phi { ptr, i32 } [ %.pn55, %144 ], [ %139, %138 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #4
  br label %317

146:                                              ; preds = %137, %95
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull @.str.292, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %147 unwind label %191

147:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #4
  invoke void @_ZN5Catch12_GLOBAL__N_119getCurrentTimestampB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26)
          to label %148 unwind label %193

148:                                              ; preds = %147
  %149 = invoke noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_(ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %150 unwind label %195

150:                                              ; preds = %148
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #4
  %151 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %152 = load ptr, ptr %151, align 8, !tbaa !59
  %153 = getelementptr inbounds i8, ptr %152, i64 112
  %154 = load ptr, ptr %153, align 8
  %155 = invoke noundef zeroext i1 %154(ptr noundef nonnull align 8 dereferenceable(8) %151)
          to label %156 unwind label %126

156:                                              ; preds = %150
  br i1 %155, label %164, label %157

157:                                              ; preds = %156
  %158 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %159 = load ptr, ptr %158, align 8, !tbaa !59
  %160 = getelementptr inbounds i8, ptr %159, i64 136
  %161 = load ptr, ptr %160, align 8
  %162 = invoke noundef i32 %161(ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %163 unwind label %126

163:                                              ; preds = %157
  %.not = icmp eq i32 %162, 0
  br i1 %.not, label %269, label %164

164:                                              ; preds = %163, %156
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %29) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull @.str.293, ptr noundef nonnull align 1 dereferenceable(1) %29)
          to label %165 unwind label %199

165:                                              ; preds = %164
  %166 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind nonnull writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %27, ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %28, i32 noundef %166)
          to label %167 unwind label %201

167:                                              ; preds = %165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #4
  %168 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %169 = load ptr, ptr %168, align 8, !tbaa !59
  %170 = getelementptr inbounds i8, ptr %169, i64 112
  %171 = load ptr, ptr %170, align 8
  %172 = invoke noundef zeroext i1 %171(ptr noundef nonnull align 8 dereferenceable(8) %168)
          to label %173 unwind label %204

173:                                              ; preds = %167
  br i1 %172, label %174, label %226

174:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %32) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull @.str.294, ptr noundef nonnull align 1 dereferenceable(1) %32)
          to label %175 unwind label %206

175:                                              ; preds = %174
  %176 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind nonnull writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %30, ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %31, i32 noundef %176)
          to label %177 unwind label %208

177:                                              ; preds = %175
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %34) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %34)
          to label %178 unwind label %210

178:                                              ; preds = %177
  %179 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeIA8_cEERS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(12) %30, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 1 dereferenceable(8) @.str.295)
          to label %180 unwind label %212

180:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %36) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %36)
          to label %181 unwind label %214

181:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %37) #4
  %182 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %183 = load ptr, ptr %182, align 8, !tbaa !59
  %184 = getelementptr inbounds i8, ptr %183, i64 120
  %185 = load ptr, ptr %184, align 8
  %186 = invoke noundef nonnull align 8 dereferenceable(24) ptr %185(ptr noundef nonnull align 8 dereferenceable(8) %182)
          to label %187 unwind label %216

187:                                              ; preds = %181
  invoke void @_ZN5Catch16serializeFiltersERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr noundef nonnull align 8 dereferenceable(24) %186)
          to label %188 unwind label %216

188:                                              ; preds = %187
  %189 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS1_RKS8_RKT_(ptr noundef nonnull align 8 dereferenceable(12) %179, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %190 unwind label %218

190:                                              ; preds = %188
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %30) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #4
  br label %226

191:                                              ; preds = %146
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %198

193:                                              ; preds = %147
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %197

195:                                              ; preds = %148
  %196 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #4
  br label %197

197:                                              ; preds = %195, %193
  %.pn60 = phi { ptr, i32 } [ %196, %195 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #4
  br label %198

198:                                              ; preds = %197, %191
  %.pn60.pn = phi { ptr, i32 } [ %.pn60, %197 ], [ %192, %191 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #4
  br label %317

199:                                              ; preds = %164
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %203

201:                                              ; preds = %165
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #4
  br label %203

203:                                              ; preds = %201, %199
  %.pn63 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %29) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %29) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #4
  br label %268

204:                                              ; preds = %226, %167
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %267

206:                                              ; preds = %174
  %207 = landingpad { ptr, i32 }
          cleanup
  br label %225

208:                                              ; preds = %175
  %209 = landingpad { ptr, i32 }
          cleanup
  br label %224

210:                                              ; preds = %177
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %223

212:                                              ; preds = %178
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %222

214:                                              ; preds = %180
  %215 = landingpad { ptr, i32 }
          cleanup
  br label %221

216:                                              ; preds = %187, %181
  %217 = landingpad { ptr, i32 }
          cleanup
  br label %220

218:                                              ; preds = %188
  %219 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #4
  br label %220

220:                                              ; preds = %218, %216
  %.pn65 = phi { ptr, i32 } [ %219, %218 ], [ %217, %216 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %37) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #4
  br label %221

221:                                              ; preds = %220, %214
  %.pn65.pn = phi { ptr, i32 } [ %.pn65, %220 ], [ %215, %214 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %36) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %36) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #4
  br label %222

222:                                              ; preds = %221, %212
  %.pn65.pn.pn = phi { ptr, i32 } [ %.pn65.pn, %221 ], [ %213, %212 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #4
  br label %223

223:                                              ; preds = %222, %210
  %.pn65.pn.pn.pn = phi { ptr, i32 } [ %.pn65.pn.pn, %222 ], [ %211, %210 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %34) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %34) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %30) #4
  br label %224

224:                                              ; preds = %223, %208
  %.pn65.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn65.pn.pn.pn, %223 ], [ %209, %208 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #4
  br label %225

225:                                              ; preds = %224, %206
  %.pn65.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn65.pn.pn.pn.pn, %224 ], [ %207, %206 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %32) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %32) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #4
  br label %267

226:                                              ; preds = %190, %173
  %227 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %228 = load ptr, ptr %227, align 8, !tbaa !59
  %229 = getelementptr inbounds i8, ptr %228, i64 136
  %230 = load ptr, ptr %229, align 8
  %231 = invoke noundef i32 %230(ptr noundef nonnull align 8 dereferenceable(8) %227)
          to label %232 unwind label %204

232:                                              ; preds = %226
  %.not72 = icmp eq i32 %231, 0
  br i1 %.not72, label %266, label %233

233:                                              ; preds = %232
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %38) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %40) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull @.str.294, ptr noundef nonnull align 1 dereferenceable(1) %40)
          to label %234 unwind label %249

234:                                              ; preds = %233
  %235 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind nonnull writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %38, ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %39, i32 noundef %235)
          to label %236 unwind label %251

236:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %42) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.34, ptr noundef nonnull align 1 dereferenceable(1) %42)
          to label %237 unwind label %253

237:                                              ; preds = %236
  %238 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeIA12_cEERS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(12) %38, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull align 1 dereferenceable(12) @.str.297)
          to label %239 unwind label %255

239:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %43) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.296, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %240 unwind label %257

240:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #4
  %241 = call noundef ptr @_ZNKSt19__shared_ptr_accessIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %84) #4
  %242 = load ptr, ptr %241, align 8, !tbaa !59
  %243 = getelementptr inbounds i8, ptr %242, i64 136
  %244 = load ptr, ptr %243, align 8
  %245 = invoke noundef i32 %244(ptr noundef nonnull align 8 dereferenceable(8) %241)
          to label %246 unwind label %259

246:                                              ; preds = %240
  store i32 %245, ptr %45, align 4, !tbaa !61
  %247 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement14writeAttributeIjEERS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(12) %238, ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %248 unwind label %259

248:                                              ; preds = %246
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %38) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #4
  br label %266

249:                                              ; preds = %233
  %250 = landingpad { ptr, i32 }
          cleanup
  br label %265

251:                                              ; preds = %234
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %264

253:                                              ; preds = %236
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %263

255:                                              ; preds = %237
  %256 = landingpad { ptr, i32 }
          cleanup
  br label %262

257:                                              ; preds = %239
  %258 = landingpad { ptr, i32 }
          cleanup
  br label %261

259:                                              ; preds = %246, %240
  %260 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #4
  br label %261

261:                                              ; preds = %259, %257
  %.pn73 = phi { ptr, i32 } [ %260, %259 ], [ %258, %257 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %43) #4
  br label %262

262:                                              ; preds = %261, %255
  %.pn73.pn = phi { ptr, i32 } [ %.pn73, %261 ], [ %256, %255 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #4
  br label %263

263:                                              ; preds = %262, %253
  %.pn73.pn.pn = phi { ptr, i32 } [ %.pn73.pn, %262 ], [ %254, %253 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %42) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %42) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %38) #4
  br label %264

264:                                              ; preds = %263, %251
  %.pn73.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn, %263 ], [ %252, %251 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #4
  br label %265

265:                                              ; preds = %264, %249
  %.pn73.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn.pn, %264 ], [ %250, %249 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %40) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %40) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %39) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %38) #4
  br label %267

266:                                              ; preds = %248, %232
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %27) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #4
  br label %269

267:                                              ; preds = %265, %225, %204
  %.pn73.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn.pn.pn, %265 ], [ %205, %204 ], [ %.pn65.pn.pn.pn.pn.pn, %225 ]
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %27) #4
  br label %268

268:                                              ; preds = %267, %203
  %.pn73.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn73.pn.pn.pn.pn.pn, %267 ], [ %.pn63, %203 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #4
  br label %317

269:                                              ; preds = %266, %163
  %270 = getelementptr inbounds i8, ptr %1, i64 128
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #4
  %271 = call ptr @_ZNKSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #4
  store ptr %271, ptr %46, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #4
  %272 = call ptr @_ZNKSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %270) #4
  store ptr %272, ptr %47, align 8
  %273 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %47) #4
  br i1 %273, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %276, %269
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %48) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %49) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %50) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef nonnull @.str.298, ptr noundef nonnull align 1 dereferenceable(1) %50)
          to label %281 unwind label %295

.lr.ph:                                           ; preds = %269, %276
  %274 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #4
  %275 = call noundef nonnull align 8 dereferenceable(336) ptr @_ZNKSt19__shared_ptr_accessIN5Catch22CumulativeReporterBaseINS0_13JunitReporterEE4NodeINS0_13TestCaseStatsENS3_11SectionNodeEEELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEdeEv(ptr noundef nonnull align 1 dereferenceable(1) %274) #4
  invoke void @_ZN5Catch13JunitReporter13writeTestCaseERKNS_22CumulativeReporterBaseIS0_E4NodeINS_13TestCaseStatsENS2_11SectionNodeEEE(ptr noundef nonnull align 8 dereferenceable(365) %0, ptr noundef nonnull align 8 dereferenceable(336) %275)
          to label %276 unwind label %279

276:                                              ; preds = %.lr.ph
  %277 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %46) #4
  %278 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKSt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE4NodeINS2_13TestCaseStatsENS5_11SectionNodeEEEESt6vectorISA_SaISA_EEEEbRKNS_17__normal_iteratorIT_T0_EESL_(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %47) #4
  br i1 %278, label %.lr.ph, label %._crit_edge

279:                                              ; preds = %.lr.ph
  %280 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #4
  br label %317

281:                                              ; preds = %._crit_edge
  %282 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind nonnull writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %48, ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %49, i32 noundef %282)
          to label %283 unwind label %297

283:                                              ; preds = %281
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #4
  %284 = getelementptr inbounds i8, ptr %0, i64 296
  invoke void @_ZN5Catch4trimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef nonnull align 8 dereferenceable(32) %284)
          to label %285 unwind label %299

285:                                              ; preds = %283
  %286 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement9writeTextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr noundef nonnull align 8 dereferenceable(12) %48, ptr noundef nonnull align 8 dereferenceable(32) %51, i32 noundef 2)
          to label %287 unwind label %301

287:                                              ; preds = %285
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %48) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %52) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %54) #4
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #4
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull @.str.299, ptr noundef nonnull align 1 dereferenceable(1) %54)
          to label %288 unwind label %306

288:                                              ; preds = %287
  %289 = call noundef i32 @_ZN5CatchorENS_13XmlFormattingES0_(i32 noundef 2, i32 noundef 1)
  invoke void @_ZN5Catch9XmlWriter13scopedElementERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr dead_on_unwind nonnull writable sret(%"class.Catch::XmlWriter::ScopedElement") align 8 %52, ptr noundef nonnull align 8 dereferenceable(72) %56, ptr noundef nonnull align 8 dereferenceable(32) %53, i32 noundef %289)
          to label %290 unwind label %308

290:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #4
  %291 = getelementptr inbounds i8, ptr %0, i64 328
  invoke void @_ZN5Catch4trimERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef nonnull align 8 dereferenceable(32) %291)
          to label %292 unwind label %310

292:                                              ; preds = %290
  %293 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZN5Catch9XmlWriter13ScopedElement9writeTextERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_13XmlFormattingE(ptr noundef nonnull align 8 dereferenceable(12) %52, ptr noundef nonnull align 8 dereferenceable(32) %55, i32 noundef 2)
          to label %294 unwind label %312

294:                                              ; preds = %292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %52) #4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %4) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #4
  ret void

295:                                              ; preds = %._crit_edge
  %296 = landingpad { ptr, i32 }
          cleanup
  br label %305

297:                                              ; preds = %281
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %304

299:                                              ; preds = %283
  %300 = landingpad { ptr, i32 }
          cleanup
  br label %303

301:                                              ; preds = %285
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #4
  br label %303

303:                                              ; preds = %301, %299
  %.pn81 = phi { ptr, i32 } [ %302, %301 ], [ %300, %299 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %48) #4
  br label %304

304:                                              ; preds = %303, %297
  %.pn81.pn = phi { ptr, i32 } [ %.pn81, %303 ], [ %298, %297 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #4
  br label %305

305:                                              ; preds = %304, %295
  %.pn81.pn.pn = phi { ptr, i32 } [ %.pn81.pn, %304 ], [ %296, %295 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %50) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %50) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %49) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %48) #4
  br label %317

306:                                              ; preds = %287
  %307 = landingpad { ptr, i32 }
          cleanup
  br label %316

308:                                              ; preds = %288
  %309 = landingpad { ptr, i32 }
          cleanup
  br label %315

310:                                              ; preds = %290
  %311 = landingpad { ptr, i32 }
          cleanup
  br label %314

312:                                              ; preds = %292
  %313 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #4
  br label %314

314:                                              ; preds = %312, %310
  %.pn85 = phi { ptr, i32 } [ %313, %312 ], [ %311, %310 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #4
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %52) #4
  br label %315

315:                                              ; preds = %314, %308
  %.pn85.pn = phi { ptr, i32 } [ %.pn85, %314 ], [ %309, %308 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #4
  br label %316

316:                                              ; preds = %315, %306
  %.pn85.pn.pn = phi { ptr, i32 } [ %.pn85.pn, %315 ], [ %307, %306 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %54) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %54) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %52) #4
  br label %317

317:                                              ; preds = %316, %305, %279, %268, %198, %145, %132, %126, %125, %120, %115, %110, %105
  %.pn89 = phi { ptr, i32 } [ %280, %279 ], [ %.pn85.pn.pn, %316 ], [ %.pn81.pn.pn, %305 ], [ %.pn73.pn.pn.pn.pn.pn.pn, %268 ], [ %127, %126 ], [ %.pn60.pn, %198 ], [ %.pn58, %132 ], [ %.pn55.pn, %145 ], [ %.pn53, %125 ], [ %.pn51, %120 ], [ %.pn49, %115 ], [ %.pn47, %110 ], [ %.pn45, %105 ]
  call void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr noundef nonnull align 8 dereferenceable(12) %4) #4
  br label %318

318:                                              ; preds = %317, %100
  %.pn89.pn = phi { ptr, i32 } [ %.pn89, %317 ], [ %.pn, %100 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #4
  resume { ptr, i32 } %.pn89.pn
}

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(72) ptr @_ZN5Catch9XmlWriter14writeAttributeIA4_cEERS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr noundef nonnull align 8 dereferenceable(72), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(4)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5Catch12_GLOBAL__N_114formatDurationB5cxx11Ed(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, double noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN5Catch12_GLOBAL__N_119getCurrentTimestampB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8) local_unnamed_addr #2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN5Catch13JunitReporter13writeTestCaseERKNS_22CumulativeReporterBaseIS0_E4NodeINS_13TestCaseStatsENS2_11SectionNodeEEE(ptr noundef nonnull align 8 dereferenceable(365), ptr noundef nonnull align 8 dereferenceable(336)) local_unnamed_addr #2 align 2

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

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

declare void @_ZN5Catch9XmlWriter13ScopedElementD1Ev(ptr) local_unnamed_addr

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 = { 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, !13, i64 72}
!6 = !{!"_ZTSN5Catch14TestGroupStatsE", !7, i64 8, !14, i64 56, !17, i64 112}
!7 = !{!"_ZTSN5Catch9GroupInfoE", !8, i64 0, !13, i64 32, !13, i64 40}
!8 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !9, i64 0, !13, i64 8, !11, i64 16}
!9 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!10 = !{!"any pointer", !11, i64 0}
!11 = !{!"omnipotent char", !12, i64 0}
!12 = !{!"Simple C++ TBAA"}
!13 = !{!"long", !11, i64 0}
!14 = !{!"_ZTSN5Catch6TotalsE", !15, i64 0, !16, i64 8, !16, i64 32}
!15 = !{!"int", !11, i64 0}
!16 = !{!"_ZTSN5Catch6CountsE", !13, i64 0, !13, i64 8, !13, i64 16}
!17 = !{!"bool", !11, i64 0}
!18 = !{!19, !15, i64 360}
!19 = !{!"_ZTSN5Catch13JunitReporterE", !20, i64 0, !52, i64 216, !57, i64 288, !8, i64 296, !8, i64 328, !15, i64 360, !17, i64 364}
!20 = !{!"_ZTSN5Catch22CumulativeReporterBaseINS_13JunitReporterEEE", !21, i64 0, !22, i64 8, !10, i64 24, !25, i64 32, !29, i64 56, !33, i64 80, !37, i64 104, !41, i64 128, !45, i64 152, !45, i64 168, !47, i64 184, !51, i64 208}
!21 = !{!"_ZTSN5Catch18IStreamingReporterE"}
!22 = !{!"_ZTSSt10shared_ptrIKN5Catch7IConfigEE", !23, i64 0}
!23 = !{!"_ZTSSt12__shared_ptrIKN5Catch7IConfigELN9__gnu_cxx12_Lock_policyE2EE", !10, i64 0, !24, i64 8}
!24 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !10, i64 0}
!25 = !{!"_ZTSSt6vectorIN5Catch14AssertionStatsESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Vector_baseIN5Catch14AssertionStatsESaIS1_EE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN5Catch14AssertionStatsESaIS1_EE12_Vector_implE", !28, i64 0}
!28 = !{!"_ZTSNSt12_Vector_baseIN5Catch14AssertionStatsESaIS1_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!29 = !{!"_ZTSSt6vectorIS_ISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EESaIS8_EE", !30, i64 0}
!30 = !{!"_ZTSSt12_Vector_baseISt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE11SectionNodeEESaIS7_EESaIS9_EE", !31, i64 0}
!31 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE11SectionNodeEESaIS7_EESaIS9_EE12_Vector_implE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseISt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS2_13JunitReporterEE11SectionNodeEESaIS7_EESaIS9_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!33 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE", !34, i64 0}
!34 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE", !35, i64 0}
!35 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE12_Vector_implE", !36, i64 0}
!36 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_13TestCaseStatsENS4_11SectionNodeEEEESaIS9_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!37 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE", !38, i64 0}
!38 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE12_Vector_implE", !40, i64 0}
!40 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEESaISB_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!41 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE", !42, i64 0}
!42 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE12_Vector_implE", !44, i64 0}
!44 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE4NodeINS1_12TestRunStatsENS5_INS1_14TestGroupStatsENS5_INS1_13TestCaseStatsENS4_11SectionNodeEEEEEEEESaISD_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!45 = !{!"_ZTSSt10shared_ptrIN5Catch22CumulativeReporterBaseINS0_13JunitReporterEE11SectionNodeEE", !46, i64 0}
!46 = !{!"_ZTSSt12__shared_ptrIN5Catch22CumulativeReporterBaseINS0_13JunitReporterEE11SectionNodeELN9__gnu_cxx12_Lock_policyE2EE", !10, i64 0, !24, i64 8}
!47 = !{!"_ZTSSt6vectorISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5Catch22CumulativeReporterBaseINS1_13JunitReporterEE11SectionNodeEESaIS6_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!51 = !{!"_ZTSN5Catch19ReporterPreferencesE", !17, i64 0, !17, i64 1}
!52 = !{!"_ZTSN5Catch9XmlWriterE", !17, i64 0, !17, i64 1, !53, i64 8, !8, i64 32, !10, i64 64}
!53 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!57 = !{!"_ZTSN5Catch5TimerE", !13, i64 0}
!58 = !{!13, !13, i64 0}
!59 = !{!60, !60, i64 0}
!60 = !{!"vtable pointer", !12, i64 0}
!61 = !{!15, !15, i64 0}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass