Skip to content

Instantly share code, notes, and snippets.

@nikic

nikic/diff Secret

Created April 23, 2020 19:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikic/ecbe2482367be25b17ab982c2346b661 to your computer and use it in GitHub Desktop.
Save nikic/ecbe2482367be25b17ab982c2346b661 to your computer and use it in GitHub Desktop.
function @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_ exists only in left module
function @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_ exists only in left module
function @_ZSt19__throw_logic_errorPKc exists only in left module
in function main:
in block %entry:
> %__dnew.i.i.i.i.i2584 = alloca i64, align 8
> %__dnew.i.i.i.i.i2481 = alloca i64, align 8
> %__dnew.i.i.i.i.i2448 = alloca i64, align 8
> %__dnew.i.i.i.i.i2360 = alloca i64, align 8
> %__dnew.i.i.i.i.i2319 = alloca i64, align 8
> %__dnew.i.i.i.i.i2216 = alloca i64, align 8
> %__dnew.i.i.i.i.i2099 = alloca i64, align 8
> %__dnew.i.i.i.i.i2046 = alloca i64, align 8
> %__dnew.i.i.i.i.i1873 = alloca i64, align 8
> %__dnew.i.i.i.i.i1840 = alloca i64, align 8
> %__dnew.i.i.i.i.i1789 = alloca i64, align 8
> %__dnew.i.i.i.i.i1736 = alloca i64, align 8
> %__dnew.i.i.i.i.i1561 = alloca i64, align 8
> %__dnew.i.i.i.i.i1528 = alloca i64, align 8
> %__dnew.i.i.i.i.i1477 = alloca i64, align 8
> %__dnew.i.i.i.i.i1424 = alloca i64, align 8
> %__dnew.i.i.i.i.i1237 = alloca i64, align 8
> %__dnew.i.i.i.i.i1204 = alloca i64, align 8
> %__dnew.i.i.i.i.i1171 = alloca i64, align 8
> %__dnew.i.i.i.i.i1118 = alloca i64, align 8
> %__dnew.i.i.i.i.i915 = alloca i64, align 8
> %__dnew.i.i.i.i.i = alloca i64, align 8
> %__dnew.i.i.i.i.i692.i = alloca i64, align 8
> %__dnew.i.i.i.i.i662.i = alloca i64, align 8
> %__dnew.i.i.i.i.i633.i = alloca i64, align 8
> %__dnew.i.i.i.i.i.i = alloca i64, align 8
in block %for.body196.lr.ph.i:
> %106 = bitcast %"class.std::__cxx11::basic_string.4"* %ref.tmp222.i to i8*
> %107 = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp222.i, i64 0, i32 2
%106 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp222.i to i8*
> %109 = bitcast i64* %__dnew.i.i.i.i.i.i to i8*
> %110 = bitcast %union.anon.6* %107 to i8*
%_M_p.i.i625.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp222.i, i64 0, i32 0, i32 0
> %_M_allocated_capacity.i.i.i.i.i.i625.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp222.i, i64 0, i32 2, i32 0
> %_M_string_length.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp222.i, i64 0, i32 1
> %111 = bitcast %"class.std::__cxx11::basic_string.4"* %ref.tmp227.i to i8*
> %112 = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp227.i, i64 0, i32 2
%107 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp227.i to i8*
> %114 = bitcast i64* %__dnew.i.i.i.i.i633.i to i8*
> %115 = bitcast %union.anon.6* %112 to i8*
%_M_p.i.i626.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp227.i, i64 0, i32 0, i32 0
> %_M_allocated_capacity.i.i.i.i.i.i638.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp227.i, i64 0, i32 2, i32 0
> %_M_string_length.i.i.i.i.i.i.i644.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp227.i, i64 0, i32 1
> %116 = bitcast %"class.std::__cxx11::basic_string.4"* %ref.tmp235.i to i8*
> %117 = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp235.i, i64 0, i32 2
%108 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp235.i to i8*
> %119 = bitcast i64* %__dnew.i.i.i.i.i662.i to i8*
> %120 = bitcast %union.anon.6* %117 to i8*
%_M_p.i.i627.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp235.i, i64 0, i32 0, i32 0
> %_M_allocated_capacity.i.i.i.i.i.i667.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp235.i, i64 0, i32 2, i32 0
> %_M_string_length.i.i.i.i.i.i.i673.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp235.i, i64 0, i32 1
%109 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp244.i to i8*
< %_M_p.i.i628.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp244.i, i64 0, i32 0, i32 0
%110 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp244.i, i64 0, i32 2
> %123 = bitcast %"class.std::__cxx11::basic_string.4"* %ref.tmp244.i to %union.anon.6**
> %124 = bitcast i64* %__dnew.i.i.i.i.i692.i to i8*
%arraydecay.i.i.i.i630.i = bitcast %union.anon* %110 to i8*
> %_M_p.i18.i.i.i.i.i696.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp244.i, i64 0, i32 0, i32 0
> %_M_allocated_capacity.i.i.i.i.i.i697.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp244.i, i64 0, i32 2, i32 0
> %_M_string_length.i.i.i.i.i.i.i703.i = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp244.i, i64 0, i32 1
< %111 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp235.i, i64 0, i32 2
< %arraydecay.i.i.i.i636.i = bitcast %union.anon* %111 to i8*
< %112 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp227.i, i64 0, i32 2
< %arraydecay.i.i.i.i642.i = bitcast %union.anon* %112 to i8*
< %113 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp222.i, i64 0, i32 2
< %arraydecay.i.i.i.i648.i = bitcast %union.anon* %113 to i8*
in block %if.else221.i:
> call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %106) #22
> store %union.anon.6* %107, %union.anon.6** %108, align 8, !tbaa !21, !alias.scope !41
> %157 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options.3, %struct.cmdline_options.3* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !23, !noalias !41
> %158 = load i64, i64* getelementptr inbounds (%struct.cmdline_options.3, %struct.cmdline_options.3* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !10, !noalias !41
> call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %109) #22, !noalias !41
> store i64 %158, i64* %__dnew.i.i.i.i.i.i, align 8, !tbaa !44, !noalias !41
> %cmp3.i.i.i.i.i.i = icmp ugt i64 %158, 15
> br i1 %cmp3.i.i.i.i.i.i, label %if.then4.i.i.i.i.i.i, label %if.end6.i.i.i.i.i.i
< call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %106) #23
< call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp222.i, %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0))
< %145 = load i8*, i8** %_M_p.i.i625.i, align 8, !tbaa !23
< %call224.i = call i32 @strcmp(i8* nonnull dereferenceable(1) %mybasename.0.i624.i, i8* nonnull dereferenceable(1) %145) #22
< %cmp225.i = icmp eq i32 %call224.i, 0
< br i1 %cmp225.i, label %cleanup.done284.i, label %lor.lhs.false226.i
in block %if.end193:
> %598 = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp, i64 0, i32 2
> %599 = bitcast %"class.std::__cxx11::basic_string.4"* %ref.tmp to %union.anon.6**
> store %union.anon.6* %598, %union.anon.6** %599, align 8, !tbaa !21, !alias.scope !109
> %600 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options.3, %struct.cmdline_options.3* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !23, !noalias !109
> %601 = load i64, i64* getelementptr inbounds (%struct.cmdline_options.3, %struct.cmdline_options.3* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !10, !noalias !109
> %602 = bitcast i64* %__dnew.i.i.i.i.i to i8*
> call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %602) #22, !noalias !109
> store i64 %601, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !44, !noalias !109
> %cmp3.i.i.i.i.i = icmp ugt i64 %601, 15
> br i1 %cmp3.i.i.i.i.i, label %if.then4.i.i.i.i.i, label %if.end.if.end6_crit_edge.i.i.i.i.i
< call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp, %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
< invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp)
to label %invoke.cont unwind label %lpad
in function _ZN2kcL8openfileEPKcS1_:
in block %entry:
> %__dnew.i.i.i.i.i = alloca i64, align 8
in block %if.else:
> %2 = getelementptr inbounds %"class.std::__cxx11::basic_string.4", %"class.std::__cxx11::basic_string.4"* %ref.tmp2, i64 0, i32 2
> %3 = bitcast %"class.std::__cxx11::basic_string.4"* %ref.tmp2 to %union.anon.6**
> store %union.anon.6* %2, %union.anon.6** %3, align 8, !tbaa !2, !alias.scope !7
> %4 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options.3, %struct.cmdline_options.3* @g_options, i64 0, i32 24, i32 0, i32 0), align 8, !tbaa !10, !noalias !7
> %5 = load i64, i64* getelementptr inbounds (%struct.cmdline_options.3, %struct.cmdline_options.3* @g_options, i64 0, i32 24, i32 1), align 8, !tbaa !13, !noalias !7
> %6 = bitcast i64* %__dnew.i.i.i.i.i to i8*
> call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %6) #21, !noalias !7
> store i64 %5, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !14, !noalias !7
> %cmp3.i.i.i.i.i = icmp ugt i64 %5, 15
> br i1 %cmp3.i.i.i.i.i, label %if.then4.i.i.i.i.i, label %if.end.if.end6_crit_edge.i.i.i.i.i
< call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp2, %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 24), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0))
< %call.i.i.i = call i64 @strlen(i8* nonnull dereferenceable(1) %file) #22, !noalias !2
< %_M_string_length.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp2, i64 0, i32 1
< %2 = load i64, i64* %_M_string_length.i.i.i.i, align 8, !tbaa !5, !noalias !2
< %sub3.i.i.i = sub i64 4611686018427387903, %2
< %cmp.i.i.i = icmp ult i64 %sub3.i.i.i, %call.i.i.i
< br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i
in function _GLOBAL__sub_I_main.cc:
in block %entry:
> tail call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init.0"* nonnull @_ZStL8__ioinit)
> %0 = tail call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init.0"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init.0", %"class.std::ios_base::Init.0"* @_ZStL8__ioinit, i64 0, i32 0), i8* nonnull @__dso_handle) #21
< tail call void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"* nonnull @_ZStL8__ioinit)
< %0 = tail call i32 @__cxa_atexit(void (i8*)* bitcast (void (%"class.std::ios_base::Init"*)* @_ZNSt8ios_base4InitD1Ev to void (i8*)*), i8* getelementptr inbounds (%"class.std::ios_base::Init", %"class.std::ios_base::Init"* @_ZStL8__ioinit, i64 0, i32 0), i8* nonnull @__dso_handle) #22
This file has been truncated, but you can view the full file.
; ModuleID = '<stdin>'
source_filename = "../MultiSource/Applications/kimwitu++/main.cc"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%"class.std::ios_base::Init" = type { i8 }
%"class.kc::impl_casestring__Str" = type { %"class.kc::impl_abstract_phylum", i8* }
%"class.kc::impl_abstract_phylum" = type { i32 (...)** }
%struct.cmdline_options = type <{ %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [5 x i8], %"class.std::__cxx11::basic_string", i8, i8, i8, i8, [4 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i8, i8, i8, [5 x i8] }>
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::_Alloc_hider" = type { i8* }
%union.anon = type { i64, [8 x i8] }
%struct._IO_FILE = type { i32, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %struct._IO_marker*, %struct._IO_FILE*, i32, i32, i64, i16, i8, [1 x i8], i8*, i64, i8*, i8*, i8*, i8*, i64, i32, [20 x i8] }
%struct._IO_marker = type { %struct._IO_marker*, %struct._IO_FILE*, i32 }
%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", %"class.std::basic_ostream"*, i8, i8, %"class.std::basic_streambuf"*, %"class.std::ctype"*, %"class.std::num_put"*, %"class.std::num_get"* }
%"class.std::ios_base" = type { i32 (...)**, i64, i64, i32, i32, i32, %"struct.std::ios_base::_Callback_list"*, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, %"struct.std::ios_base::_Words"*, %"class.std::locale" }
%"struct.std::ios_base::_Callback_list" = type { %"struct.std::ios_base::_Callback_list"*, void (i32, %"class.std::ios_base"*, i32)*, i32, i32 }
%"struct.std::ios_base::_Words" = type { i8*, i64 }
%"class.std::locale" = type { %"class.std::locale::_Impl"* }
%"class.std::locale::_Impl" = type { i32, %"class.std::locale::facet"**, i64, %"class.std::locale::facet"**, i8** }
%"class.std::locale::facet" = type <{ i32 (...)**, i32, [4 x i8] }>
%"class.std::basic_streambuf" = type { i32 (...)**, i8*, i8*, i8*, i8*, i8*, i8*, %"class.std::locale" }
%"class.std::ctype" = type <{ %"class.std::locale::facet.base", [4 x i8], %struct.__locale_struct*, i8, [7 x i8], i32*, i32*, i16*, i8, [256 x i8], [256 x i8], i8, [6 x i8] }>
%"class.std::locale::facet.base" = type <{ i32 (...)**, i32 }>
%struct.__locale_struct = type { [13 x %struct.__locale_data*], i16*, i32*, i32*, [13 x i8*] }
%struct.__locale_data = type opaque
%"class.std::num_put" = type { %"class.std::locale::facet.base", [4 x i8] }
%"class.std::num_get" = type { %"class.std::locale::facet.base", [4 x i8] }
%"class.kc::impl_bindingidmarks" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_bindingidmark"*, %"class.kc::impl_bindingidmarks"* }
%"class.kc::impl_abstract_list" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_bindingidmark" = type <{ %"class.kc::impl_abstract_phylum", i8, [7 x i8] }>
%"class.kc::impl_phylumdeclarations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_phylumdeclaration"*, %"class.kc::impl_phylumdeclarations"* }
%"class.kc::impl_phylumdeclaration" = type { %"class.kc::impl_abstract_phylum", i32, %"class.kc::impl_fndeclarations"*, %"class.kc::impl_baseclass_list"* }
%"class.kc::impl_fndeclarations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_fndeclaration"*, %"class.kc::impl_fndeclarations"* }
%"class.kc::impl_fndeclaration" = type <{ %"class.kc::impl_abstract_phylum", %"class.kc::impl_ac_parameter_type_list"*, i32, [4 x i8], %"class.kc::impl_casestring__Str"*, i8, [7 x i8] }>
%"class.kc::impl_ac_parameter_type_list" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_baseclass_list" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_ID"*, %"class.kc::impl_baseclass_list"* }
%"class.kc::impl_ID" = type { %"class.kc::impl_abstract_phylum", %"class.kc::impl_IDtype"*, %"class.kc::impl_casestring__Str"*, i32, %"class.kc::impl_casestring__Str"* }
%"class.kc::impl_IDtype" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::printer_functor_class" = type { i32 (...)** }
%"struct.kc::view_check_count_class" = type { %"class.kc::uview_class" }
%"class.kc::uview_class" = type { i32 }
%"struct.kc::view_check_class" = type { %"class.kc::uview_class" }
%"class.kc::impl_rwdeclarations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_rwdeclaration"*, %"class.kc::impl_rwdeclarations"* }
%"class.kc::impl_rwdeclaration" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_fnfiles" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_fnfile"*, %"class.kc::impl_fnfiles"* }
%"class.kc::impl_fnfile" = type { %"class.kc::impl_abstract_phylum", %"class.kc::impl_fndeclarations"* }
%"class.kc::impl_baseclass_declarations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_baseclass_decl"*, %"class.kc::impl_baseclass_declarations"* }
%"class.kc::impl_baseclass_decl" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_unparsedeclarations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_unparsedeclaration"*, %"class.kc::impl_unparsedeclarations"* }
%"class.kc::impl_unparsedeclaration" = type { %"class.kc::impl_abstract_phylum", %"class.kc::impl_patternrepresentations"* }
%"class.kc::impl_patternrepresentations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_patternrepresentation"*, %"class.kc::impl_patternrepresentations"* }
%"class.kc::impl_patternrepresentation" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_elem_patternrepresentation"*, %"class.kc::impl_patternrepresentation"* }
%"class.kc::impl_elem_patternrepresentation" = type { %"class.kc::impl_abstract_phylum", i32, %"class.kc::impl_casestring__Str"*, %"class.kc::impl_ID"* }
%"struct.kc::view_check_viewnames_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_check_uniq_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_checklanguagenames_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_make_patternreps_class" = type { %"class.kc::uview_class" }
%"class.kc::impl_viewnames" = type { %"class.kc::impl_abstract_list", i8, %"class.kc::impl_ID"*, %"class.kc::impl_viewnames"* }
%"class.kc::impl_argsnumbers" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_integer__Int"*, %"class.kc::impl_argsnumbers"* }
%"class.kc::impl_integer__Int" = type <{ %"class.kc::impl_abstract_phylum", i32, [4 x i8] }>
%class.kc_filePrinter = type <{ %"class.kc::printer_functor_class", %struct._IO_FILE*, i32, [4 x i8], %"class.std::__cxx11::basic_string", i32, i8, i8, [2 x i8], i32, i32, i8, i8, i8, i8, i8, i8, [2 x i8], i8*, i8, i8, [6 x i8] }>
%"struct.kc::view_gen_k_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_k_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_enumphyla_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_enumoperators_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_classdecls1_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_nodetypedefs_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_operatormap_type_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_subphylumdefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_set_subphylumdefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_copy_attributes_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_phylummap_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_operatormap_c_class" = type { %"class.kc::uview_class" }
%"class.kc::impl_storageclasses" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_phylumnames"*, %"class.kc::impl_ID"*, %"class.kc::impl_storageclasses"* }
%"class.kc::impl_phylumnames" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_ID"*, %"class.kc::impl_phylumnames"* }
%"struct.kc::view_gen_uniqmap_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_nodetypes_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_noofoperators_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_close_namespace_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_includes_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_open_namespace_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_assertmacros_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_assertmacros_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_operatordecls_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_classdecls2_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_classdefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_alloc_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_alloc_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_hashtables_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_operatordefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_hashtables_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_error_decls_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_error_defs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_printdotdecls_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_printdotdefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_listdefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_copydefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_end_k_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_csgio_start_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_csgio_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_csgio_end_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_csgio_start_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_csgio_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_unpk_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_uview_class_decl_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_unparsedecls_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_end_unpk_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_unpk_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_default_types_unpk_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_unparsedefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_rewritek_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_rview_class_decl_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_rewritedecls_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_end_rewritek_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_rewritek_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_rewritedefs_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fns_start_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fnk_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fns_end_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fns_start_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fns_owninclude_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fnkdecls_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_fnk_c_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_operatorcast_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_yaccstacktype_h_class" = type { %"class.kc::uview_class" }
%"struct.kc::view_gen_yxx_union_h_class" = type { %"class.kc::uview_class" }
%"class.kc::impl_languagenames" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_ID"*, %"class.kc::impl_languagenames"* }
%"class.kc::impl_fileline_NoFileLine" = type { %"class.kc::impl_fileline.base", [4 x i8] }
%"class.kc::impl_fileline.base" = type <{ %"class.kc::impl_abstract_phylum", %"class.kc::impl_casestring__Str"*, i32 }>
%"class.kc::impl_fileline" = type <{ %"class.kc::impl_abstract_phylum", %"class.kc::impl_casestring__Str"*, i32, [4 x i8] }>
%"class.kc::impl_problem" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_error_Fatal" = type { %"class.kc::impl_error", %"class.kc::impl_fileline"*, %"class.kc::impl_problem"* }
%"class.kc::impl_error" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_error_NonFatal" = type { %"class.kc::impl_error", %"class.kc::impl_fileline"*, %"class.kc::impl_problem"* }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = 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 { %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"* }
%"class.kc::impl_error_Warning" = type { %"class.kc::impl_error", %"class.kc::impl_fileline"*, %"class.kc::impl_problem"* }
%"class.kc::impl_includefile_IncludeFile" = type { %"class.kc::impl_includefile", %"class.kc::impl_casestring__Str"* }
%"class.kc::impl_includefile" = type { %"class.kc::impl_abstract_phylum", i32, %class.twoIncludedeclarations }
%class.twoIncludedeclarations = type { %"class.kc::impl_includedeclarations"*, %"class.kc::impl_includedeclarations"* }
%"class.kc::impl_includedeclarations" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_includedeclaration"*, %"class.kc::impl_includedeclarations"* }
%"class.kc::impl_includedeclaration" = type { %"class.kc::impl_abstract_phylum", i32, %"class.kc::impl_casestring__Str"* }
%"class.kc::impl_uniqID_Str" = type { %"class.kc::impl_uniqID", %"class.kc::impl_casestring__Str"* }
%"class.kc::impl_uniqID" = type { %"class.kc::impl_abstract_phylum", %"class.kc::impl_IDtype"*, i32, %"class.kc::impl_casestring__Str"*, %"class.kc::impl_scopetypefilelinestack"* }
%"class.kc::impl_scopetypefilelinestack" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_scopetypefileline"*, %"class.kc::impl_scopetypefilelinestack"* }
%"class.kc::impl_scopetypefileline" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_ID_Id" = type { %"class.kc::impl_ID", %"class.kc::impl_uniqID"* }
%"class.kc::impl_storageoption_PositiveStorageOption" = type { %"class.kc::impl_storageoption", %"class.kc::impl_ID"* }
%"class.kc::impl_storageoption" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_productionblock_Emptyproductionblock" = type { %"class.kc::impl_productionblock" }
%"class.kc::impl_productionblock" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_attributes" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_attribute"*, %"class.kc::impl_attributes"* }
%"class.kc::impl_attribute" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_Ctexts" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_Ctext"*, %"class.kc::impl_Ctexts"* }
%"class.kc::impl_Ctext" = type { %"class.kc::impl_abstract_list", i32, %"class.kc::impl_casestring__Str"*, %"class.kc::impl_Ctext_elem"*, %"class.kc::impl_Ctext"* }
%"class.kc::impl_Ctext_elem" = type { %"class.kc::impl_abstract_phylum", i32, %"class.kc::impl_casestring__Str"* }
%"class.kc::impl_Ccode_option_CcodeOption" = type { %"class.kc::impl_Ccode_option", %"class.kc::impl_attributes"*, %"class.kc::impl_Ctexts"* }
%"class.kc::impl_Ccode_option" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_phylumdeclaration_PhylumDeclaration" = type { %"class.kc::impl_phylumdeclaration", %"class.kc::impl_ID"*, %"class.kc::impl_storageoption"*, %"class.kc::impl_productionblock"*, %"class.kc::impl_Ccode_option"* }
%"class.kc::impl_IDtype_ITPredefinedPhylum" = type { %"class.kc::impl_IDtype", %"class.kc::impl_phylumdeclaration"* }
%"class.kc::impl_arguments" = type { %"class.kc::impl_abstract_list", i32, %"class.kc::impl_ID"*, %"class.kc::impl_arguments"* }
%"class.kc::impl_alternative_Alternative" = type { %"class.kc::impl_alternative", %"class.kc::impl_ID"*, %"class.kc::impl_arguments"* }
%"class.kc::impl_alternative" = type { %"class.kc::impl_abstract_phylum", %"class.kc::impl_rewriterulesinfo"*, %"class.kc::impl_unparsedeclsinfo"*, %"class.kc::impl_fndeclarations"*, %"class.kc::impl_baseclass_list"* }
%"class.kc::impl_rewriterulesinfo" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_rewriteruleinfo"*, %"class.kc::impl_rewriterulesinfo"* }
%"class.kc::impl_rewriteruleinfo" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_unparsedeclsinfo" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_unparsedeclinfo"*, %"class.kc::impl_unparsedeclsinfo"* }
%"class.kc::impl_unparsedeclinfo" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_alternatives" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_alternative"*, %"class.kc::impl_alternatives"* }
%"class.kc::impl_productionblock_PredefinedAlternatives" = type { %"class.kc::impl_productionblock", %"class.kc::impl_alternatives"* }
%"class.kc::impl_IDtype_ITPredefinedOperator" = type { %"class.kc::impl_IDtype", %"class.kc::impl_alternative"*, %"class.kc::impl_ID"* }
%"class.kc::impl_IDtype_ITPredefinedUView" = type { %"class.kc::impl_IDtype" }
%"class.kc::impl_IDtype_ITPredefinedRView" = type { %"class.kc::impl_IDtype" }
%"class.kc::impl_IDtype_ITPredefinedStorageClass" = type { %"class.kc::impl_IDtype" }
%"class.kc::impl_fnfile_FnFile" = type { %"class.kc::impl_fnfile", %"class.kc::impl_casestring__Str"* }
%"class.kc::impl_unparseviewsinfo" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_unparseviewinfo"*, %"class.kc::impl_unparseviewsinfo"* }
%"class.kc::impl_unparseviewinfo" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_rewriteviewsinfo" = type { %"class.kc::impl_abstract_list", %"class.kc::impl_rewriteviewinfo"*, %"class.kc::impl_rewriteviewsinfo"* }
%"class.kc::impl_rewriteviewinfo" = type { %"class.kc::impl_abstract_phylum" }
%"class.kc::impl_phylumdeclarationsroot_PhylumDeclarations" = type { %"class.kc::impl_phylumdeclarationsroot", %"class.kc::impl_phylumdeclarations"* }
%"class.kc::impl_phylumdeclarationsroot" = type { %"class.kc::impl_abstract_phylum" }
%struct.stat = type { i64, i64, i64, i32, i32, i32, i32, i64, i64, i64, i64, %struct.timespec, %struct.timespec, %struct.timespec, [3 x i64] }
%struct.timespec = type { i64, i64 }
$_ZN15cmdline_optionsD2Ev = comdat any
$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_ = comdat any
$_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_ = comdat any
@kimwitu_copyright = dso_local local_unnamed_addr global [13 x i8] c"@(#)$Author$\00", align 1
@_ZStL8__ioinit = internal global %"class.std::ios_base::Init" zeroinitializer, align 1
@__dso_handle = external hidden global i8
@g_progname = dso_local local_unnamed_addr global %"class.kc::impl_casestring__Str"* null, align 8
@.str = private unnamed_addr constant [7 x i8] c"#line \00", align 1
@pg_line = dso_local local_unnamed_addr global i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0), align 8
@g_options = dso_local global %struct.cmdline_options zeroinitializer, align 8
@stderr = external dso_local local_unnamed_addr global %struct._IO_FILE*, align 8
@.str.2 = private unnamed_addr constant [37 x i8] c"%s: received signal %d, cleaning up\0A\00", align 1
@.str.3 = private unnamed_addr constant [30 x i8] c"kc++: segmentation violation\0A\00", align 1
@.str.4 = private unnamed_addr constant [35 x i8] c"kc++: something horrible happened\0A\00", align 1
@yydebug = external dso_local local_unnamed_addr global i32, align 4
@.str.5 = private unnamed_addr constant [6 x i8] c"stdin\00", align 1
@pg_filename = external dso_local local_unnamed_addr global %"class.kc::impl_casestring__Str"*, align 8
@gp_no_fatal_problems = external dso_local local_unnamed_addr global i8, align 1
@pg_uviewshavebeendefined = external dso_local local_unnamed_addr global i8, align 1
@pg_rviewshavebeendefined = external dso_local local_unnamed_addr global i8, align 1
@pg_storageclasseshavebeendefined = external dso_local local_unnamed_addr global i8, align 1
@pg_lineno = external dso_local local_unnamed_addr global i32, align 4
@pg_column = external dso_local local_unnamed_addr global i32, align 4
@pg_charpos = external dso_local local_unnamed_addr global i32, align 4
@_ZSt4cout = external dso_local global %"class.std::basic_ostream", align 8
@.str.6 = private unnamed_addr constant [24 x i8] c"Reading input files ...\00", align 1
@.str.7 = private unnamed_addr constant [10 x i8] c" - done.\0A\00", align 1
@Thebindingidmarks = external dso_local local_unnamed_addr global %"class.kc::impl_bindingidmarks"*, align 8
@.str.8 = private unnamed_addr constant [17 x i8] c"Checking input.\0A\00", align 1
@Thephylumdeclarations = external dso_local local_unnamed_addr global %"class.kc::impl_phylumdeclarations"*, align 8
@v_null_printer = external dso_local global %"class.kc::printer_functor_class", align 8
@_ZN2kc16view_check_countE = external dso_local global %"struct.kc::view_check_count_class", align 4
@_ZN2kc10view_checkE = external dso_local global %"struct.kc::view_check_class", align 4
@Therwdeclarations = external dso_local local_unnamed_addr global %"class.kc::impl_rwdeclarations"*, align 8
@Thefnfiles = external dso_local local_unnamed_addr global %"class.kc::impl_fnfiles"*, align 8
@Thebaseclasses = external dso_local local_unnamed_addr global %"class.kc::impl_baseclass_declarations"*, align 8
@Theunparsedeclarations = external dso_local local_unnamed_addr global %"class.kc::impl_unparsedeclarations"*, align 8
@_ZN2kc20view_check_viewnamesE = external dso_local global %"struct.kc::view_check_viewnames_class", align 4
@_ZN2kc15view_check_uniqE = external dso_local global %"struct.kc::view_check_uniq_class", align 4
@_ZN2kc23view_checklanguagenamesE = external dso_local global %"struct.kc::view_checklanguagenames_class", align 4
@_ZN2kc21view_make_patternrepsE = external dso_local global %"struct.kc::view_make_patternreps_class", align 4
@Theuviewnames = external dso_local local_unnamed_addr global %"class.kc::impl_viewnames"*, align 8
@Therviewnames = external dso_local local_unnamed_addr global %"class.kc::impl_viewnames"*, align 8
@pg_languageshavebeendefined = external dso_local local_unnamed_addr global i8, align 1
@Theargsnumbers = external dso_local local_unnamed_addr global %"class.kc::impl_argsnumbers"*, align 8
@.str.9 = private unnamed_addr constant [25 x i8] c"Writing output files ...\00", align 1
@v_hfile_printer = external dso_local global %class.kc_filePrinter, align 8
@.str.10 = private unnamed_addr constant [10 x i8] c".k.h.temp\00", align 1
@.str.11 = private unnamed_addr constant [2 x i8] c"w\00", align 1
@.str.12 = private unnamed_addr constant [4 x i8] c"k.h\00", align 1
@v_ccfile_printer = external dso_local global %class.kc_filePrinter, align 8
@.str.13 = private unnamed_addr constant [12 x i8] c".kc.cc.temp\00", align 1
@.str.14 = private unnamed_addr constant [3 x i8] c"k.\00", align 1
@.str.15 = private unnamed_addr constant [2 x i8] c" \00", align 1
@.str.16 = private unnamed_addr constant [2 x i8] c"k\00", align 1
@_ZN2kc12view_gen_k_hE = external dso_local global %"struct.kc::view_gen_k_h_class", align 4
@_ZN2kc12view_gen_k_cE = external dso_local global %"struct.kc::view_gen_k_c_class", align 4
@_ZN2kc20view_gen_enumphyla_hE = external dso_local global %"struct.kc::view_gen_enumphyla_h_class", align 4
@_ZN2kc24view_gen_enumoperators_hE = external dso_local global %"struct.kc::view_gen_enumoperators_h_class", align 4
@_ZN2kc22view_gen_classdecls1_hE = external dso_local global %"struct.kc::view_gen_classdecls1_h_class", align 4
@_ZN2kc23view_gen_nodetypedefs_hE = external dso_local global %"struct.kc::view_gen_nodetypedefs_h_class", align 4
@_ZN2kc27view_gen_operatormap_type_hE = external dso_local global %"struct.kc::view_gen_operatormap_type_h_class", align 4
@_ZN2kc24view_gen_subphylumdefs_cE = external dso_local global %"struct.kc::view_gen_subphylumdefs_c_class", align 4
@_ZN2kc28view_gen_set_subphylumdefs_cE = external dso_local global %"struct.kc::view_gen_set_subphylumdefs_c_class", align 4
@_ZN2kc26view_gen_copy_attributes_cE = external dso_local global %"struct.kc::view_gen_copy_attributes_c_class", align 4
@_ZN2kc20view_gen_phylummap_cE = external dso_local global %"struct.kc::view_gen_phylummap_c_class", align 4
@_ZN2kc22view_gen_operatormap_cE = external dso_local global %"struct.kc::view_gen_operatormap_c_class", align 4
@Thestorageclasses = external dso_local local_unnamed_addr global %"class.kc::impl_storageclasses"*, align 8
@_ZN2kc18view_gen_uniqmap_cE = external dso_local global %"struct.kc::view_gen_uniqmap_c_class", align 4
@_ZN2kc20view_gen_nodetypes_hE = external dso_local global %"struct.kc::view_gen_nodetypes_h_class", align 4
@_ZN2kc24view_gen_noofoperators_hE = external dso_local global %"struct.kc::view_gen_noofoperators_h_class", align 4
@_ZN2kc20view_close_namespaceE = external dso_local global %"struct.kc::view_close_namespace_class", align 4
@.str.17 = private unnamed_addr constant [16 x i8] c"KC_TYPES_HEADER\00", align 1
@_ZN2kc17view_gen_includesE = external dso_local global %"struct.kc::view_gen_includes_class", align 4
@.str.18 = private unnamed_addr constant [9 x i8] c"KC_TYPES\00", align 1
@_ZN2kc19view_open_namespaceE = external dso_local global %"struct.kc::view_open_namespace_class", align 4
@_ZN2kc23view_gen_assertmacros_hE = external dso_local global %"struct.kc::view_gen_assertmacros_h_class", align 4
@_ZN2kc23view_gen_assertmacros_cE = external dso_local global %"struct.kc::view_gen_assertmacros_c_class", align 4
@_ZN2kc24view_gen_operatordecls_hE = external dso_local global %"struct.kc::view_gen_operatordecls_h_class", align 4
@_ZN2kc22view_gen_classdecls2_hE = external dso_local global %"struct.kc::view_gen_classdecls2_h_class", align 4
@_ZN2kc20view_gen_classdefs_cE = external dso_local global %"struct.kc::view_gen_classdefs_c_class", align 4
@_ZN2kc16view_gen_alloc_hE = external dso_local global %"struct.kc::view_gen_alloc_h_class", align 4
@_ZN2kc16view_gen_alloc_cE = external dso_local global %"struct.kc::view_gen_alloc_c_class", align 4
@_ZN2kc21view_gen_hashtables_hE = external dso_local global %"struct.kc::view_gen_hashtables_h_class", align 4
@_ZN2kc23view_gen_operatordefs_cE = external dso_local global %"struct.kc::view_gen_operatordefs_c_class", align 4
@_ZN2kc21view_gen_hashtables_cE = external dso_local global %"struct.kc::view_gen_hashtables_c_class", align 4
@_ZN2kc22view_gen_error_decls_hE = external dso_local global %"struct.kc::view_gen_error_decls_h_class", align 4
@_ZN2kc21view_gen_error_defs_cE = external dso_local global %"struct.kc::view_gen_error_defs_c_class", align 4
@_ZN2kc24view_gen_printdotdecls_hE = external dso_local global %"struct.kc::view_gen_printdotdecls_h_class", align 4
@_ZN2kc23view_gen_printdotdefs_cE = external dso_local global %"struct.kc::view_gen_printdotdefs_c_class", align 4
@_ZN2kc19view_gen_listdefs_cE = external dso_local global %"struct.kc::view_gen_listdefs_c_class", align 4
@_ZN2kc19view_gen_copydefs_cE = external dso_local global %"struct.kc::view_gen_copydefs_c_class", align 4
@_ZN2kc16view_gen_end_k_hE = external dso_local global %"struct.kc::view_gen_end_k_h_class", align 4
@.str.19 = private unnamed_addr constant [36 x i8] c"writing temporary k.cc file failed:\00", align 1
@.str.20 = private unnamed_addr constant [35 x i8] c"writing temporary k.h file failed:\00", align 1
@.str.21 = private unnamed_addr constant [9 x i8] c"csgiok.h\00", align 1
@.str.22 = private unnamed_addr constant [8 x i8] c"csgiok.\00", align 1
@.str.23 = private unnamed_addr constant [7 x i8] c"csgiok\00", align 1
@_ZN2kc22view_gen_csgio_start_hE = external dso_local global %"struct.kc::view_gen_csgio_start_h_class", align 4
@.str.24 = private unnamed_addr constant [16 x i8] c"KC_CSGIO_HEADER\00", align 1
@_ZN2kc16view_gen_csgio_hE = external dso_local global %"struct.kc::view_gen_csgio_h_class", align 4
@_ZN2kc20view_gen_csgio_end_hE = external dso_local global %"struct.kc::view_gen_csgio_end_h_class", align 4
@_ZN2kc22view_gen_csgio_start_cE = external dso_local global %"struct.kc::view_gen_csgio_start_c_class", align 4
@.str.25 = private unnamed_addr constant [9 x i8] c"KC_CSGIO\00", align 1
@_ZN2kc16view_gen_csgio_cE = external dso_local global %"struct.kc::view_gen_csgio_c_class", align 4
@.str.26 = private unnamed_addr constant [41 x i8] c"writing temporary csgiok.cc file failed:\00", align 1
@.str.27 = private unnamed_addr constant [40 x i8] c"writing temporary csgiok.h file failed:\00", align 1
@.str.28 = private unnamed_addr constant [7 x i8] c"unpk.h\00", align 1
@.str.29 = private unnamed_addr constant [6 x i8] c"unpk.\00", align 1
@.str.30 = private unnamed_addr constant [5 x i8] c"unpk\00", align 1
@_ZN2kc15view_gen_unpk_hE = external dso_local global %"struct.kc::view_gen_unpk_h_class", align 4
@.str.31 = private unnamed_addr constant [18 x i8] c"KC_UNPARSE_HEADER\00", align 1
@_ZN2kc21view_uview_class_declE = external dso_local global %"struct.kc::view_uview_class_decl_class", align 4
@_ZN2kc23view_gen_unparsedecls_hE = external dso_local global %"struct.kc::view_gen_unparsedecls_h_class", align 4
@_ZN2kc19view_gen_end_unpk_hE = external dso_local global %"struct.kc::view_gen_end_unpk_h_class", align 4
@_ZN2kc15view_gen_unpk_cE = external dso_local global %"struct.kc::view_gen_unpk_c_class", align 4
@.str.32 = private unnamed_addr constant [11 x i8] c"KC_UNPARSE\00", align 1
@_ZN2kc29view_gen_default_types_unpk_cE = external dso_local global %"struct.kc::view_gen_default_types_unpk_c_class", align 4
@_ZN2kc22view_gen_unparsedefs_cE = external dso_local global %"struct.kc::view_gen_unparsedefs_c_class", align 4
@.str.33 = private unnamed_addr constant [39 x i8] c"writing temporary unpk.cc file failed:\00", align 1
@.str.34 = private unnamed_addr constant [38 x i8] c"writing temporary unpk.h file failed:\00", align 1
@.str.35 = private unnamed_addr constant [5 x i8] c"rk.h\00", align 1
@.str.36 = private unnamed_addr constant [4 x i8] c"rk.\00", align 1
@.str.37 = private unnamed_addr constant [3 x i8] c"rk\00", align 1
@_ZN2kc19view_gen_rewritek_hE = external dso_local global %"struct.kc::view_gen_rewritek_h_class", align 4
@.str.38 = private unnamed_addr constant [18 x i8] c"KC_REWRITE_HEADER\00", align 1
@_ZN2kc21view_rview_class_declE = external dso_local global %"struct.kc::view_rview_class_decl_class", align 4
@_ZN2kc23view_gen_rewritedecls_hE = external dso_local global %"struct.kc::view_gen_rewritedecls_h_class", align 4
@_ZN2kc23view_gen_end_rewritek_hE = external dso_local global %"struct.kc::view_gen_end_rewritek_h_class", align 4
@_ZN2kc19view_gen_rewritek_cE = external dso_local global %"struct.kc::view_gen_rewritek_c_class", align 4
@.str.39 = private unnamed_addr constant [11 x i8] c"KC_REWRITE\00", align 1
@_ZN2kc22view_gen_rewritedefs_cE = external dso_local global %"struct.kc::view_gen_rewritedefs_c_class", align 4
@.str.40 = private unnamed_addr constant [37 x i8] c"writing temporary rk.cc file failed:\00", align 1
@.str.41 = private unnamed_addr constant [36 x i8] c"writing temporary rk.h file failed:\00", align 1
@.str.42 = private unnamed_addr constant [2 x i8] c"h\00", align 1
@.str.43 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1
@_ZN2kc20view_gen_fns_start_hE = external dso_local global %"struct.kc::view_gen_fns_start_h_class", align 4
@.str.44 = private unnamed_addr constant [23 x i8] c"KC_FUNCTIONS_%s_HEADER\00", align 1
@_ZN2kc14view_gen_fnk_hE = external dso_local global %"struct.kc::view_gen_fnk_h_class", align 4
@_ZN2kc18view_gen_fns_end_hE = external dso_local global %"struct.kc::view_gen_fns_end_h_class", align 4
@_ZN2kc20view_gen_fns_start_cE = external dso_local global %"struct.kc::view_gen_fns_start_c_class", align 4
@_ZN2kc25view_gen_fns_owninclude_cE = external dso_local global %"struct.kc::view_gen_fns_owninclude_c_class", align 4
@.str.45 = private unnamed_addr constant [16 x i8] c"KC_FUNCTIONS_%s\00", align 1
@_ZN2kc19view_gen_fnkdecls_cE = external dso_local global %"struct.kc::view_gen_fnkdecls_c_class", align 4
@_ZN2kc14view_gen_fnk_cE = external dso_local global %"struct.kc::view_gen_fnk_c_class", align 4
@.str.46 = private unnamed_addr constant [19 x i8] c"writing temporary \00", align 1
@.str.47 = private unnamed_addr constant [14 x i8] c" file failed:\00", align 1
@.str.48 = private unnamed_addr constant [5 x i8] c"main\00", align 1
@.str.49 = private unnamed_addr constant [46 x i8] c"../MultiSource/Applications/kimwitu++/main.cc\00", align 1
@.str.50 = private unnamed_addr constant [12 x i8] c"operatork.h\00", align 1
@_ZN2kc23view_gen_operatorcast_hE = external dso_local global %"struct.kc::view_gen_operatorcast_h_class", align 4
@.str.51 = private unnamed_addr constant [43 x i8] c"writing temporary operatork.h file failed:\00", align 1
@_ZN2kc24view_gen_yaccstacktype_hE = external dso_local global %"struct.kc::view_gen_yaccstacktype_h_class", align 4
@.str.52 = private unnamed_addr constant [12 x i8] c"yxx_union.h\00", align 1
@_ZN2kc20view_gen_yxx_union_hE = external dso_local global %"struct.kc::view_gen_yxx_union_h_class", align 4
@.str.53 = private unnamed_addr constant [43 x i8] c"writing temporary yxx_union.h file failed:\00", align 1
@.str.56 = private unnamed_addr constant [5 x i8] c"kc++\00", align 1
@.str.57 = private unnamed_addr constant [33 x i8] c"crudts:f:n:e:mwlb::yop:M:qvW::hV\00", align 1
@optarg = external dso_local local_unnamed_addr global i8*, align 8
@.str.58 = private unnamed_addr constant [41 x i8] c"Can't be quiet when asked to be verbose.\00", align 1
@.str.59 = private unnamed_addr constant [41 x i8] c"Can't be verbose when asked to be quiet.\00", align 1
@.str.60 = private unnamed_addr constant [5 x i8] c"drop\00", align 1
@.str.61 = private unnamed_addr constant [7 x i8] c"nodrop\00", align 1
@.str.62 = private unnamed_addr constant [6 x i8] c"equiv\00", align 1
@.str.63 = private unnamed_addr constant [8 x i8] c"noequiv\00", align 1
@.str.64 = private unnamed_addr constant [8 x i8] c"overlap\00", align 1
@.str.65 = private unnamed_addr constant [10 x i8] c"noverlapo\00", align 1
@.str.66 = private unnamed_addr constant [28 x i8] c"Unknown warning sub-option:\00", align 1
@.str.67 = private unnamed_addr constant [10 x i8] c"yystype.h\00", align 1
@.str.68 = private unnamed_addr constant [43 x i8] c"Covariant option must be yes or no or pre.\00", align 1
@.str.69 = private unnamed_addr constant [9 x i8] c"// line \00", align 1
@.str.70 = private unnamed_addr constant [9 x i8] c"stdafx.h\00", align 1
@.str.71 = private unnamed_addr constant [20 x i8] c"Do you really want \00", align 1
@.str.72 = private unnamed_addr constant [15 x i8] c" as dllexport?\00", align 1
@optind = external dso_local local_unnamed_addr global i32, align 4
@.str.73 = private unnamed_addr constant [34 x i8] c"input file must have '.k' suffix:\00", align 1
@.str.74 = private unnamed_addr constant [4 x i8] c"k.k\00", align 1
@.str.75 = private unnamed_addr constant [5 x i8] c"rk.k\00", align 1
@.str.76 = private unnamed_addr constant [7 x i8] c"unpk.k\00", align 1
@.str.77 = private unnamed_addr constant [9 x i8] c"csgiok.k\00", align 1
@.str.78 = private unnamed_addr constant [8 x i8] c"stdin.k\00", align 1
@.str.79 = private unnamed_addr constant [28 x i8] c"reserved file mybasenames '\00", align 1
@.str.80 = private unnamed_addr constant [8 x i8] c"k.k', '\00", align 1
@.str.81 = private unnamed_addr constant [9 x i8] c"rk.k', '\00", align 1
@.str.82 = private unnamed_addr constant [11 x i8] c"unpk.k', '\00", align 1
@.str.83 = private unnamed_addr constant [37 x i8] c"csgiok.k' and 'stdin.k' not allowed:\00", align 1
@.str.84 = private unnamed_addr constant [2 x i8] c"r\00", align 1
@yyin = external dso_local local_unnamed_addr global %struct._IO_FILE*, align 8
@.str.85 = private unnamed_addr constant [13 x i8] c"cannot open \00", align 1
@_ZL14inputfilenames = internal unnamed_addr global i8** null, align 8
@_ZL13no_inputfiles = internal unnamed_addr global i32 0, align 4
@_ZL17current_inputfile = internal unnamed_addr global i32 0, align 4
@.str.86 = private unnamed_addr constant [265 x i8] c"Kimwitu++ version %s\0A\0ACopyright (C) 1997-2003 Michael Piefel, Humboldt-University Berlin\0AKimwitu++ comes with ABSOLUTELY NO WARRANTY; for details see GPL.\0AThis is free software, and you are welcome to redistribute it under\0Acertain conditions; for details see GPL.\0A\00", align 1
@_ZL15kimwitu_version = internal global [6 x i8] c"2.3.8\00", align 1
@.str.87 = private unnamed_addr constant [30 x i8] c"Usage: %s [options] file...\0A\0A\00", align 1
@.str.92 = private unnamed_addr constant [924 x i8] c" Other:\0A -M, --msg-format=PAT specifies format of (error) messages, PAT can contain:\0A %%p (program name), %%s (severity), %%f (file name),\0A %%d (current working directory), %%l (line number),\0A %%c (column); the actual message is appended\0A -q, --quiet quiet operation\0A -v, --verbose print additional status information while processing\0A -W enable all warnings; use comma-seperated list for\0A detailed control (can be prefixed with 'no')\0A drop - dropped rule bodies (no code generated)\0A equiv - equivalent patterns (cannot match)\0A overlap - possibly overlapping patterns\0A -h, --help display this help and exit\0A -V, --version output version information and exit\0A\00", align 1
@.str.93 = private unnamed_addr constant [26 x i8] c"vector::_M_realloc_insert\00", align 1
@.str.94 = private unnamed_addr constant [7 x i8] c"HEADER\00", align 1
@.str.95 = private unnamed_addr constant [5 x i8] c"CODE\00", align 1
@.str.96 = private unnamed_addr constant [11 x i8] c"base_uview\00", align 1
@.str.97 = private unnamed_addr constant [11 x i8] c"base_rview\00", align 1
@.str.98 = private unnamed_addr constant [12 x i8] c"kc_not_uniq\00", align 1
@.str.99 = private unnamed_addr constant [5 x i8] c"uniq\00", align 1
@The_abstract_phylum_decl = external dso_local local_unnamed_addr global %"class.kc::impl_phylumdeclaration"*, align 8
@The_abstract_phylum_ref_decl = external dso_local local_unnamed_addr global %"class.kc::impl_phylumdeclaration"*, align 8
@The_abstract_list_decl = external dso_local local_unnamed_addr global %"class.kc::impl_phylumdeclaration"*, align 8
@Thefndeclarations = external dso_local local_unnamed_addr global %"class.kc::impl_fndeclarations"*, align 8
@Thelanguages = external dso_local local_unnamed_addr global %"class.kc::impl_languagenames"*, align 8
@_ZTIi = external dso_local constant i8*
@.str.100 = private unnamed_addr constant [16 x i8] c"abstract_phylum\00", align 1
@.str.101 = private unnamed_addr constant [20 x i8] c"abstract_phylum_ref\00", align 1
@.str.102 = private unnamed_addr constant [14 x i8] c"abstract_list\00", align 1
@.str.103 = private unnamed_addr constant [8 x i8] c"voidptr\00", align 1
@.str.104 = private unnamed_addr constant [9 x i8] c"_VoidPtr\00", align 1
@.str.105 = private unnamed_addr constant [8 x i8] c"integer\00", align 1
@.str.106 = private unnamed_addr constant [5 x i8] c"_Int\00", align 1
@.str.107 = private unnamed_addr constant [5 x i8] c"real\00", align 1
@.str.108 = private unnamed_addr constant [6 x i8] c"_Real\00", align 1
@.str.109 = private unnamed_addr constant [11 x i8] c"casestring\00", align 1
@.str.110 = private unnamed_addr constant [5 x i8] c"_Str\00", align 1
@.str.111 = private unnamed_addr constant [13 x i8] c"nocasestring\00", align 1
@.str.112 = private unnamed_addr constant [10 x i8] c"NoCaseStr\00", align 1
@.str.113 = private unnamed_addr constant [45 x i8] c"kc++ error (in 'compare_and_delete_or_move')\00", align 1
@.str.114 = private unnamed_addr constant [30 x i8] c"could not open temporary file\00", align 1
@.str.115 = private unnamed_addr constant [20 x i8] c"error while closing\00", align 1
@.str.116 = private unnamed_addr constant [12 x i8] c"(unchanged:\00", align 1
@.str.117 = private unnamed_addr constant [26 x i8] c"kc++ error (in 'erename')\00", align 1
@.str.118 = private unnamed_addr constant [21 x i8] c"error while renaming\00", align 1
@.str.119 = private unnamed_addr constant [3 x i8] c"to\00", align 1
@.str.120 = private unnamed_addr constant [28 x i8] c"kc++ error (in 'different')\00", align 1
@.str.121 = private unnamed_addr constant [15 x i8] c"error stat'ing\00", align 1
@.str.122 = private unnamed_addr constant [25 x i8] c"error while reading from\00", align 1
@.str.123 = private unnamed_addr constant [26 x i8] c"kc++ error (in 'eremove')\00", align 1
@.str.124 = private unnamed_addr constant [21 x i8] c"error while removing\00", align 1
@.str.125 = private unnamed_addr constant [31 x i8] c"writing temporary file failed:\00", align 1
@.str.126 = private unnamed_addr constant [10 x i8] c"removing \00", align 1
@.str.127 = private unnamed_addr constant [21 x i8] c"basic_string::append\00", align 1
@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_main.cc, i8* null }]
@str = private unnamed_addr constant [551 x i8] c"Options:\0A Kimwitu++ Features:\0A -c, --no-csgio no read/write functions (csgio.{h,cc}) are generated\0A -r, --no-rewrite no code for rewrite rules (rk.{h,cc}) is generated\0A -u, --no-unparse no code for unparse rules (unpk.{h,cc}) is generated\0A -d, --no-printdot no printdot functions are generated\0A -t, --no-hashtables no code for hashtables is generated (works only when\0A both --no-csgio and --no-printdot are specified)\0A --operator-cast generate operatork.h for operator_cast<>\00", align 1
@str.128 = private unnamed_addr constant [555 x i8] c" C++ Compiler Options:\0A -n, --covariant=C use covariant return types: yes|no|pre\0A --stdafx[=FILE] include for Microsoft precompiled header files is\0A generated (default stdafx.h)\0A -e, --dllexport=STRING generates string between keyword class and the\0A class name of all operators and phyla\0A -m, --smart-pointer generates code for smart pointers (reference counting)\0A -w, --weak-pointer generates code for weak pointers\0A (implies --smart-pointer)\00", align 1
@str.129 = private unnamed_addr constant [404 x i8] c" Files:\0A -s, --suffix=EXT extension for generated source files (default cc)\0A -f, --file-prefix=PREF prefix for generated files\0A -o, --overwrite always write generated files even if not changed.\0A -b, --yystype[=FILE] generates file (default yystype.h) containing YYSTYPE\0A for yacc or bison\0A -y, --yxx-union generates file yxx_union.h for yacc++\00", align 1
@str.130 = private unnamed_addr constant [402 x i8] c" Advanced:\0A -l, --no-linedirec doesn't print line directives ('#line')\0A --comment-line print line comments ('//line') instead of directives\0A --dir-line prepends the current working directory to the file name in line directives\0A --rw-loop generates a non recursive rewrite function\0A -p, --pipe=CMD process all files while piping them through CMD.\00", align 1
declare dso_local void @_ZNSt8ios_base4InitC1Ev(%"class.std::ios_base::Init"*) unnamed_addr #0
; Function Attrs: nounwind
declare dso_local void @_ZNSt8ios_base4InitD1Ev(%"class.std::ios_base::Init"*) unnamed_addr #1
; Function Attrs: nofree nounwind
declare dso_local i32 @__cxa_atexit(void (i8*)*, i8*, i8*) local_unnamed_addr #2
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr dso_local void @_ZN15cmdline_optionsD2Ev(%struct.cmdline_options* %this) unnamed_addr #3 comdat align 2 personality i32 (...)* @__gxx_personality_v0 {
entry:
%_M_p.i.i.i.i = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 26, i32 0, i32 0
%0 = load i8*, i8** %_M_p.i.i.i.i, align 8, !tbaa !2
%1 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 26, i32 2
%arraydecay.i.i.i.i = bitcast %union.anon* %1 to i8*
%cmp.i.i.i = icmp eq i8* %0, %arraydecay.i.i.i.i
br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
if.then.i.i: ; preds = %entry
tail call void @_ZdlPv(i8* %0) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %entry, %if.then.i.i
%_M_p.i.i.i.i2 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 25, i32 0, i32 0
%2 = load i8*, i8** %_M_p.i.i.i.i2, align 8, !tbaa !2
%3 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 25, i32 2
%arraydecay.i.i.i.i3 = bitcast %union.anon* %3 to i8*
%cmp.i.i.i4 = icmp eq i8* %2, %arraydecay.i.i.i.i3
br i1 %cmp.i.i.i4, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit6, label %if.then.i.i5
if.then.i.i5: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
tail call void @_ZdlPv(i8* %2) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit6
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit6: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, %if.then.i.i5
%_M_p.i.i.i.i7 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 24, i32 0, i32 0
%4 = load i8*, i8** %_M_p.i.i.i.i7, align 8, !tbaa !2
%5 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 24, i32 2
%arraydecay.i.i.i.i8 = bitcast %union.anon* %5 to i8*
%cmp.i.i.i9 = icmp eq i8* %4, %arraydecay.i.i.i.i8
br i1 %cmp.i.i.i9, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11, label %if.then.i.i10
if.then.i.i10: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit6
tail call void @_ZdlPv(i8* %4) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit6, %if.then.i.i10
%_M_p.i.i.i.i12 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 23, i32 0, i32 0
%6 = load i8*, i8** %_M_p.i.i.i.i12, align 8, !tbaa !2
%7 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 23, i32 2
%arraydecay.i.i.i.i13 = bitcast %union.anon* %7 to i8*
%cmp.i.i.i14 = icmp eq i8* %6, %arraydecay.i.i.i.i13
br i1 %cmp.i.i.i14, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16, label %if.then.i.i15
if.then.i.i15: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11
tail call void @_ZdlPv(i8* %6) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit11, %if.then.i.i15
%_M_p.i.i.i.i17 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 22, i32 0, i32 0
%8 = load i8*, i8** %_M_p.i.i.i.i17, align 8, !tbaa !2
%9 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 22, i32 2
%arraydecay.i.i.i.i18 = bitcast %union.anon* %9 to i8*
%cmp.i.i.i19 = icmp eq i8* %8, %arraydecay.i.i.i.i18
br i1 %cmp.i.i.i19, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit21, label %if.then.i.i20
if.then.i.i20: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16
tail call void @_ZdlPv(i8* %8) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit21
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit21: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit16, %if.then.i.i20
%_M_p.i.i.i.i22 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 21, i32 0, i32 0
%10 = load i8*, i8** %_M_p.i.i.i.i22, align 8, !tbaa !2
%11 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 21, i32 2
%arraydecay.i.i.i.i23 = bitcast %union.anon* %11 to i8*
%cmp.i.i.i24 = icmp eq i8* %10, %arraydecay.i.i.i.i23
br i1 %cmp.i.i.i24, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit26, label %if.then.i.i25
if.then.i.i25: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit21
tail call void @_ZdlPv(i8* %10) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit26
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit26: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit21, %if.then.i.i25
%_M_p.i.i.i.i27 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 20, i32 0, i32 0
%12 = load i8*, i8** %_M_p.i.i.i.i27, align 8, !tbaa !2
%13 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 20, i32 2
%arraydecay.i.i.i.i28 = bitcast %union.anon* %13 to i8*
%cmp.i.i.i29 = icmp eq i8* %12, %arraydecay.i.i.i.i28
br i1 %cmp.i.i.i29, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit31, label %if.then.i.i30
if.then.i.i30: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit26
tail call void @_ZdlPv(i8* %12) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit31
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit31: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit26, %if.then.i.i30
%_M_p.i.i.i.i32 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 14, i32 0, i32 0
%14 = load i8*, i8** %_M_p.i.i.i.i32, align 8, !tbaa !2
%15 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 14, i32 2
%arraydecay.i.i.i.i33 = bitcast %union.anon* %15 to i8*
%cmp.i.i.i34 = icmp eq i8* %14, %arraydecay.i.i.i.i33
br i1 %cmp.i.i.i34, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit36, label %if.then.i.i35
if.then.i.i35: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit31
tail call void @_ZdlPv(i8* %14) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit36
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit36: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit31, %if.then.i.i35
%_M_p.i.i.i.i37 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 1, i32 0, i32 0
%16 = load i8*, i8** %_M_p.i.i.i.i37, align 8, !tbaa !2
%17 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 1, i32 2
%arraydecay.i.i.i.i38 = bitcast %union.anon* %17 to i8*
%cmp.i.i.i39 = icmp eq i8* %16, %arraydecay.i.i.i.i38
br i1 %cmp.i.i.i39, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit41, label %if.then.i.i40
if.then.i.i40: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit36
tail call void @_ZdlPv(i8* %16) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit41
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit41: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit36, %if.then.i.i40
%_M_p.i.i.i.i42 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 0, i32 0, i32 0
%18 = load i8*, i8** %_M_p.i.i.i.i42, align 8, !tbaa !2
%19 = getelementptr inbounds %struct.cmdline_options, %struct.cmdline_options* %this, i64 0, i32 0, i32 2
%arraydecay.i.i.i.i43 = bitcast %union.anon* %19 to i8*
%cmp.i.i.i44 = icmp eq i8* %18, %arraydecay.i.i.i.i43
br i1 %cmp.i.i.i44, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit46, label %if.then.i.i45
if.then.i.i45: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit41
tail call void @_ZdlPv(i8* %18) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit46
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit46: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit41, %if.then.i.i45
ret void
}
; Function Attrs: noreturn uwtable
define dso_local void @cleanup_and_die(i32 %i) #4 {
entry:
%0 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !tbaa !9
%1 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @g_progname, align 8, !tbaa !9
%name = getelementptr inbounds %"class.kc::impl_casestring__Str", %"class.kc::impl_casestring__Str"* %1, i64 0, i32 1
%2 = load i8*, i8** %name, align 8, !tbaa !10
%call = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %0, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.2, i64 0, i64 0), i8* %2, i32 %i) #22
tail call void @_ZN2kc5leaveEi(i32 1)
unreachable
}
; Function Attrs: nofree nounwind
declare dso_local i32 @fprintf(%struct._IO_FILE* nocapture, i8* nocapture readonly, ...) local_unnamed_addr #5
; Function Attrs: noreturn uwtable
define dso_local void @_ZN2kc5leaveEi(i32 %status) local_unnamed_addr #4 {
entry:
%0 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i.i = icmp eq %struct._IO_FILE* %0, null
br i1 %tobool.i.i, label %_ZN14kc_filePrinter6fcloseEv.exit.thread.i, label %_ZN14kc_filePrinter6fcloseEv.exit.i
_ZN14kc_filePrinter6fcloseEv.exit.thread.i: ; preds = %entry
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end.i
_ZN14kc_filePrinter6fcloseEv.exit.i: ; preds = %entry
%call.i30.i = tail call i32 @fclose(%struct._IO_FILE* nonnull %0)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp.i = icmp eq i32 %call.i30.i, -1
br i1 %cmp.i, label %if.then.i, label %if.end.i
if.then.i: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit.i
%call1.i = tail call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i to %"class.kc::impl_fileline"*
%call2.i = tail call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.125, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call3.i = tail call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1, %"class.kc::impl_problem"* %call2.i)
%2 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call3.i, i64 0, i32 0
tail call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %2)
br label %if.end.i
if.end.i: ; preds = %if.then.i, %_ZN14kc_filePrinter6fcloseEv.exit.i, %_ZN14kc_filePrinter6fcloseEv.exit.thread.i
%3 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i32.i = icmp eq %struct._IO_FILE* %3, null
br i1 %tobool.i32.i, label %_ZN14kc_filePrinter6fcloseEv.exit36.thread.i, label %_ZN14kc_filePrinter6fcloseEv.exit36.i
_ZN14kc_filePrinter6fcloseEv.exit36.thread.i: ; preds = %if.end.i
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end10.i
_ZN14kc_filePrinter6fcloseEv.exit36.i: ; preds = %if.end.i
%call.i33.i = tail call i32 @fclose(%struct._IO_FILE* nonnull %3)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp5.i = icmp eq i32 %call.i33.i, -1
br i1 %cmp5.i, label %if.then6.i, label %if.end10.i
if.then6.i: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit36.i
%call7.i = tail call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%4 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call7.i to %"class.kc::impl_fileline"*
%call8.i = tail call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.125, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call9.i = tail call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %4, %"class.kc::impl_problem"* %call8.i)
%5 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call9.i, i64 0, i32 0
tail call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %5)
br label %if.end10.i
if.end10.i: ; preds = %if.then6.i, %_ZN14kc_filePrinter6fcloseEv.exit36.i, %_ZN14kc_filePrinter6fcloseEv.exit36.thread.i
%call11.i = tail call i32 @access(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i32 4) #21
%cmp12.i = icmp eq i32 %call11.i, 0
br i1 %cmp12.i, label %if.then13.i, label %if.end19.i
if.then13.i: ; preds = %if.end10.i
%6 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool.i = icmp eq i8 %6, 0
br i1 %tobool.i, label %if.end18.i, label %if.then14.i
if.then14.i: ; preds = %if.then13.i
%call1.i37.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.126, i64 0, i64 0), i64 9)
%call1.i39.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i64 11)
%vtable.i.i = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !19
%vbase.offset.ptr.i.i = getelementptr i8, i8* %vtable.i.i, i64 -24
%7 = bitcast i8* %vbase.offset.ptr.i.i to i64*
%vbase.offset.i.i = load i64, i64* %7, align 8
%add.ptr.i.i = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i.i
%_M_ctype.i.i = getelementptr inbounds i8, i8* %add.ptr.i.i, i64 240
%8 = bitcast i8* %_M_ctype.i.i to %"class.std::ctype"**
%9 = load %"class.std::ctype"*, %"class.std::ctype"** %8, align 8, !tbaa !21
%tobool.i84.i = icmp eq %"class.std::ctype"* %9, null
br i1 %tobool.i84.i, label %if.then.i85.i, label %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i
if.then.i85.i: ; preds = %if.then14.i
tail call void @_ZSt16__throw_bad_castv() #23
unreachable
_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i: ; preds = %if.then14.i
%_M_widen_ok.i.i = getelementptr inbounds %"class.std::ctype", %"class.std::ctype"* %9, i64 0, i32 8
%10 = load i8, i8* %_M_widen_ok.i.i, align 8, !tbaa !23
%tobool.i67.i = icmp eq i8 %10, 0
br i1 %tobool.i67.i, label %if.end.i.i, label %if.then.i68.i
if.then.i68.i: ; preds = %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i
%arrayidx.i.i = getelementptr inbounds %"class.std::ctype", %"class.std::ctype"* %9, i64 0, i32 9, i64 10
%11 = load i8, i8* %arrayidx.i.i, align 1, !tbaa !25
br label %_ZNKSt5ctypeIcE5widenEc.exit.i
if.end.i.i: ; preds = %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit.i
tail call void @_ZNKSt5ctypeIcE13_M_widen_initEv(%"class.std::ctype"* nonnull %9)
%12 = bitcast %"class.std::ctype"* %9 to i8 (%"class.std::ctype"*, i8)***
%vtable.i69.i = load i8 (%"class.std::ctype"*, i8)**, i8 (%"class.std::ctype"*, i8)*** %12, align 8, !tbaa !19
%vfn.i.i = getelementptr inbounds i8 (%"class.std::ctype"*, i8)*, i8 (%"class.std::ctype"*, i8)** %vtable.i69.i, i64 6
%13 = load i8 (%"class.std::ctype"*, i8)*, i8 (%"class.std::ctype"*, i8)** %vfn.i.i, align 8
%call.i70.i = tail call signext i8 %13(%"class.std::ctype"* nonnull %9, i8 signext 10)
br label %_ZNKSt5ctypeIcE5widenEc.exit.i
_ZNKSt5ctypeIcE5widenEc.exit.i: ; preds = %if.end.i.i, %if.then.i68.i
%retval.0.i.i = phi i8 [ %11, %if.then.i68.i ], [ %call.i70.i, %if.end.i.i ]
%call1.i42.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo3putEc(%"class.std::basic_ostream"* nonnull @_ZSt4cout, i8 signext %retval.0.i.i)
%call.i44.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call1.i42.i)
br label %if.end18.i
if.end18.i: ; preds = %_ZNKSt5ctypeIcE5widenEc.exit.i, %if.then13.i
%call.i45.i = tail call i32 @remove(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0)) #21
%cmp.i46.i = icmp eq i32 %call.i45.i, 0
br i1 %cmp.i46.i, label %if.end19.i, label %if.then.i50.i
if.then.i50.i: ; preds = %if.end18.i
tail call void @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.123, i64 0, i64 0)) #22
%call1.i47.i = tail call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%14 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i47.i to %"class.kc::impl_fileline"*
%call2.i48.i = tail call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.124, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call3.i49.i = tail call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %14, %"class.kc::impl_problem"* %call2.i48.i)
%15 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i49.i, i64 0, i32 0
tail call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %15)
br label %if.end19.i
if.end19.i: ; preds = %if.then.i50.i, %if.end18.i, %if.end10.i
%call20.i = tail call i32 @access(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i32 4) #21
%cmp21.i = icmp eq i32 %call20.i, 0
br i1 %cmp21.i, label %if.then22.i, label %_ZN2kcL7cleanupEv.exit
if.then22.i: ; preds = %if.end19.i
%16 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool23.i = icmp eq i8 %16, 0
br i1 %tobool23.i, label %if.end28.i, label %if.then24.i
if.then24.i: ; preds = %if.then22.i
%call1.i53.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.126, i64 0, i64 0), i64 9)
%call1.i55.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i64 9)
%vtable.i57.i = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !19
%vbase.offset.ptr.i58.i = getelementptr i8, i8* %vtable.i57.i, i64 -24
%17 = bitcast i8* %vbase.offset.ptr.i58.i to i64*
%vbase.offset.i59.i = load i64, i64* %17, align 8
%add.ptr.i60.i = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i59.i
%_M_ctype.i71.i = getelementptr inbounds i8, i8* %add.ptr.i60.i, i64 240
%18 = bitcast i8* %_M_ctype.i71.i to %"class.std::ctype"**
%19 = load %"class.std::ctype"*, %"class.std::ctype"** %18, align 8, !tbaa !21
%tobool.i87.i = icmp eq %"class.std::ctype"* %19, null
br i1 %tobool.i87.i, label %if.then.i88.i, label %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit90.i
if.then.i88.i: ; preds = %if.then24.i
tail call void @_ZSt16__throw_bad_castv() #23
unreachable
_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit90.i: ; preds = %if.then24.i
%_M_widen_ok.i74.i = getelementptr inbounds %"class.std::ctype", %"class.std::ctype"* %19, i64 0, i32 8
%20 = load i8, i8* %_M_widen_ok.i74.i, align 8, !tbaa !23
%tobool.i75.i = icmp eq i8 %20, 0
br i1 %tobool.i75.i, label %if.end.i81.i, label %if.then.i77.i
if.then.i77.i: ; preds = %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit90.i
%arrayidx.i76.i = getelementptr inbounds %"class.std::ctype", %"class.std::ctype"* %19, i64 0, i32 9, i64 10
%21 = load i8, i8* %arrayidx.i76.i, align 1, !tbaa !25
br label %_ZNKSt5ctypeIcE5widenEc.exit83.i
if.end.i81.i: ; preds = %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit90.i
tail call void @_ZNKSt5ctypeIcE13_M_widen_initEv(%"class.std::ctype"* nonnull %19)
%22 = bitcast %"class.std::ctype"* %19 to i8 (%"class.std::ctype"*, i8)***
%vtable.i78.i = load i8 (%"class.std::ctype"*, i8)**, i8 (%"class.std::ctype"*, i8)*** %22, align 8, !tbaa !19
%vfn.i79.i = getelementptr inbounds i8 (%"class.std::ctype"*, i8)*, i8 (%"class.std::ctype"*, i8)** %vtable.i78.i, i64 6
%23 = load i8 (%"class.std::ctype"*, i8)*, i8 (%"class.std::ctype"*, i8)** %vfn.i79.i, align 8
%call.i80.i = tail call signext i8 %23(%"class.std::ctype"* nonnull %19, i8 signext 10)
br label %_ZNKSt5ctypeIcE5widenEc.exit83.i
_ZNKSt5ctypeIcE5widenEc.exit83.i: ; preds = %if.end.i81.i, %if.then.i77.i
%retval.0.i82.i = phi i8 [ %21, %if.then.i77.i ], [ %call.i80.i, %if.end.i81.i ]
%call1.i62.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo3putEc(%"class.std::basic_ostream"* nonnull @_ZSt4cout, i8 signext %retval.0.i82.i)
%call.i64.i = tail call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call1.i62.i)
br label %if.end28.i
if.end28.i: ; preds = %_ZNKSt5ctypeIcE5widenEc.exit83.i, %if.then22.i
%call.i.i = tail call i32 @remove(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0)) #21
%cmp.i.i = icmp eq i32 %call.i.i, 0
br i1 %cmp.i.i, label %_ZN2kcL7cleanupEv.exit, label %if.then.i.i
if.then.i.i: ; preds = %if.end28.i
tail call void @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.123, i64 0, i64 0)) #22
%call1.i.i = tail call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%24 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i.i to %"class.kc::impl_fileline"*
%call2.i.i = tail call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.124, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call3.i.i = tail call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %24, %"class.kc::impl_problem"* %call2.i.i)
%25 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i.i, i64 0, i32 0
tail call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %25)
br label %_ZN2kcL7cleanupEv.exit
_ZN2kcL7cleanupEv.exit: ; preds = %if.end19.i, %if.end28.i, %if.then.i.i
%26 = load i8, i8* @gp_no_fatal_problems, align 1, !tbaa !26, !range !18
%tobool = icmp eq i8 %26, 0
br i1 %tobool, label %if.else, label %if.then
if.then: ; preds = %_ZN2kcL7cleanupEv.exit
tail call void @exit(i32 %status) #24
unreachable
if.else: ; preds = %_ZN2kcL7cleanupEv.exit
%cmp = icmp eq i32 %status, 0
%cond5 = select i1 %cmp, i32 1, i32 %status
tail call void @exit(i32 %cond5) #24
unreachable
}
; Function Attrs: noreturn uwtable
define dso_local void @cleanup_and_abort(i32 %i) #4 {
entry:
%cmp = icmp eq i32 %i, 11
%0 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !tbaa !9
br i1 %cmp, label %if.then, label %if.else
if.then: ; preds = %entry
%1 = tail call i64 @fwrite(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.3, i64 0, i64 0), i64 29, i64 1, %struct._IO_FILE* %0) #22
br label %if.end
if.else: ; preds = %entry
%2 = tail call i64 @fwrite(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.4, i64 0, i64 0), i64 34, i64 1, %struct._IO_FILE* %0) #22
br label %if.end
if.end: ; preds = %if.else, %if.then
%3 = load %struct._IO_FILE*, %struct._IO_FILE** @stderr, align 8, !tbaa !9
%4 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @g_progname, align 8, !tbaa !9
%name = getelementptr inbounds %"class.kc::impl_casestring__Str", %"class.kc::impl_casestring__Str"* %4, i64 0, i32 1
%5 = load i8*, i8** %name, align 8, !tbaa !10
%call2 = tail call i32 (%struct._IO_FILE*, i8*, ...) @fprintf(%struct._IO_FILE* %3, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.2, i64 0, i64 0), i8* %5, i32 %i) #22
tail call void @_ZN2kc5leaveEi(i32 1)
unreachable
}
; Function Attrs: norecurse noreturn uwtable
define dso_local i32 @main(i32 %argc, i8** %argv) local_unnamed_addr #6 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%__dnew.i.i.i.i.i2584 = alloca i64, align 8
%__dnew.i.i.i.i.i2481 = alloca i64, align 8
%__dnew.i.i.i.i.i2448 = alloca i64, align 8
%__dnew.i.i.i.i.i2360 = alloca i64, align 8
%__dnew.i.i.i.i.i2319 = alloca i64, align 8
%__dnew.i.i.i.i.i2216 = alloca i64, align 8
%__dnew.i.i.i.i.i2099 = alloca i64, align 8
%__dnew.i.i.i.i.i2046 = alloca i64, align 8
%__dnew.i.i.i.i.i1873 = alloca i64, align 8
%__dnew.i.i.i.i.i1840 = alloca i64, align 8
%__dnew.i.i.i.i.i1789 = alloca i64, align 8
%__dnew.i.i.i.i.i1736 = alloca i64, align 8
%__dnew.i.i.i.i.i1561 = alloca i64, align 8
%__dnew.i.i.i.i.i1528 = alloca i64, align 8
%__dnew.i.i.i.i.i1477 = alloca i64, align 8
%__dnew.i.i.i.i.i1424 = alloca i64, align 8
%__dnew.i.i.i.i.i1237 = alloca i64, align 8
%__dnew.i.i.i.i.i1204 = alloca i64, align 8
%__dnew.i.i.i.i.i1171 = alloca i64, align 8
%__dnew.i.i.i.i.i1118 = alloca i64, align 8
%__dnew.i.i.i.i.i915 = alloca i64, align 8
%__dnew.i.i.i.i.i = alloca i64, align 8
%__dnew.i.i.i.i.i692.i = alloca i64, align 8
%__dnew.i.i.i.i.i662.i = alloca i64, align 8
%__dnew.i.i.i.i.i633.i = alloca i64, align 8
%__dnew.i.i.i.i.i.i = alloca i64, align 8
%warn_options.i = alloca %"class.std::vector", align 8
%ref.tmp.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp30.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp222.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp227.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp235.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp244.i = alloca %"class.std::__cxx11::basic_string", align 8
%tmp.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp292.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp293.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp294.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp295.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp296.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp297.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp298.i = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp194 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp195 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp204 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp205 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp247 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp248 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp257 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp264 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp269 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp270 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp281 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp282 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp323 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp324 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp333 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp341 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp346 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp347 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp358 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp359 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp403 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp404 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp413 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp421 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp426 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp427 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp438 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp439 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp480 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp481 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp490 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp564 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp571 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp572 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp592 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp600 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp607 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp608 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp629 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp637 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp644 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp645 = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp665 = alloca %"class.std::__cxx11::basic_string", align 8
store i32 1, i32* @yydebug, align 4, !tbaa !27
%call = tail call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0), i32 -1)
store %"class.kc::impl_casestring__Str"* %call, %"class.kc::impl_casestring__Str"** @g_progname, align 8, !tbaa !9
%call1 = tail call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL16make_pg_filenameEPKc(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.5, i64 0, i64 0))
store %"class.kc::impl_casestring__Str"* %call1, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
store i8 1, i8* @gp_no_fatal_problems, align 1, !tbaa !26
store i8 0, i8* @pg_uviewshavebeendefined, align 1, !tbaa !26
store i8 0, i8* @pg_rviewshavebeendefined, align 1, !tbaa !26
store i8 0, i8* @pg_storageclasseshavebeendefined, align 1, !tbaa !26
store i32 0, i32* @pg_lineno, align 4, !tbaa !27
store i32 0, i32* @pg_column, align 4, !tbaa !27
store i32 0, i32* @pg_charpos, align 4, !tbaa !27
%0 = load i8*, i8** %argv, align 8, !tbaa !9
%call.i.i = tail call i8* @strrchr(i8* nonnull dereferenceable(1) %0, i32 47) #25
%cmp.i.i = icmp eq i8* %call.i.i, null
%incdec.ptr.i.i = getelementptr inbounds i8, i8* %call.i.i, i64 1
%mybasename.0.i.i = select i1 %cmp.i.i, i8* %0, i8* %incdec.ptr.i.i
%call1.i = tail call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* %mybasename.0.i.i, i32 -1)
store %"class.kc::impl_casestring__Str"* %call1.i, %"class.kc::impl_casestring__Str"** @g_progname, align 8, !tbaa !9
%1 = bitcast %"class.std::vector"* %warn_options.i to i8*
%2 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp.i to i8*
%3 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp.i, i64 0, i32 2
%4 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp.i to %union.anon**
%5 = bitcast %union.anon* %3 to i8*
%_M_p.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp.i, i64 0, i32 0, i32 0
%_M_string_length.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp.i, i64 0, i32 1
%_M_finish.i.i.i = getelementptr inbounds %"class.std::vector", %"class.std::vector"* %warn_options.i, i64 0, i32 0, i32 0, i32 0, i32 1
%_M_end_of_storage.i.i.i = getelementptr inbounds %"class.std::vector", %"class.std::vector"* %warn_options.i, i64 0, i32 0, i32 0, i32 0, i32 2
%6 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp30.i to i8*
%7 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp30.i, i64 0, i32 2
%8 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp30.i to %union.anon**
%9 = bitcast %union.anon* %7 to i8*
%_M_p.i.i.i.i.i448.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp30.i, i64 0, i32 0, i32 0
%_M_string_length.i.i.i.i.i.i452.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp30.i, i64 0, i32 1
%_M_allocated_capacity.i.i.i.i.i467.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp30.i, i64 0, i32 2, i32 0
%_M_start.i.i = getelementptr inbounds %"class.std::vector", %"class.std::vector"* %warn_options.i, i64 0, i32 0, i32 0, i32 0, i32 0
br label %while.cond.i
while.cond.i: ; preds = %while.cond.i.backedge, %entry
%call2.i = call i32 @getopt(i32 %argc, i8** nonnull %argv, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.57, i64 0, i64 0)) #21
switch i32 %call2.i, label %while.cond.i.backedge [
i32 -1, label %while.end186.i
i32 86, label %sw.bb.i
i32 63, label %sw.bb3.i
i32 58, label %sw.bb3.i
i32 104, label %sw.bb3.i
i32 112, label %sw.bb4.i
i32 113, label %sw.bb6.i
i32 118, label %sw.bb10.i
i32 87, label %sw.bb17.i
i32 115, label %sw.bb107.i
i32 102, label %sw.bb109.i
i32 121, label %sw.bb111.i
i32 98, label %sw.bb112.i
i32 99, label %sw.bb115.i
i32 117, label %sw.bb116.i
i32 114, label %sw.bb117.i
i32 100, label %sw.bb118.i
i32 116, label %sw.bb119.i
i32 5, label %sw.bb120.i
i32 109, label %sw.bb121.i
i32 119, label %sw.bb122.i
i32 111, label %sw.bb123.i
i32 110, label %sw.bb124.i
i32 108, label %sw.bb141.i
i32 2, label %sw.bb142.i
i32 3, label %sw.bb143.i
i32 1, label %sw.bb155.i
i32 4, label %sw.bb162.i
i32 101, label %sw.bb163.i
i32 77, label %sw.bb184.i
]
sw.bb.i: ; preds = %while.cond.i
call fastcc void @_ZN2kcL13print_versionEv()
call void @_ZN2kc5leaveEi(i32 0)
unreachable
sw.bb3.i: ; preds = %while.cond.i, %while.cond.i, %while.cond.i
call fastcc void @_ZN2kcL10print_helpEv()
call void @_ZN2kc5leaveEi(i32 0)
unreachable
sw.bb4.i: ; preds = %while.cond.i
%10 = load i8*, i8** @optarg, align 8, !tbaa !9
%11 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 24, i32 1), align 8, !tbaa !28
%call.i.i.i.i = call i64 @strlen(i8* nonnull dereferenceable(1) %10) #21
%call3.i.i.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 24), i64 0, i64 %11, i8* %10, i64 %call.i.i.i.i)
br label %while.cond.i.backedge
sw.bb6.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 2), align 8, !tbaa !29
%12 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool.i = icmp eq i8 %12, 0
br i1 %tobool.i, label %while.cond.i.backedge, label %if.then.i
if.then.i: ; preds = %sw.bb6.i
%call7.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%13 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call7.i to %"class.kc::impl_fileline"*
%call8.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem1SEPKc(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.58, i64 0, i64 0))
%call9.i = call %"class.kc::impl_error_Warning"* @_ZN2kc7WarningEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %13, %"class.kc::impl_problem"* %call8.i)
%14 = getelementptr %"class.kc::impl_error_Warning", %"class.kc::impl_error_Warning"* %call9.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %14)
br label %while.cond.i.backedge
sw.bb10.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16
%15 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 2), align 8, !tbaa !29, !range !18
%tobool11.i = icmp eq i8 %15, 0
br i1 %tobool11.i, label %while.cond.i.backedge, label %if.then12.i
if.then12.i: ; preds = %sw.bb10.i
%call13.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%16 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call13.i to %"class.kc::impl_fileline"*
%call14.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem1SEPKc(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.59, i64 0, i64 0))
%call15.i = call %"class.kc::impl_error_Warning"* @_ZN2kc7WarningEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %16, %"class.kc::impl_problem"* %call14.i)
%17 = getelementptr %"class.kc::impl_error_Warning", %"class.kc::impl_error_Warning"* %call15.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %17)
br label %while.cond.i.backedge
sw.bb17.i: ; preds = %while.cond.i
%18 = load i8*, i8** @optarg, align 8, !tbaa !9
%tobool18.i = icmp eq i8* %18, null
br i1 %tobool18.i, label %if.then19.i, label %if.else.i.i.i
if.then19.i: ; preds = %sw.bb17.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 27), align 8, !tbaa !30
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 28), align 1, !tbaa !31
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 29), align 2, !tbaa !32
br label %while.cond.i.backedge
if.else.i.i.i: ; preds = %sw.bb17.i
call void @llvm.lifetime.start.p0i8(i64 24, i8* nonnull %1) #21
call void @llvm.memset.p0i8.i64(i8* nonnull align 8 dereferenceable(24) %1, i8 0, i64 24, i1 false) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %2) #21
store %union.anon* %3, %union.anon** %4, align 8, !tbaa !33
store i64 0, i64* %_M_string_length.i.i.i.i.i.i.i, align 8, !tbaa !28
store i8 0, i8* %5, align 8, !tbaa !25
invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_(%"class.std::vector"* nonnull %warn_options.i, %"class.std::__cxx11::basic_string"* null, %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp.i)
to label %invoke.cont22.i unwind label %lpad21.i
invoke.cont22.i: ; preds = %if.else.i.i.i
%.pre1258.i = load i8*, i8** %_M_p.i.i.i.i.i.i, align 8, !tbaa !2
%cmp.i.i.i.i = icmp eq i8* %.pre1258.i, %5
br i1 %cmp.i.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i, label %if.then.i.i441.i
if.then.i.i441.i: ; preds = %invoke.cont22.i
call void @_ZdlPv(i8* %.pre1258.i) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i: ; preds = %if.then.i.i441.i, %invoke.cont22.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %2) #21
%.pre1259.i = load i8*, i8** @optarg, align 8, !tbaa !9
br label %while.cond25.i
while.cond25.i: ; preds = %if.end46.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i
%19 = phi i8* [ %.pre1259.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i ], [ %incdec.ptr.i, %if.end46.i ]
%option_count.0.i = phi i32 [ 0, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i ], [ %option_count.1.i, %if.end46.i ]
%20 = load i8, i8* %19, align 1, !tbaa !25
switch i8 %20, label %if.else40.i [
i8 0, label %for.cond.preheader.i
i8 44, label %if.then29.i
]
for.cond.preheader.i: ; preds = %while.cond25.i
%cmp471247.i = icmp slt i32 %option_count.0.i, 0
br i1 %cmp471247.i, label %for.cond.cleanup.i, label %for.body.preheader.i
for.body.preheader.i: ; preds = %for.cond.preheader.i
%21 = add nuw i32 %option_count.0.i, 1
%wide.trip.count.i = zext i32 %21 to i64
br label %for.body.i
if.then29.i: ; preds = %while.cond25.i
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %6) #21
store %union.anon* %7, %union.anon** %8, align 8, !tbaa !33
store i64 0, i64* %_M_string_length.i.i.i.i.i.i452.i, align 8, !tbaa !28
store i8 0, i8* %9, align 8, !tbaa !25
%22 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_finish.i.i.i, align 8, !tbaa !34
%23 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_end_of_storage.i.i.i, align 8, !tbaa !36
%cmp.i.i459.i = icmp eq %"class.std::__cxx11::basic_string"* %22, %23
br i1 %cmp.i.i459.i, label %if.else.i.i474.i, label %if.then.i.i463.i
if.then.i.i463.i: ; preds = %if.then29.i
%24 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %22, i64 0, i32 2
%25 = bitcast %"class.std::__cxx11::basic_string"* %22 to %union.anon**
store %union.anon* %24, %union.anon** %25, align 8, !tbaa !33
%26 = load i8*, i8** %_M_p.i.i.i.i.i448.i, align 8, !tbaa !2
%cmp.i.i.i.i.i.i462.i = icmp eq i8* %26, %9
br i1 %cmp.i.i.i.i.i.i462.i, label %if.then.i.i.i.i.i465.i, label %if.else.i.i.i.i.i469.i
if.then.i.i.i.i.i465.i: ; preds = %if.then.i.i463.i
%arraydecay.i.i.i.i.i.i464.i = bitcast %union.anon* %24 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 1 dereferenceable(16) %arraydecay.i.i.i.i.i.i464.i, i8* nonnull align 8 dereferenceable(16) %9, i64 16, i1 false) #21
br label %invoke.cont35.thread.i
if.else.i.i.i.i.i469.i: ; preds = %if.then.i.i463.i
%_M_p.i32.i.i.i.i.i466.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %22, i64 0, i32 0, i32 0
store i8* %26, i8** %_M_p.i32.i.i.i.i.i466.i, align 8, !tbaa !2
%27 = load i64, i64* %_M_allocated_capacity.i.i.i.i.i467.i, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i.i.i.i468.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %22, i64 0, i32 2, i32 0
store i64 %27, i64* %_M_allocated_capacity.i.i.i.i.i.i468.i, align 8, !tbaa !25
br label %invoke.cont35.thread.i
invoke.cont35.thread.i: ; preds = %if.else.i.i.i.i.i469.i, %if.then.i.i.i.i.i465.i
%_M_string_length.i.i.i.i.i.i471.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %22, i64 0, i32 1
store i64 0, i64* %_M_string_length.i.i.i.i.i.i471.i, align 8, !tbaa !28
store %union.anon* %7, %union.anon** %8, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i.i.i.i.i.i452.i, align 8, !tbaa !28
store i8 0, i8* %9, align 8, !tbaa !25
%incdec.ptr.i.i472.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %22, i64 1
store %"class.std::__cxx11::basic_string"* %incdec.ptr.i.i472.i, %"class.std::__cxx11::basic_string"** %_M_finish.i.i.i, align 8, !tbaa !34
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit481.i
if.else.i.i474.i: ; preds = %if.then29.i
invoke void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_(%"class.std::vector"* nonnull %warn_options.i, %"class.std::__cxx11::basic_string"* %22, %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp30.i)
to label %invoke.cont35.i unwind label %lpad34.i
invoke.cont35.i: ; preds = %if.else.i.i474.i
%.pre1260.i = load i8*, i8** %_M_p.i.i.i.i.i448.i, align 8, !tbaa !2
%cmp.i.i.i479.i = icmp eq i8* %.pre1260.i, %9
br i1 %cmp.i.i.i479.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit481.i, label %if.then.i.i480.i
if.then.i.i480.i: ; preds = %invoke.cont35.i
call void @_ZdlPv(i8* %.pre1260.i) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit481.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit481.i: ; preds = %if.then.i.i480.i, %invoke.cont35.i, %invoke.cont35.thread.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %6) #21
%inc.i = add nsw i32 %option_count.0.i, 1
br label %if.end46.i
lpad21.i: ; preds = %if.else.i.i.i
%28 = landingpad { i8*, i32 }
cleanup
%29 = extractvalue { i8*, i32 } %28, 0
%30 = extractvalue { i8*, i32 } %28, 1
%31 = load i8*, i8** %_M_p.i.i.i.i.i.i, align 8, !tbaa !2
%cmp.i.i.i484.i = icmp eq i8* %31, %5
br i1 %cmp.i.i.i484.i, label %ehcleanup.i, label %if.then.i.i485.i
if.then.i.i485.i: ; preds = %lpad21.i
call void @_ZdlPv(i8* %31) #21
br label %ehcleanup.i
ehcleanup.i: ; preds = %if.then.i.i485.i, %lpad21.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %2) #21
br label %ehcleanup104.i
lpad34.i: ; preds = %if.else.i.i474.i
%32 = landingpad { i8*, i32 }
cleanup
%33 = extractvalue { i8*, i32 } %32, 0
%34 = extractvalue { i8*, i32 } %32, 1
%35 = load i8*, i8** %_M_p.i.i.i.i.i448.i, align 8, !tbaa !2
%cmp.i.i.i489.i = icmp eq i8* %35, %9
br i1 %cmp.i.i.i489.i, label %ehcleanup37.i, label %if.then.i.i490.i
if.then.i.i490.i: ; preds = %lpad34.i
call void @_ZdlPv(i8* %35) #21
br label %ehcleanup37.i
ehcleanup37.i: ; preds = %if.then.i.i490.i, %lpad34.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %6) #21
br label %ehcleanup104.i
if.else40.i: ; preds = %while.cond25.i
%conv41.i = sext i32 %option_count.0.i to i64
%36 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %36, i64 %conv41.i
%_M_string_length.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %36, i64 %conv41.i, i32 1
%37 = load i64, i64* %_M_string_length.i.i.i.i, align 8, !tbaa !28
%add.i.i.i = add i64 %37, 1
%_M_p.i.i.i.i.i502.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %add.ptr.i.i, i64 0, i32 0, i32 0
%38 = load i8*, i8** %_M_p.i.i.i.i.i502.i, align 8, !tbaa !2
%39 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %36, i64 %conv41.i, i32 2
%arraydecay.i.i.i.i.i.i = bitcast %union.anon* %39 to i8*
%cmp.i.i.i.i.i = icmp eq i8* %38, %arraydecay.i.i.i.i.i.i
br i1 %cmp.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i, label %cond.false.i.i.i.i
cond.false.i.i.i.i: ; preds = %if.else40.i
%_M_allocated_capacity.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %36, i64 %conv41.i, i32 2, i32 0
%40 = load i64, i64* %_M_allocated_capacity.i.i.i.i, align 8, !tbaa !25
br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i: ; preds = %cond.false.i.i.i.i, %if.else40.i
%cond.i.i.i.i = phi i64 [ %40, %cond.false.i.i.i.i ], [ 15, %if.else40.i ]
%cmp.i.i503.i = icmp ugt i64 %add.i.i.i, %cond.i.i.i.i
br i1 %cmp.i.i503.i, label %if.then.i.i504.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit.i
if.then.i.i504.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i.i, i64 %37, i64 0, i8* null, i64 1)
to label %.noexc505.i unwind label %lpad43.i
.noexc505.i: ; preds = %if.then.i.i504.i
%.pre.i.i.i = load i8*, i8** %_M_p.i.i.i.i.i502.i, align 8, !tbaa !2
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit.i: ; preds = %.noexc505.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i
%41 = phi i8* [ %.pre.i.i.i, %.noexc505.i ], [ %38, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i ]
%arrayidx.i.i.i = getelementptr inbounds i8, i8* %41, i64 %37
store i8 %20, i8* %arrayidx.i.i.i, align 1, !tbaa !25
store i64 %add.i.i.i, i64* %_M_string_length.i.i.i.i, align 8, !tbaa !28
%42 = load i8*, i8** %_M_p.i.i.i.i.i502.i, align 8, !tbaa !2
%arrayidx.i.i.i.i = getelementptr inbounds i8, i8* %42, i64 %add.i.i.i
store i8 0, i8* %arrayidx.i.i.i.i, align 1, !tbaa !25
br label %if.end46.i
lpad43.i: ; preds = %if.then.i.i504.i
%43 = landingpad { i8*, i32 }
cleanup
%44 = extractvalue { i8*, i32 } %43, 0
%45 = extractvalue { i8*, i32 } %43, 1
br label %ehcleanup104.i
if.end46.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit481.i
%option_count.1.i = phi i32 [ %inc.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit481.i ], [ %option_count.0.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit.i ]
%46 = load i8*, i8** @optarg, align 8, !tbaa !9
%incdec.ptr.i = getelementptr inbounds i8, i8* %46, i64 1
store i8* %incdec.ptr.i, i8** @optarg, align 8, !tbaa !9
br label %while.cond25.i
for.cond.cleanup.i: ; preds = %for.inc.i, %for.cond.preheader.i
%47 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%48 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_finish.i.i.i, align 8, !tbaa !34
%cmp3.i.i.i.i507.i = icmp eq %"class.std::__cxx11::basic_string"* %47, %48
br i1 %cmp3.i.i.i.i507.i, label %invoke.cont.i.i, label %for.body.i.i.i.i.i
for.body.i.i.i.i.i: ; preds = %for.cond.cleanup.i, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i
%__first.addr.04.i.i.i.i.i = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr.i.i.i.i.i, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i ], [ %47, %for.cond.cleanup.i ]
%_M_p.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.04.i.i.i.i.i, i64 0, i32 0, i32 0
%49 = load i8*, i8** %_M_p.i.i.i.i.i.i.i.i.i.i, align 8, !tbaa !2
%50 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.04.i.i.i.i.i, i64 0, i32 2
%arraydecay.i.i.i.i.i.i.i.i.i.i = bitcast %union.anon* %50 to i8*
%cmp.i.i.i.i.i.i.i.i.i = icmp eq i8* %49, %arraydecay.i.i.i.i.i.i.i.i.i.i
br i1 %cmp.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i
if.then.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i
call void @_ZdlPv(i8* %49) #21
br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i
_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i, %for.body.i.i.i.i.i
%incdec.ptr.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.04.i.i.i.i.i, i64 1
%cmp.i.i.i.i508.i = icmp eq %"class.std::__cxx11::basic_string"* %incdec.ptr.i.i.i.i.i, %48
br i1 %cmp.i.i.i.i508.i, label %invoke.cont.loopexit.i.i, label %for.body.i.i.i.i.i
invoke.cont.loopexit.i.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i.i
%.pre.i.i = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
br label %invoke.cont.i.i
invoke.cont.i.i: ; preds = %invoke.cont.loopexit.i.i, %for.cond.cleanup.i
%51 = phi %"class.std::__cxx11::basic_string"* [ %.pre.i.i, %invoke.cont.loopexit.i.i ], [ %47, %for.cond.cleanup.i ]
%tobool.i.i.i.i = icmp eq %"class.std::__cxx11::basic_string"* %51, null
br i1 %tobool.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, label %if.then.i.i.i.i
if.then.i.i.i.i: ; preds = %invoke.cont.i.i
%52 = bitcast %"class.std::__cxx11::basic_string"* %51 to i8*
call void @_ZdlPv(i8* nonnull %52) #21
br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i: ; preds = %if.then.i.i.i.i, %invoke.cont.i.i
call void @llvm.lifetime.end.p0i8(i64 24, i8* nonnull %1) #21
br label %while.cond.i.backedge
for.body.i: ; preds = %for.inc.i, %for.body.preheader.i
%indvars.iv1253.i = phi i64 [ 0, %for.body.preheader.i ], [ %indvars.iv.next1254.i, %for.inc.i ]
%53 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i510.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %53, i64 %indvars.iv1253.i
%call.i511.i = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i510.i, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.60, i64 0, i64 0)) #21
%cmp.i512.i = icmp eq i32 %call.i511.i, 0
br i1 %cmp.i512.i, label %if.then53.i, label %if.else54.i
if.then53.i: ; preds = %for.body.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 27), align 8, !tbaa !30
br label %for.inc.i
lpad50.i: ; preds = %invoke.cont92.i, %invoke.cont90.i, %invoke.cont85.i, %if.else84.i
%54 = landingpad { i8*, i32 }
cleanup
%55 = extractvalue { i8*, i32 } %54, 0
%56 = extractvalue { i8*, i32 } %54, 1
br label %ehcleanup104.i
if.else54.i: ; preds = %for.body.i
%57 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i514.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %57, i64 %indvars.iv1253.i
%call.i521.i = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i514.i, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.61, i64 0, i64 0)) #21
%cmp.i522.i = icmp eq i32 %call.i521.i, 0
br i1 %cmp.i522.i, label %if.then59.i, label %if.else60.i
if.then59.i: ; preds = %if.else54.i
store i8 0, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 27), align 8, !tbaa !30
br label %for.inc.i
if.else60.i: ; preds = %if.else54.i
%58 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i524.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %58, i64 %indvars.iv1253.i
%call.i531.i = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i524.i, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.62, i64 0, i64 0)) #21
%cmp.i532.i = icmp eq i32 %call.i531.i, 0
br i1 %cmp.i532.i, label %if.then65.i, label %if.else66.i
if.then65.i: ; preds = %if.else60.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 28), align 1, !tbaa !31
br label %for.inc.i
if.else66.i: ; preds = %if.else60.i
%59 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i534.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %59, i64 %indvars.iv1253.i
%call.i541.i = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i534.i, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.63, i64 0, i64 0)) #21
%cmp.i542.i = icmp eq i32 %call.i541.i, 0
br i1 %cmp.i542.i, label %if.then71.i, label %if.else72.i
if.then71.i: ; preds = %if.else66.i
store i8 0, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 28), align 1, !tbaa !31
br label %for.inc.i
if.else72.i: ; preds = %if.else66.i
%60 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i544.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %60, i64 %indvars.iv1253.i
%call.i551.i = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i544.i, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.64, i64 0, i64 0)) #21
%cmp.i552.i = icmp eq i32 %call.i551.i, 0
br i1 %cmp.i552.i, label %if.then77.i, label %if.else78.i
if.then77.i: ; preds = %if.else72.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 29), align 2, !tbaa !32
br label %for.inc.i
if.else78.i: ; preds = %if.else72.i
%61 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%add.ptr.i554.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %61, i64 %indvars.iv1253.i
%call.i561.i = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull %add.ptr.i554.i, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.65, i64 0, i64 0)) #21
%cmp.i562.i = icmp eq i32 %call.i561.i, 0
br i1 %cmp.i562.i, label %if.then83.i, label %if.else84.i
if.then83.i: ; preds = %if.else78.i
store i8 0, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 29), align 2, !tbaa !32
br label %for.inc.i
if.else84.i: ; preds = %if.else78.i
%call86.i = invoke %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
to label %invoke.cont85.i unwind label %lpad50.i
invoke.cont85.i: ; preds = %if.else84.i
%62 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%_M_p.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %62, i64 %indvars.iv1253.i, i32 0, i32 0
%63 = load i8*, i8** %_M_p.i.i.i, align 8, !tbaa !2
%call91.i = invoke %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.66, i64 0, i64 0), i8* %63)
to label %invoke.cont90.i unwind label %lpad50.i
invoke.cont90.i: ; preds = %invoke.cont85.i
%64 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call86.i to %"class.kc::impl_fileline"*
%call93.i = invoke %"class.kc::impl_error_Warning"* @_ZN2kc7WarningEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %64, %"class.kc::impl_problem"* %call91.i)
to label %invoke.cont92.i unwind label %lpad50.i
invoke.cont92.i: ; preds = %invoke.cont90.i
%65 = getelementptr %"class.kc::impl_error_Warning", %"class.kc::impl_error_Warning"* %call93.i, i64 0, i32 0
invoke void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %65)
to label %for.inc.i unwind label %lpad50.i
for.inc.i: ; preds = %invoke.cont92.i, %if.then83.i, %if.then77.i, %if.then71.i, %if.then65.i, %if.then59.i, %if.then53.i
%indvars.iv.next1254.i = add nuw nsw i64 %indvars.iv1253.i, 1
%exitcond1255.i = icmp eq i64 %indvars.iv.next1254.i, %wide.trip.count.i
br i1 %exitcond1255.i, label %for.cond.cleanup.i, label %for.body.i
ehcleanup104.i: ; preds = %lpad50.i, %lpad43.i, %ehcleanup37.i, %ehcleanup.i
%ehselector.slot.3.i = phi i32 [ %30, %ehcleanup.i ], [ %34, %ehcleanup37.i ], [ %45, %lpad43.i ], [ %56, %lpad50.i ]
%exn.slot.3.i = phi i8* [ %29, %ehcleanup.i ], [ %33, %ehcleanup37.i ], [ %44, %lpad43.i ], [ %55, %lpad50.i ]
%66 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
%67 = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_finish.i.i.i, align 8, !tbaa !34
%cmp3.i.i.i.i579.i = icmp eq %"class.std::__cxx11::basic_string"* %66, %67
br i1 %cmp3.i.i.i.i579.i, label %invoke.cont.i592.i, label %for.body.i.i.i.i584.i
for.body.i.i.i.i584.i: ; preds = %ehcleanup104.i, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i588.i
%__first.addr.04.i.i.i.i580.i = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr.i.i.i.i586.i, %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i588.i ], [ %66, %ehcleanup104.i ]
%_M_p.i.i.i.i.i.i.i.i.i581.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.04.i.i.i.i580.i, i64 0, i32 0, i32 0
%68 = load i8*, i8** %_M_p.i.i.i.i.i.i.i.i.i581.i, align 8, !tbaa !2
%69 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.04.i.i.i.i580.i, i64 0, i32 2
%arraydecay.i.i.i.i.i.i.i.i.i582.i = bitcast %union.anon* %69 to i8*
%cmp.i.i.i.i.i.i.i.i583.i = icmp eq i8* %68, %arraydecay.i.i.i.i.i.i.i.i.i582.i
br i1 %cmp.i.i.i.i.i.i.i.i583.i, label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i588.i, label %if.then.i.i.i.i.i.i.i585.i
if.then.i.i.i.i.i.i.i585.i: ; preds = %for.body.i.i.i.i584.i
call void @_ZdlPv(i8* %68) #21
br label %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i588.i
_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i588.i: ; preds = %if.then.i.i.i.i.i.i.i585.i, %for.body.i.i.i.i584.i
%incdec.ptr.i.i.i.i586.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.04.i.i.i.i580.i, i64 1
%cmp.i.i.i.i587.i = icmp eq %"class.std::__cxx11::basic_string"* %incdec.ptr.i.i.i.i586.i, %67
br i1 %cmp.i.i.i.i587.i, label %invoke.cont.loopexit.i590.i, label %for.body.i.i.i.i584.i
invoke.cont.loopexit.i590.i: ; preds = %_ZSt8_DestroyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvPT_.exit.i.i.i.i588.i
%.pre.i589.i = load %"class.std::__cxx11::basic_string"*, %"class.std::__cxx11::basic_string"** %_M_start.i.i, align 8, !tbaa !37
br label %invoke.cont.i592.i
invoke.cont.i592.i: ; preds = %invoke.cont.loopexit.i590.i, %ehcleanup104.i
%70 = phi %"class.std::__cxx11::basic_string"* [ %.pre.i589.i, %invoke.cont.loopexit.i590.i ], [ %66, %ehcleanup104.i ]
%tobool.i.i.i591.i = icmp eq %"class.std::__cxx11::basic_string"* %70, null
br i1 %tobool.i.i.i591.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit594.i, label %if.then.i.i.i593.i
if.then.i.i.i593.i: ; preds = %invoke.cont.i592.i
%71 = bitcast %"class.std::__cxx11::basic_string"* %70 to i8*
call void @_ZdlPv(i8* nonnull %71) #21
br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit594.i
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit594.i: ; preds = %if.then.i.i.i593.i, %invoke.cont.i592.i
call void @llvm.lifetime.end.p0i8(i64 24, i8* nonnull %1) #21
br label %ehcleanup384.i
sw.bb107.i: ; preds = %while.cond.i
%72 = load i8*, i8** @optarg, align 8, !tbaa !9
%73 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28
%call.i.i.i595.i = call i64 @strlen(i8* nonnull dereferenceable(1) %72) #21
%call3.i.i596.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23), i64 0, i64 %73, i8* %72, i64 %call.i.i.i595.i)
br label %while.cond.i.backedge
sw.bb109.i: ; preds = %while.cond.i
%74 = load i8*, i8** @optarg, align 8, !tbaa !9
%75 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28
%call.i.i.i597.i = call i64 @strlen(i8* nonnull dereferenceable(1) %74) #21
%call3.i.i598.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22), i64 0, i64 %75, i8* %74, i64 %call.i.i.i597.i)
br label %while.cond.i.backedge
sw.bb111.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 15), align 8, !tbaa !38
br label %while.cond.i.backedge
sw.bb112.i: ; preds = %while.cond.i
%76 = load i8*, i8** @optarg, align 8, !tbaa !9
%tobool113.i = icmp eq i8* %76, null
%cond.i = select i1 %tobool113.i, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.67, i64 0, i64 0), i8* %76
%77 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 1), align 8, !tbaa !28
%call.i.i.i599.i = call i64 @strlen(i8* nonnull dereferenceable(1) %cond.i) #21
%call3.i.i600.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14), i64 0, i64 %77, i8* %cond.i, i64 %call.i.i.i599.i)
br label %while.cond.i.backedge
sw.bb115.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 4), align 2, !tbaa !39
br label %while.cond.i.backedge
sw.bb116.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 5), align 1, !tbaa !40
br label %while.cond.i.backedge
sw.bb117.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 6), align 4, !tbaa !41
br label %while.cond.i.backedge
sw.bb118.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 7), align 1, !tbaa !42
br label %while.cond.i.backedge
sw.bb119.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 8), align 2, !tbaa !43
br label %while.cond.i.backedge
sw.bb120.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 9), align 1, !tbaa !44
br label %while.cond.i.backedge
sw.bb121.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 10), align 8, !tbaa !45
br label %while.cond.i.backedge
sw.bb122.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 10), align 8, !tbaa !45
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 11), align 1, !tbaa !46
br label %while.cond.i.backedge
sw.bb123.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 16), align 1, !tbaa !47
br label %while.cond.i.backedge
sw.bb124.i: ; preds = %while.cond.i
%78 = load i8*, i8** @optarg, align 8, !tbaa !9
%79 = load i8, i8* %78, align 1, !tbaa !25
switch i8 %79, label %if.then135.i [
i8 121, label %if.end139.i
i8 110, label %if.end139.i
i8 112, label %if.end139.i
]
if.then135.i: ; preds = %sw.bb124.i
%call136.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%80 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call136.i to %"class.kc::impl_fileline"*
%call137.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem1SEPKc(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.68, i64 0, i64 0))
%call138.i = call %"class.kc::impl_error_Warning"* @_ZN2kc7WarningEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %80, %"class.kc::impl_problem"* %call137.i)
%81 = getelementptr %"class.kc::impl_error_Warning", %"class.kc::impl_error_Warning"* %call138.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %81)
%.pre1256.i = load i8*, i8** @optarg, align 8, !tbaa !9
%.pre1257.i = load i8, i8* %.pre1256.i, align 1, !tbaa !25
br label %if.end139.i
if.end139.i: ; preds = %if.then135.i, %sw.bb124.i, %sw.bb124.i, %sw.bb124.i
%82 = phi i8 [ %79, %sw.bb124.i ], [ %79, %sw.bb124.i ], [ %79, %sw.bb124.i ], [ %.pre1257.i, %if.then135.i ]
store i8 %82, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 12), align 2, !tbaa !48
br label %while.cond.i.backedge
sw.bb141.i: ; preds = %while.cond.i
store i8 0, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 17), align 2, !tbaa !49
br label %while.cond.i.backedge
sw.bb142.i: ; preds = %while.cond.i
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.69, i64 0, i64 0), i8** @pg_line, align 8, !tbaa !9
br label %while.cond.i.backedge
sw.bb143.i: ; preds = %while.cond.i
%call144.i = call i8* @getcwd(i8* null, i64 0) #21
%83 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 1), align 8, !tbaa !28
%call.i.i.i601.i = call i64 @strlen(i8* nonnull dereferenceable(1) %call144.i) #21
%call3.i.i602.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26), i64 0, i64 %83, i8* %call144.i, i64 %call.i.i.i601.i)
call void @free(i8* %call144.i) #21
%84 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 1), align 8, !tbaa !28
%cmp.i603.i = icmp eq i64 %84, 0
br i1 %cmp.i603.i, label %while.cond.i.backedge, label %land.lhs.true147.i
land.lhs.true147.i: ; preds = %sw.bb143.i
%sub.i = add i64 %84, -1
%85 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 0, i32 0), align 8, !tbaa !2
%arrayidx.i.i = getelementptr inbounds i8, i8* %85, i64 %sub.i
%86 = load i8, i8* %arrayidx.i.i, align 1, !tbaa !25
%cmp151.i = icmp eq i8 %86, 47
br i1 %cmp151.i, label %while.cond.i.backedge, label %if.then152.i
if.then152.i: ; preds = %land.lhs.true147.i
%add.i.i604.i = add i64 %84, 1
%cmp.i.i.i.i605.i = icmp eq i8* %85, bitcast (%union.anon* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 2) to i8*)
%87 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 2, i32 0), align 8
%spec.select.i = select i1 %cmp.i.i.i.i605.i, i64 15, i64 %87
%cmp.i.i608.i = icmp ugt i64 %add.i.i604.i, %spec.select.i
br i1 %cmp.i.i608.i, label %if.then.i.i611.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit614.i
if.then.i.i611.i: ; preds = %if.then152.i
call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(%"class.std::__cxx11::basic_string"* nonnull getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26), i64 %84, i64 0, i8* null, i64 1)
%.pre.i.i610.i = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 0, i32 0), align 8, !tbaa !2
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit614.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit614.i: ; preds = %if.then.i.i611.i, %if.then152.i
%88 = phi i8* [ %.pre.i.i610.i, %if.then.i.i611.i ], [ %85, %if.then152.i ]
%arrayidx.i.i612.i = getelementptr inbounds i8, i8* %88, i64 %84
store i8 47, i8* %arrayidx.i.i612.i, align 1, !tbaa !25
store i64 %add.i.i604.i, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 1), align 8, !tbaa !28
%89 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 26, i32 0, i32 0), align 8, !tbaa !2
%arrayidx.i.i.i613.i = getelementptr inbounds i8, i8* %89, i64 %add.i.i604.i
store i8 0, i8* %arrayidx.i.i.i613.i, align 1, !tbaa !25
br label %while.cond.i.backedge
sw.bb155.i: ; preds = %while.cond.i
%90 = load i8*, i8** @optarg, align 8, !tbaa !9
%tobool156.i = icmp eq i8* %90, null
%cond160.i = select i1 %tobool156.i, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.70, i64 0, i64 0), i8* %90
%91 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 20, i32 1), align 8, !tbaa !28
%call.i.i.i615.i = call i64 @strlen(i8* nonnull dereferenceable(1) %cond160.i) #21
%call3.i.i616.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 20), i64 0, i64 %91, i8* %cond160.i, i64 %call.i.i.i615.i)
br label %while.cond.i.backedge
sw.bb162.i: ; preds = %while.cond.i
store i8 1, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 18), align 1, !tbaa !50
br label %while.cond.i.backedge
sw.bb163.i: ; preds = %while.cond.i
%92 = load i8*, i8** @optarg, align 8, !tbaa !9
%93 = load i8, i8* %92, align 1, !tbaa !25
%cmp166.i = icmp eq i8 %93, 45
br i1 %cmp166.i, label %if.then178.i, label %lor.lhs.false.i
lor.lhs.false.i: ; preds = %sw.bb163.i
%call167.i = call i64 @strlen(i8* nonnull %92) #25
%sub168.i = add i64 %call167.i, -1
%arrayidx169.i = getelementptr inbounds i8, i8* %92, i64 %sub168.i
%94 = load i8, i8* %arrayidx169.i, align 1, !tbaa !25
%cmp171.i = icmp eq i8 %94, 107
br i1 %cmp171.i, label %land.lhs.true172.i, label %if.end182.i
land.lhs.true172.i: ; preds = %lor.lhs.false.i
%sub174.i = add i64 %call167.i, -2
%arrayidx175.i = getelementptr inbounds i8, i8* %92, i64 %sub174.i
%95 = load i8, i8* %arrayidx175.i, align 1, !tbaa !25
%cmp177.i = icmp eq i8 %95, 46
br i1 %cmp177.i, label %if.then178.i, label %if.end182.i
if.then178.i: ; preds = %land.lhs.true172.i, %sw.bb163.i
%call179.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%96 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call179.i to %"class.kc::impl_fileline"*
%97 = load i8*, i8** @optarg, align 8, !tbaa !9
%call180.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem3SEPKcS1_S1_(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.71, i64 0, i64 0), i8* %97, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.72, i64 0, i64 0))
%call181.i = call %"class.kc::impl_error_Warning"* @_ZN2kc7WarningEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %96, %"class.kc::impl_problem"* %call180.i)
%98 = getelementptr %"class.kc::impl_error_Warning", %"class.kc::impl_error_Warning"* %call181.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %98)
%.pre.i = load i8*, i8** @optarg, align 8, !tbaa !9
br label %if.end182.i
if.end182.i: ; preds = %if.then178.i, %land.lhs.true172.i, %lor.lhs.false.i
%99 = phi i8* [ %.pre.i, %if.then178.i ], [ %92, %land.lhs.true172.i ], [ %92, %lor.lhs.false.i ]
%100 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 21, i32 1), align 8, !tbaa !28
%call.i.i.i617.i = call i64 @strlen(i8* nonnull dereferenceable(1) %99) #21
%call3.i.i618.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 21), i64 0, i64 %100, i8* %99, i64 %call.i.i.i617.i)
br label %while.cond.i.backedge
sw.bb184.i: ; preds = %while.cond.i
%101 = load i8*, i8** @optarg, align 8, !tbaa !9
%102 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 25, i32 1), align 8, !tbaa !28
%call.i.i.i619.i = call i64 @strlen(i8* nonnull dereferenceable(1) %101) #21
%call3.i.i620.i = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 25), i64 0, i64 %102, i8* %101, i64 %call.i.i.i619.i)
br label %while.cond.i.backedge
while.cond.i.backedge: ; preds = %sw.bb184.i, %if.end182.i, %sw.bb162.i, %sw.bb155.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc.exit614.i, %land.lhs.true147.i, %sw.bb143.i, %sw.bb142.i, %sw.bb141.i, %if.end139.i, %sw.bb123.i, %sw.bb122.i, %sw.bb121.i, %sw.bb120.i, %sw.bb119.i, %sw.bb118.i, %sw.bb117.i, %sw.bb116.i, %sw.bb115.i, %sw.bb112.i, %sw.bb111.i, %sw.bb109.i, %sw.bb107.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i, %if.then19.i, %if.then12.i, %sw.bb10.i, %if.then.i, %sw.bb6.i, %sw.bb4.i, %while.cond.i
br label %while.cond.i
while.end186.i: ; preds = %while.cond.i
%103 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 4), align 2, !tbaa !39, !range !18
%tobool187.i = icmp eq i8 %103, 0
%104 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 7), align 1
%tobool189.i = icmp eq i8 %104, 0
%or.cond.i = or i1 %tobool187.i, %tobool189.i
br i1 %or.cond.i, label %if.then190.i, label %if.end191.i
if.then190.i: ; preds = %while.end186.i
store i8 0, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 8), align 2, !tbaa !43
br label %if.end191.i
if.end191.i: ; preds = %if.then190.i, %while.end186.i
%105 = load i32, i32* @optind, align 4, !tbaa !27
%cmp1941245.i = icmp slt i32 %105, %argc
br i1 %cmp1941245.i, label %for.body196.lr.ph.i, label %for.cond.cleanup195.i
for.body196.lr.ph.i: ; preds = %if.end191.i
%106 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp222.i to i8*
%107 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp222.i, i64 0, i32 2
%108 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp222.i to %union.anon**
%109 = bitcast i64* %__dnew.i.i.i.i.i.i to i8*
%110 = bitcast %union.anon* %107 to i8*
%_M_p.i18.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp222.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i.i.i.i625.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp222.i, i64 0, i32 2, i32 0
%_M_string_length.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp222.i, i64 0, i32 1
%111 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp227.i to i8*
%112 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp227.i, i64 0, i32 2
%113 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp227.i to %union.anon**
%114 = bitcast i64* %__dnew.i.i.i.i.i633.i to i8*
%115 = bitcast %union.anon* %112 to i8*
%_M_p.i18.i.i.i.i.i637.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp227.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i.i.i.i638.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp227.i, i64 0, i32 2, i32 0
%_M_string_length.i.i.i.i.i.i.i644.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp227.i, i64 0, i32 1
%116 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp235.i to i8*
%117 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp235.i, i64 0, i32 2
%118 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp235.i to %union.anon**
%119 = bitcast i64* %__dnew.i.i.i.i.i662.i to i8*
%120 = bitcast %union.anon* %117 to i8*
%_M_p.i18.i.i.i.i.i666.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp235.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i.i.i.i667.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp235.i, i64 0, i32 2, i32 0
%_M_string_length.i.i.i.i.i.i.i673.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp235.i, i64 0, i32 1
%121 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp244.i to i8*
%122 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp244.i, i64 0, i32 2
%123 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp244.i to %union.anon**
%124 = bitcast i64* %__dnew.i.i.i.i.i692.i to i8*
%125 = bitcast %union.anon* %122 to i8*
%_M_p.i18.i.i.i.i.i696.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp244.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i.i.i.i697.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp244.i, i64 0, i32 2, i32 0
%_M_string_length.i.i.i.i.i.i.i703.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp244.i, i64 0, i32 1
%126 = bitcast %"class.std::__cxx11::basic_string"* %tmp.i to i8*
%127 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp292.i to i8*
%128 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp293.i to i8*
%129 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp294.i to i8*
%130 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp295.i to i8*
%131 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp296.i to i8*
%132 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp297.i to i8*
%133 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp298.i to i8*
%_M_string_length.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp298.i, i64 0, i32 1
%134 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp297.i, i64 0, i32 2
%135 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp297.i to %union.anon**
%_M_p.i32.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp297.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i752.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp297.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i.i = bitcast %union.anon* %134 to i8*
%_M_string_length.i.i.i754.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp297.i, i64 0, i32 1
%136 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp296.i, i64 0, i32 2
%137 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp296.i to %union.anon**
%_M_p.i32.i.i763.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp296.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i765.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp296.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i761.i = bitcast %union.anon* %136 to i8*
%_M_string_length.i.i2.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp296.i, i64 0, i32 1
%138 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp295.i, i64 0, i32 2
%139 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp295.i to %union.anon**
%_M_p.i32.i.i780.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp295.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i782.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp295.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i778.i = bitcast %union.anon* %138 to i8*
%_M_string_length.i.i.i785.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp295.i, i64 0, i32 1
%140 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp294.i, i64 0, i32 2
%141 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp294.i to %union.anon**
%_M_p.i32.i.i796.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp294.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i798.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp294.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i794.i = bitcast %union.anon* %140 to i8*
%_M_string_length.i.i2.i801.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp294.i, i64 0, i32 1
%142 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp293.i, i64 0, i32 2
%143 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp293.i to %union.anon**
%_M_p.i32.i.i815.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp293.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i817.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp293.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i813.i = bitcast %union.anon* %142 to i8*
%_M_string_length.i.i.i820.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp293.i, i64 0, i32 1
%144 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp292.i, i64 0, i32 2
%145 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp292.i to %union.anon**
%_M_p.i32.i.i831.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp292.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i833.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp292.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i829.i = bitcast %union.anon* %144 to i8*
%_M_string_length.i.i2.i836.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp292.i, i64 0, i32 1
%146 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %tmp.i, i64 0, i32 2
%147 = bitcast %"class.std::__cxx11::basic_string"* %tmp.i to %union.anon**
%_M_p.i32.i.i850.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %tmp.i, i64 0, i32 0, i32 0
%_M_allocated_capacity.i.i.i852.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %tmp.i, i64 0, i32 2, i32 0
%arraydecay.i.i.i848.i = bitcast %union.anon* %146 to i8*
%_M_string_length.i.i.i855.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %tmp.i, i64 0, i32 1
%_M_p.i.i.i.i896.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp298.i, i64 0, i32 0, i32 0
%148 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp298.i, i64 0, i32 2
%arraydecay.i.i.i.i897.i = bitcast %union.anon* %148 to i8*
%149 = sext i32 %105 to i64
br label %for.body196.i
for.cond.cleanup195.i: ; preds = %if.end355.i, %if.end191.i
%150 = load i8, i8* @gp_no_fatal_problems, align 1, !tbaa !26, !range !18
%tobool361.i = icmp eq i8 %150, 0
br i1 %tobool361.i, label %if.else381.i, label %if.then362.i
for.body196.i: ; preds = %if.end355.i, %for.body196.lr.ph.i
%indvars.iv.i = phi i64 [ %149, %for.body196.lr.ph.i ], [ %indvars.iv.next.i, %if.end355.i ]
%arrayidx197.i = getelementptr inbounds i8*, i8** %argv, i64 %indvars.iv.i
%151 = load i8*, i8** %arrayidx197.i, align 8, !tbaa !9
%call198.i = call i64 @strlen(i8* nonnull dereferenceable(1) %151) #25
%call.i621.i = call i8* @strrchr(i8* nonnull dereferenceable(1) %151, i32 47) #25
%cmp.i622.i = icmp eq i8* %call.i621.i, null
%incdec.ptr.i623.i = getelementptr inbounds i8, i8* %call.i621.i, i64 1
%mybasename.0.i624.i = select i1 %cmp.i622.i, i8* %151, i8* %incdec.ptr.i623.i
%sub204.i = add i64 %call198.i, -1
%arrayidx205.i = getelementptr inbounds i8, i8* %151, i64 %sub204.i
%152 = load i8, i8* %arrayidx205.i, align 1, !tbaa !25
%cmp207.i = icmp eq i8 %152, 107
br i1 %cmp207.i, label %if.else221.i, label %land.lhs.true208.i
land.lhs.true208.i: ; preds = %for.body196.i
%sub211.i = add i64 %call198.i, -2
%arrayidx212.i = getelementptr inbounds i8, i8* %151, i64 %sub211.i
%153 = load i8, i8* %arrayidx212.i, align 1, !tbaa !25
%cmp214.i = icmp eq i8 %153, 46
br i1 %cmp214.i, label %if.then215.i, label %if.else221.i
if.then215.i: ; preds = %land.lhs.true208.i
%call216.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%154 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call216.i to %"class.kc::impl_fileline"*
%155 = load i8*, i8** %arrayidx197.i, align 8, !tbaa !9
%call219.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.73, i64 0, i64 0), i8* %155)
%call220.i = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %154, %"class.kc::impl_problem"* %call219.i)
%156 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call220.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %156)
br label %if.end355.i
if.else221.i: ; preds = %land.lhs.true208.i, %for.body196.i
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %106) #21
store %union.anon* %107, %union.anon** %108, align 8, !tbaa !33, !alias.scope !51
%157 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !51
%158 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !51
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %109) #21, !noalias !51
store i64 %158, i64* %__dnew.i.i.i.i.i.i, align 8, !tbaa !54, !noalias !51
%cmp3.i.i.i.i.i.i = icmp ugt i64 %158, 15
br i1 %cmp3.i.i.i.i.i.i, label %if.then4.i.i.i.i.i.i, label %if.end6.i.i.i.i.i.i
if.then4.i.i.i.i.i.i: ; preds = %if.else221.i
%call5.i.i.i14.i.i.i = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp222.i, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i.i, i64 0)
store i8* %call5.i.i.i14.i.i.i, i8** %_M_p.i18.i.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !51
%159 = load i64, i64* %__dnew.i.i.i.i.i.i, align 8, !tbaa !54, !noalias !51
store i64 %159, i64* %_M_allocated_capacity.i.i.i.i.i.i625.i, align 8, !tbaa !25, !alias.scope !51
br label %if.end6.i.i.i.i.i.i
if.end6.i.i.i.i.i.i: ; preds = %if.then4.i.i.i.i.i.i, %if.else221.i
%160 = phi i8* [ %call5.i.i.i14.i.i.i, %if.then4.i.i.i.i.i.i ], [ %110, %if.else221.i ]
switch i64 %158, label %if.end.i.i.i.i.i.i.i.i.i [
i64 1, label %if.then.i.i.i.i.i.i.i626.i
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i.i
]
if.then.i.i.i.i.i.i.i626.i: ; preds = %if.end6.i.i.i.i.i.i
%161 = load i8, i8* %157, align 1, !tbaa !25
store i8 %161, i8* %160, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i.i
if.end.i.i.i.i.i.i.i.i.i: ; preds = %if.end6.i.i.i.i.i.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %160, i8* align 1 %157, i64 %158, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i.i: ; preds = %if.end.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i626.i, %if.end6.i.i.i.i.i.i
%162 = load i64, i64* %__dnew.i.i.i.i.i.i, align 8, !tbaa !54, !noalias !51
store i64 %162, i64* %_M_string_length.i.i.i.i.i.i.i.i, align 8, !tbaa !28, !alias.scope !51
%163 = load i8*, i8** %_M_p.i18.i.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !51
%arrayidx.i.i.i.i.i.i.i = getelementptr inbounds i8, i8* %163, i64 %162
store i8 0, i8* %arrayidx.i.i.i.i.i.i.i, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %109) #21, !noalias !51
%164 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i.i, align 8, !tbaa !28, !alias.scope !51
%sub3.i.i.i.i = sub i64 4611686018427387903, %164
%cmp.i.i.i628.i = icmp ult i64 %sub3.i.i.i.i, 3
br i1 %cmp.i.i.i628.i, label %if.then.i.i.i629.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i.i
if.then.i.i.i629.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i.i unwind label %lpad.i.loopexit.split-lp.i
.noexc.i.i: ; preds = %if.then.i.i.i629.i
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i.i
%call2.i2.i.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp222.i, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.74, i64 0, i64 0), i64 3)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit.i unwind label %lpad.i.loopexit.i
lpad.i.loopexit.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i.i
%lpad.loopexit.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i.i
lpad.i.loopexit.split-lp.i: ; preds = %if.then.i.i.i629.i
%lpad.loopexit.split-lp.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i.i
lpad.i.i: ; preds = %lpad.i.loopexit.split-lp.i, %lpad.i.loopexit.i
%lpad.phi.i = phi { i8*, i32 } [ %lpad.loopexit.i, %lpad.i.loopexit.i ], [ %lpad.loopexit.split-lp.i, %lpad.i.loopexit.split-lp.i ]
%165 = load i8*, i8** %_M_p.i18.i.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !51
%cmp.i.i.i.i631.i = icmp eq i8* %165, %110
br i1 %cmp.i.i.i.i631.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i, label %if.then.i.i3.i.i
if.then.i.i3.i.i: ; preds = %lpad.i.i
call void @_ZdlPv(i8* %165) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i: ; preds = %if.then.i.i3.i.i, %lpad.i.i
resume { i8*, i32 } %lpad.phi.i
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i.i
%166 = load i8*, i8** %_M_p.i18.i.i.i.i.i.i, align 8, !tbaa !2
%call224.i = call i32 @strcmp(i8* nonnull dereferenceable(1) %mybasename.0.i624.i, i8* nonnull dereferenceable(1) %166) #25
%cmp225.i = icmp eq i32 %call224.i, 0
br i1 %cmp225.i, label %cleanup.done284.i, label %lor.lhs.false226.i
lor.lhs.false226.i: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit.i
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %111) #21
store %union.anon* %112, %union.anon** %113, align 8, !tbaa !33, !alias.scope !55
%167 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !55
%168 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !55
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %114) #21, !noalias !55
store i64 %168, i64* %__dnew.i.i.i.i.i633.i, align 8, !tbaa !54, !noalias !55
%cmp3.i.i.i.i.i634.i = icmp ugt i64 %168, 15
br i1 %cmp3.i.i.i.i.i634.i, label %if.then4.i.i.i.i.i639.i, label %if.end6.i.i.i.i.i641.i
if.then4.i.i.i.i.i639.i: ; preds = %lor.lhs.false226.i
%call5.i.i.i14.i.i636659.i = invoke i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp227.i, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i633.i, i64 0)
to label %call5.i.i.i14.i.i636.noexc.i unwind label %lpad228.i
call5.i.i.i14.i.i636.noexc.i: ; preds = %if.then4.i.i.i.i.i639.i
store i8* %call5.i.i.i14.i.i636659.i, i8** %_M_p.i18.i.i.i.i.i637.i, align 8, !tbaa !2, !alias.scope !55
%169 = load i64, i64* %__dnew.i.i.i.i.i633.i, align 8, !tbaa !54, !noalias !55
store i64 %169, i64* %_M_allocated_capacity.i.i.i.i.i.i638.i, align 8, !tbaa !25, !alias.scope !55
br label %if.end6.i.i.i.i.i641.i
if.end6.i.i.i.i.i641.i: ; preds = %call5.i.i.i14.i.i636.noexc.i, %lor.lhs.false226.i
%170 = phi i8* [ %call5.i.i.i14.i.i636659.i, %call5.i.i.i14.i.i636.noexc.i ], [ %115, %lor.lhs.false226.i ]
switch i64 %168, label %if.end.i.i.i.i.i.i.i.i643.i [
i64 1, label %if.then.i.i.i.i.i.i.i642.i
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i649.i
]
if.then.i.i.i.i.i.i.i642.i: ; preds = %if.end6.i.i.i.i.i641.i
%171 = load i8, i8* %167, align 1, !tbaa !25
store i8 %171, i8* %170, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i649.i
if.end.i.i.i.i.i.i.i.i643.i: ; preds = %if.end6.i.i.i.i.i641.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %170, i8* align 1 %167, i64 %168, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i649.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i649.i: ; preds = %if.end.i.i.i.i.i.i.i.i643.i, %if.then.i.i.i.i.i.i.i642.i, %if.end6.i.i.i.i.i641.i
%172 = load i64, i64* %__dnew.i.i.i.i.i633.i, align 8, !tbaa !54, !noalias !55
store i64 %172, i64* %_M_string_length.i.i.i.i.i.i.i644.i, align 8, !tbaa !28, !alias.scope !55
%173 = load i8*, i8** %_M_p.i18.i.i.i.i.i637.i, align 8, !tbaa !2, !alias.scope !55
%arrayidx.i.i.i.i.i.i645.i = getelementptr inbounds i8, i8* %173, i64 %172
store i8 0, i8* %arrayidx.i.i.i.i.i.i645.i, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %114) #21, !noalias !55
%174 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i644.i, align 8, !tbaa !28, !alias.scope !55
%175 = or i64 %174, 3
%cmp.i.i.i648.i = icmp eq i64 %175, 4611686018427387903
br i1 %cmp.i.i.i648.i, label %if.then.i.i.i650.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i653.i
if.then.i.i.i650.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i649.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i651.i unwind label %lpad.i656.loopexit.split-lp.i
.noexc.i651.i: ; preds = %if.then.i.i.i650.i
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i653.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i649.i
%call2.i2.i652.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp227.i, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.75, i64 0, i64 0), i64 4)
to label %invoke.cont229.i unwind label %lpad.i656.loopexit.i
lpad.i656.loopexit.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i653.i
%lpad.loopexit936.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i656.i
lpad.i656.loopexit.split-lp.i: ; preds = %if.then.i.i.i650.i
%lpad.loopexit.split-lp937.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i656.i
lpad.i656.i: ; preds = %lpad.i656.loopexit.split-lp.i, %lpad.i656.loopexit.i
%lpad.phi938.i = phi { i8*, i32 } [ %lpad.loopexit936.i, %lpad.i656.loopexit.i ], [ %lpad.loopexit.split-lp937.i, %lpad.i656.loopexit.split-lp.i ]
%176 = load i8*, i8** %_M_p.i18.i.i.i.i.i637.i, align 8, !tbaa !2, !alias.scope !55
%cmp.i.i.i.i655.i = icmp eq i8* %176, %115
br i1 %cmp.i.i.i.i655.i, label %lpad228.body.i, label %if.then.i.i3.i657.i
if.then.i.i3.i657.i: ; preds = %lpad.i656.i
call void @_ZdlPv(i8* %176) #21
br label %lpad228.body.i
invoke.cont229.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i653.i
%177 = load i8*, i8** %_M_p.i18.i.i.i.i.i637.i, align 8, !tbaa !2
%call232.i = call i32 @strcmp(i8* nonnull dereferenceable(1) %mybasename.0.i624.i, i8* nonnull dereferenceable(1) %177) #25
%cmp233.i = icmp eq i32 %call232.i, 0
br i1 %cmp233.i, label %cleanup.action276.i, label %lor.lhs.false234.i
lor.lhs.false234.i: ; preds = %invoke.cont229.i
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %116) #21
store %union.anon* %117, %union.anon** %118, align 8, !tbaa !33, !alias.scope !58
%178 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !58
%179 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !58
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %119) #21, !noalias !58
store i64 %179, i64* %__dnew.i.i.i.i.i662.i, align 8, !tbaa !54, !noalias !58
%cmp3.i.i.i.i.i663.i = icmp ugt i64 %179, 15
br i1 %cmp3.i.i.i.i.i663.i, label %if.then4.i.i.i.i.i668.i, label %if.end6.i.i.i.i.i670.i
if.then4.i.i.i.i.i668.i: ; preds = %lor.lhs.false234.i
%call5.i.i.i14.i.i665688.i = invoke i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp235.i, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i662.i, i64 0)
to label %call5.i.i.i14.i.i665.noexc.i unwind label %lpad237.i
call5.i.i.i14.i.i665.noexc.i: ; preds = %if.then4.i.i.i.i.i668.i
store i8* %call5.i.i.i14.i.i665688.i, i8** %_M_p.i18.i.i.i.i.i666.i, align 8, !tbaa !2, !alias.scope !58
%180 = load i64, i64* %__dnew.i.i.i.i.i662.i, align 8, !tbaa !54, !noalias !58
store i64 %180, i64* %_M_allocated_capacity.i.i.i.i.i.i667.i, align 8, !tbaa !25, !alias.scope !58
br label %if.end6.i.i.i.i.i670.i
if.end6.i.i.i.i.i670.i: ; preds = %call5.i.i.i14.i.i665.noexc.i, %lor.lhs.false234.i
%181 = phi i8* [ %call5.i.i.i14.i.i665688.i, %call5.i.i.i14.i.i665.noexc.i ], [ %120, %lor.lhs.false234.i ]
switch i64 %179, label %if.end.i.i.i.i.i.i.i.i672.i [
i64 1, label %if.then.i.i.i.i.i.i.i671.i
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i678.i
]
if.then.i.i.i.i.i.i.i671.i: ; preds = %if.end6.i.i.i.i.i670.i
%182 = load i8, i8* %178, align 1, !tbaa !25
store i8 %182, i8* %181, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i678.i
if.end.i.i.i.i.i.i.i.i672.i: ; preds = %if.end6.i.i.i.i.i670.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %181, i8* align 1 %178, i64 %179, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i678.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i678.i: ; preds = %if.end.i.i.i.i.i.i.i.i672.i, %if.then.i.i.i.i.i.i.i671.i, %if.end6.i.i.i.i.i670.i
%183 = load i64, i64* %__dnew.i.i.i.i.i662.i, align 8, !tbaa !54, !noalias !58
store i64 %183, i64* %_M_string_length.i.i.i.i.i.i.i673.i, align 8, !tbaa !28, !alias.scope !58
%184 = load i8*, i8** %_M_p.i18.i.i.i.i.i666.i, align 8, !tbaa !2, !alias.scope !58
%arrayidx.i.i.i.i.i.i674.i = getelementptr inbounds i8, i8* %184, i64 %183
store i8 0, i8* %arrayidx.i.i.i.i.i.i674.i, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %119) #21, !noalias !58
%185 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i673.i, align 8, !tbaa !28, !alias.scope !58
%sub3.i.i.i676.i = sub i64 4611686018427387903, %185
%cmp.i.i.i677.i = icmp ult i64 %sub3.i.i.i676.i, 6
br i1 %cmp.i.i.i677.i, label %if.then.i.i.i679.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i682.i
if.then.i.i.i679.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i678.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i680.i unwind label %lpad.i685.loopexit.split-lp.i
.noexc.i680.i: ; preds = %if.then.i.i.i679.i
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i682.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i678.i
%call2.i2.i681.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp235.i, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.76, i64 0, i64 0), i64 6)
to label %invoke.cont238.i unwind label %lpad.i685.loopexit.i
lpad.i685.loopexit.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i682.i
%lpad.loopexit939.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i685.i
lpad.i685.loopexit.split-lp.i: ; preds = %if.then.i.i.i679.i
%lpad.loopexit.split-lp940.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i685.i
lpad.i685.i: ; preds = %lpad.i685.loopexit.split-lp.i, %lpad.i685.loopexit.i
%lpad.phi941.i = phi { i8*, i32 } [ %lpad.loopexit939.i, %lpad.i685.loopexit.i ], [ %lpad.loopexit.split-lp940.i, %lpad.i685.loopexit.split-lp.i ]
%186 = load i8*, i8** %_M_p.i18.i.i.i.i.i666.i, align 8, !tbaa !2, !alias.scope !58
%cmp.i.i.i.i684.i = icmp eq i8* %186, %120
br i1 %cmp.i.i.i.i684.i, label %lpad237.body.i, label %if.then.i.i3.i686.i
if.then.i.i3.i686.i: ; preds = %lpad.i685.i
call void @_ZdlPv(i8* %186) #21
br label %lpad237.body.i
invoke.cont238.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i682.i
%187 = load i8*, i8** %_M_p.i18.i.i.i.i.i666.i, align 8, !tbaa !2
%call241.i = call i32 @strcmp(i8* nonnull dereferenceable(1) %mybasename.0.i624.i, i8* nonnull dereferenceable(1) %187) #25
%cmp242.i = icmp eq i32 %call241.i, 0
br i1 %cmp242.i, label %cleanup.action262.i, label %lor.lhs.false243.i
lor.lhs.false243.i: ; preds = %invoke.cont238.i
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %121) #21
store %union.anon* %122, %union.anon** %123, align 8, !tbaa !33, !alias.scope !61
%188 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !61
%189 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !61
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %124) #21, !noalias !61
store i64 %189, i64* %__dnew.i.i.i.i.i692.i, align 8, !tbaa !54, !noalias !61
%cmp3.i.i.i.i.i693.i = icmp ugt i64 %189, 15
br i1 %cmp3.i.i.i.i.i693.i, label %if.then4.i.i.i.i.i698.i, label %if.end6.i.i.i.i.i700.i
if.then4.i.i.i.i.i698.i: ; preds = %lor.lhs.false243.i
%call5.i.i.i14.i.i695718.i = invoke i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp244.i, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i692.i, i64 0)
to label %call5.i.i.i14.i.i695.noexc.i unwind label %lpad246.i
call5.i.i.i14.i.i695.noexc.i: ; preds = %if.then4.i.i.i.i.i698.i
store i8* %call5.i.i.i14.i.i695718.i, i8** %_M_p.i18.i.i.i.i.i696.i, align 8, !tbaa !2, !alias.scope !61
%190 = load i64, i64* %__dnew.i.i.i.i.i692.i, align 8, !tbaa !54, !noalias !61
store i64 %190, i64* %_M_allocated_capacity.i.i.i.i.i.i697.i, align 8, !tbaa !25, !alias.scope !61
br label %if.end6.i.i.i.i.i700.i
if.end6.i.i.i.i.i700.i: ; preds = %call5.i.i.i14.i.i695.noexc.i, %lor.lhs.false243.i
%191 = phi i8* [ %call5.i.i.i14.i.i695718.i, %call5.i.i.i14.i.i695.noexc.i ], [ %125, %lor.lhs.false243.i ]
switch i64 %189, label %if.end.i.i.i.i.i.i.i.i702.i [
i64 1, label %if.then.i.i.i.i.i.i.i701.i
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i708.i
]
if.then.i.i.i.i.i.i.i701.i: ; preds = %if.end6.i.i.i.i.i700.i
%192 = load i8, i8* %188, align 1, !tbaa !25
store i8 %192, i8* %191, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i708.i
if.end.i.i.i.i.i.i.i.i702.i: ; preds = %if.end6.i.i.i.i.i700.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %191, i8* align 1 %188, i64 %189, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i708.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i708.i: ; preds = %if.end.i.i.i.i.i.i.i.i702.i, %if.then.i.i.i.i.i.i.i701.i, %if.end6.i.i.i.i.i700.i
%193 = load i64, i64* %__dnew.i.i.i.i.i692.i, align 8, !tbaa !54, !noalias !61
store i64 %193, i64* %_M_string_length.i.i.i.i.i.i.i703.i, align 8, !tbaa !28, !alias.scope !61
%194 = load i8*, i8** %_M_p.i18.i.i.i.i.i696.i, align 8, !tbaa !2, !alias.scope !61
%arrayidx.i.i.i.i.i.i704.i = getelementptr inbounds i8, i8* %194, i64 %193
store i8 0, i8* %arrayidx.i.i.i.i.i.i704.i, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %124) #21, !noalias !61
%195 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i703.i, align 8, !tbaa !28, !alias.scope !61
%196 = or i64 %195, 7
%cmp.i.i.i707.i = icmp eq i64 %196, 4611686018427387903
br i1 %cmp.i.i.i707.i, label %if.then.i.i.i709.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i712.i
if.then.i.i.i709.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i708.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i710.i unwind label %lpad.i715.loopexit.split-lp.i
.noexc.i710.i: ; preds = %if.then.i.i.i709.i
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i712.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i708.i
%call2.i2.i711.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp244.i, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.77, i64 0, i64 0), i64 8)
to label %invoke.cont247.i unwind label %lpad.i715.loopexit.i
lpad.i715.loopexit.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i712.i
%lpad.loopexit942.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i715.i
lpad.i715.loopexit.split-lp.i: ; preds = %if.then.i.i.i709.i
%lpad.loopexit.split-lp943.i = landingpad { i8*, i32 }
cleanup
br label %lpad.i715.i
lpad.i715.i: ; preds = %lpad.i715.loopexit.split-lp.i, %lpad.i715.loopexit.i
%lpad.phi944.i = phi { i8*, i32 } [ %lpad.loopexit942.i, %lpad.i715.loopexit.i ], [ %lpad.loopexit.split-lp943.i, %lpad.i715.loopexit.split-lp.i ]
%197 = load i8*, i8** %_M_p.i18.i.i.i.i.i696.i, align 8, !tbaa !2, !alias.scope !61
%cmp.i.i.i.i714.i = icmp eq i8* %197, %125
br i1 %cmp.i.i.i.i714.i, label %lpad246.body.i, label %if.then.i.i3.i716.i
if.then.i.i3.i716.i: ; preds = %lpad.i715.i
call void @_ZdlPv(i8* %197) #21
br label %lpad246.body.i
invoke.cont247.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i712.i
%198 = load i8*, i8** %_M_p.i18.i.i.i.i.i696.i, align 8, !tbaa !2
%call250.i = call i32 @strcmp(i8* nonnull dereferenceable(1) %mybasename.0.i624.i, i8* nonnull dereferenceable(1) %198) #25
%cmp251.i = icmp eq i32 %call250.i, 0
br i1 %cmp251.i, label %cleanup.action.i, label %lor.rhs.i
lor.rhs.i: ; preds = %invoke.cont247.i
%call252.i = call i32 @strcmp(i8* nonnull dereferenceable(1) %mybasename.0.i624.i, i8* nonnull dereferenceable(8) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.78, i64 0, i64 0)) #25
%cmp253.i = icmp eq i32 %call252.i, 0
br label %cleanup.action.i
cleanup.action.i: ; preds = %lor.rhs.i, %invoke.cont247.i
%199 = phi i1 [ true, %invoke.cont247.i ], [ %cmp253.i, %lor.rhs.i ]
%cmp.i.i.i724.i = icmp eq i8* %198, %125
br i1 %cmp.i.i.i724.i, label %cleanup.done256.thread.i, label %if.then.i.i725.i
if.then.i.i725.i: ; preds = %cleanup.action.i
call void @_ZdlPv(i8* %198) #21
br label %cleanup.done256.thread.i
cleanup.done256.thread.i: ; preds = %if.then.i.i725.i, %cleanup.action.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %121) #21
%.pre1261.i = load i8*, i8** %_M_p.i18.i.i.i.i.i666.i, align 8, !tbaa !2
br label %cleanup.action262.i
cleanup.action262.i: ; preds = %cleanup.done256.thread.i, %invoke.cont238.i
%200 = phi i8* [ %.pre1261.i, %cleanup.done256.thread.i ], [ %187, %invoke.cont238.i ]
%201 = phi i1 [ %199, %cleanup.done256.thread.i ], [ true, %invoke.cont238.i ]
%cmp.i.i.i730.i = icmp eq i8* %200, %120
br i1 %cmp.i.i.i730.i, label %cleanup.done270.thread.i, label %if.then.i.i731.i
if.then.i.i731.i: ; preds = %cleanup.action262.i
call void @_ZdlPv(i8* %200) #21
br label %cleanup.done270.thread.i
cleanup.done270.thread.i: ; preds = %if.then.i.i731.i, %cleanup.action262.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %116) #21
%.pre1262.i = load i8*, i8** %_M_p.i18.i.i.i.i.i637.i, align 8, !tbaa !2
br label %cleanup.action276.i
cleanup.action276.i: ; preds = %cleanup.done270.thread.i, %invoke.cont229.i
%202 = phi i8* [ %.pre1262.i, %cleanup.done270.thread.i ], [ %177, %invoke.cont229.i ]
%203 = phi i1 [ %201, %cleanup.done270.thread.i ], [ true, %invoke.cont229.i ]
%cmp.i.i.i736.i = icmp eq i8* %202, %115
br i1 %cmp.i.i.i736.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit739.i, label %if.then.i.i737.i
if.then.i.i737.i: ; preds = %cleanup.action276.i
call void @_ZdlPv(i8* %202) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit739.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit739.i: ; preds = %if.then.i.i737.i, %cleanup.action276.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %111) #21
%.pre1263.i = load i8*, i8** %_M_p.i18.i.i.i.i.i.i, align 8, !tbaa !2
br label %cleanup.done284.i
cleanup.done284.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit739.i, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit.i
%204 = phi i8* [ %.pre1263.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit739.i ], [ %166, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit.i ]
%205 = phi i1 [ %203, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit739.i ], [ true, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit.i ]
%cmp.i.i.i742.i = icmp eq i8* %204, %110
br i1 %cmp.i.i.i742.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit745.i, label %if.then.i.i743.i
if.then.i.i743.i: ; preds = %cleanup.done284.i
call void @_ZdlPv(i8* %204) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit745.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit745.i: ; preds = %if.then.i.i743.i, %cleanup.done284.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %106) #21
br i1 %205, label %if.then291.i, label %if.else340.i
if.then291.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit745.i
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %126) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %127) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %128) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %129) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %130) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %131) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %132) #21
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %133) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp298.i, i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.79, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%206 = load i64, i64* %_M_string_length.i.i.i.i.i, align 8, !tbaa !28, !noalias !64
%sub3.i.i.i747.i = sub i64 4611686018427387903, %206
%cmp.i.i.i748.i = icmp ult i64 %sub3.i.i.i747.i, 7
br i1 %cmp.i.i.i748.i, label %if.then.i.i.i749.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i.i
if.then.i.i.i749.i: ; preds = %if.then291.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc755.i unwind label %lpad299.loopexit.split-lp.i
.noexc755.i: ; preds = %if.then.i.i.i749.i
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i.i: ; preds = %if.then291.i
%call2.i.i756.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp298.i, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.80, i64 0, i64 0), i64 7)
to label %call2.i.i.noexc.i unwind label %lpad299.loopexit.i
call2.i.i.noexc.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i.i
store %union.anon* %134, %union.anon** %135, align 8, !tbaa !33, !alias.scope !64
%_M_p.i.i34.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i756.i, i64 0, i32 0, i32 0
%207 = load i8*, i8** %_M_p.i.i34.i.i.i, align 8, !tbaa !2
%208 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i756.i, i64 0, i32 2
%arraydecay.i.i.i.i750.i = bitcast %union.anon* %208 to i8*
%cmp.i.i2.i.i = icmp eq i8* %207, %arraydecay.i.i.i.i750.i
br i1 %cmp.i.i2.i.i, label %if.then.i.i751.i, label %if.else.i.i753.i
if.then.i.i751.i: ; preds = %call2.i.i.noexc.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i.i, i8* nonnull align 1 dereferenceable(16) %207, i64 16, i1 false) #21
br label %invoke.cont300.i
if.else.i.i753.i: ; preds = %call2.i.i.noexc.i
store i8* %207, i8** %_M_p.i32.i.i.i, align 8, !tbaa !2, !alias.scope !64
%_M_allocated_capacity.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i756.i, i64 0, i32 2, i32 0
%209 = load i64, i64* %_M_allocated_capacity.i.i.i, align 8, !tbaa !25
store i64 %209, i64* %_M_allocated_capacity.i.i.i752.i, align 8, !tbaa !25, !alias.scope !64
br label %invoke.cont300.i
invoke.cont300.i: ; preds = %if.else.i.i753.i, %if.then.i.i751.i
%_M_string_length.i31.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i756.i, i64 0, i32 1
%210 = load i64, i64* %_M_string_length.i31.i.i.i, align 8, !tbaa !28
store i64 %210, i64* %_M_string_length.i.i.i754.i, align 8, !tbaa !28, !alias.scope !64
%211 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i756.i to %union.anon**
store %union.anon* %208, %union.anon** %211, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i750.i, align 1, !tbaa !25
%212 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !67
%213 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !67
%call3.i.i757768.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp297.i, i8* %212, i64 %213)
to label %call3.i.i757.noexc.i unwind label %lpad301.i
call3.i.i757.noexc.i: ; preds = %invoke.cont300.i
store %union.anon* %136, %union.anon** %137, align 8, !tbaa !33, !alias.scope !67
%_M_p.i.i34.i.i758.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i757768.i, i64 0, i32 0, i32 0
%214 = load i8*, i8** %_M_p.i.i34.i.i758.i, align 8, !tbaa !2
%215 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i757768.i, i64 0, i32 2
%arraydecay.i.i.i.i759.i = bitcast %union.anon* %215 to i8*
%cmp.i.i.i760.i = icmp eq i8* %214, %arraydecay.i.i.i.i759.i
br i1 %cmp.i.i.i760.i, label %if.then.i.i762.i, label %if.else.i.i766.i
if.then.i.i762.i: ; preds = %call3.i.i757.noexc.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i761.i, i8* nonnull align 1 dereferenceable(16) %214, i64 16, i1 false) #21
br label %invoke.cont302.i
if.else.i.i766.i: ; preds = %call3.i.i757.noexc.i
store i8* %214, i8** %_M_p.i32.i.i763.i, align 8, !tbaa !2, !alias.scope !67
%_M_allocated_capacity.i.i764.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i757768.i, i64 0, i32 2, i32 0
%216 = load i64, i64* %_M_allocated_capacity.i.i764.i, align 8, !tbaa !25
store i64 %216, i64* %_M_allocated_capacity.i.i.i765.i, align 8, !tbaa !25, !alias.scope !67
br label %invoke.cont302.i
invoke.cont302.i: ; preds = %if.else.i.i766.i, %if.then.i.i762.i
%_M_string_length.i31.i.i767.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i757768.i, i64 0, i32 1
%217 = load i64, i64* %_M_string_length.i31.i.i767.i, align 8, !tbaa !28
store i64 %217, i64* %_M_string_length.i.i2.i.i, align 8, !tbaa !28, !alias.scope !67
%218 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i757768.i to %union.anon**
store %union.anon* %215, %union.anon** %218, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i767.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i759.i, align 1, !tbaa !25
%219 = load i64, i64* %_M_string_length.i.i2.i.i, align 8, !tbaa !28, !noalias !70
%220 = or i64 %219, 7
%cmp.i.i.i772.i = icmp eq i64 %220, 4611686018427387903
br i1 %cmp.i.i.i772.i, label %if.then.i.i.i773.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i777.i
if.then.i.i.i773.i: ; preds = %invoke.cont302.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc786.i unwind label %lpad303.loopexit.split-lp.i
.noexc786.i: ; preds = %if.then.i.i.i773.i
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i777.i: ; preds = %invoke.cont302.i
%call2.i.i788.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp296.i, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.81, i64 0, i64 0), i64 8)
to label %call2.i.i.noexc787.i unwind label %lpad303.loopexit.i
call2.i.i.noexc787.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i777.i
store %union.anon* %138, %union.anon** %139, align 8, !tbaa !33, !alias.scope !70
%_M_p.i.i34.i.i774.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i788.i, i64 0, i32 0, i32 0
%221 = load i8*, i8** %_M_p.i.i34.i.i774.i, align 8, !tbaa !2
%222 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i788.i, i64 0, i32 2
%arraydecay.i.i.i.i775.i = bitcast %union.anon* %222 to i8*
%cmp.i.i2.i776.i = icmp eq i8* %221, %arraydecay.i.i.i.i775.i
br i1 %cmp.i.i2.i776.i, label %if.then.i.i779.i, label %if.else.i.i783.i
if.then.i.i779.i: ; preds = %call2.i.i.noexc787.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i778.i, i8* nonnull align 1 dereferenceable(16) %221, i64 16, i1 false) #21
br label %invoke.cont304.i
if.else.i.i783.i: ; preds = %call2.i.i.noexc787.i
store i8* %221, i8** %_M_p.i32.i.i780.i, align 8, !tbaa !2, !alias.scope !70
%_M_allocated_capacity.i.i781.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i788.i, i64 0, i32 2, i32 0
%223 = load i64, i64* %_M_allocated_capacity.i.i781.i, align 8, !tbaa !25
store i64 %223, i64* %_M_allocated_capacity.i.i.i782.i, align 8, !tbaa !25, !alias.scope !70
br label %invoke.cont304.i
invoke.cont304.i: ; preds = %if.else.i.i783.i, %if.then.i.i779.i
%_M_string_length.i31.i.i784.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i788.i, i64 0, i32 1
%224 = load i64, i64* %_M_string_length.i31.i.i784.i, align 8, !tbaa !28
store i64 %224, i64* %_M_string_length.i.i.i785.i, align 8, !tbaa !28, !alias.scope !70
%225 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i788.i to %union.anon**
store %union.anon* %222, %union.anon** %225, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i784.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i775.i, align 1, !tbaa !25
%226 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !73
%227 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !73
%call3.i.i790802.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp295.i, i8* %226, i64 %227)
to label %call3.i.i790.noexc.i unwind label %lpad305.i
call3.i.i790.noexc.i: ; preds = %invoke.cont304.i
store %union.anon* %140, %union.anon** %141, align 8, !tbaa !33, !alias.scope !73
%_M_p.i.i34.i.i791.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i790802.i, i64 0, i32 0, i32 0
%228 = load i8*, i8** %_M_p.i.i34.i.i791.i, align 8, !tbaa !2
%229 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i790802.i, i64 0, i32 2
%arraydecay.i.i.i.i792.i = bitcast %union.anon* %229 to i8*
%cmp.i.i.i793.i = icmp eq i8* %228, %arraydecay.i.i.i.i792.i
br i1 %cmp.i.i.i793.i, label %if.then.i.i795.i, label %if.else.i.i799.i
if.then.i.i795.i: ; preds = %call3.i.i790.noexc.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i794.i, i8* nonnull align 1 dereferenceable(16) %228, i64 16, i1 false) #21
br label %invoke.cont306.i
if.else.i.i799.i: ; preds = %call3.i.i790.noexc.i
store i8* %228, i8** %_M_p.i32.i.i796.i, align 8, !tbaa !2, !alias.scope !73
%_M_allocated_capacity.i.i797.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i790802.i, i64 0, i32 2, i32 0
%230 = load i64, i64* %_M_allocated_capacity.i.i797.i, align 8, !tbaa !25
store i64 %230, i64* %_M_allocated_capacity.i.i.i798.i, align 8, !tbaa !25, !alias.scope !73
br label %invoke.cont306.i
invoke.cont306.i: ; preds = %if.else.i.i799.i, %if.then.i.i795.i
%_M_string_length.i31.i.i800.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i790802.i, i64 0, i32 1
%231 = load i64, i64* %_M_string_length.i31.i.i800.i, align 8, !tbaa !28
store i64 %231, i64* %_M_string_length.i.i2.i801.i, align 8, !tbaa !28, !alias.scope !73
%232 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i790802.i to %union.anon**
store %union.anon* %229, %union.anon** %232, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i800.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i792.i, align 1, !tbaa !25
%233 = load i64, i64* %_M_string_length.i.i2.i801.i, align 8, !tbaa !28, !noalias !76
%sub3.i.i.i806.i = sub i64 4611686018427387903, %233
%cmp.i.i.i807.i = icmp ult i64 %sub3.i.i.i806.i, 10
br i1 %cmp.i.i.i807.i, label %if.then.i.i.i808.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i812.i
if.then.i.i.i808.i: ; preds = %invoke.cont306.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc821.i unwind label %lpad307.loopexit.split-lp.i
.noexc821.i: ; preds = %if.then.i.i.i808.i
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i812.i: ; preds = %invoke.cont306.i
%call2.i.i823.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp294.i, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.82, i64 0, i64 0), i64 10)
to label %call2.i.i.noexc822.i unwind label %lpad307.loopexit.i
call2.i.i.noexc822.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i812.i
store %union.anon* %142, %union.anon** %143, align 8, !tbaa !33, !alias.scope !76
%_M_p.i.i34.i.i809.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i823.i, i64 0, i32 0, i32 0
%234 = load i8*, i8** %_M_p.i.i34.i.i809.i, align 8, !tbaa !2
%235 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i823.i, i64 0, i32 2
%arraydecay.i.i.i.i810.i = bitcast %union.anon* %235 to i8*
%cmp.i.i2.i811.i = icmp eq i8* %234, %arraydecay.i.i.i.i810.i
br i1 %cmp.i.i2.i811.i, label %if.then.i.i814.i, label %if.else.i.i818.i
if.then.i.i814.i: ; preds = %call2.i.i.noexc822.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i813.i, i8* nonnull align 1 dereferenceable(16) %234, i64 16, i1 false) #21
br label %invoke.cont308.i
if.else.i.i818.i: ; preds = %call2.i.i.noexc822.i
store i8* %234, i8** %_M_p.i32.i.i815.i, align 8, !tbaa !2, !alias.scope !76
%_M_allocated_capacity.i.i816.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i823.i, i64 0, i32 2, i32 0
%236 = load i64, i64* %_M_allocated_capacity.i.i816.i, align 8, !tbaa !25
store i64 %236, i64* %_M_allocated_capacity.i.i.i817.i, align 8, !tbaa !25, !alias.scope !76
br label %invoke.cont308.i
invoke.cont308.i: ; preds = %if.else.i.i818.i, %if.then.i.i814.i
%_M_string_length.i31.i.i819.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i823.i, i64 0, i32 1
%237 = load i64, i64* %_M_string_length.i31.i.i819.i, align 8, !tbaa !28
store i64 %237, i64* %_M_string_length.i.i.i820.i, align 8, !tbaa !28, !alias.scope !76
%238 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i823.i to %union.anon**
store %union.anon* %235, %union.anon** %238, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i819.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i810.i, align 1, !tbaa !25
%239 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !79
%240 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !79
%call3.i.i825837.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp293.i, i8* %239, i64 %240)
to label %call3.i.i825.noexc.i unwind label %lpad309.i
call3.i.i825.noexc.i: ; preds = %invoke.cont308.i
store %union.anon* %144, %union.anon** %145, align 8, !tbaa !33, !alias.scope !79
%_M_p.i.i34.i.i826.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i825837.i, i64 0, i32 0, i32 0
%241 = load i8*, i8** %_M_p.i.i34.i.i826.i, align 8, !tbaa !2
%242 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i825837.i, i64 0, i32 2
%arraydecay.i.i.i.i827.i = bitcast %union.anon* %242 to i8*
%cmp.i.i.i828.i = icmp eq i8* %241, %arraydecay.i.i.i.i827.i
br i1 %cmp.i.i.i828.i, label %if.then.i.i830.i, label %if.else.i.i834.i
if.then.i.i830.i: ; preds = %call3.i.i825.noexc.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i829.i, i8* nonnull align 1 dereferenceable(16) %241, i64 16, i1 false) #21
br label %invoke.cont310.i
if.else.i.i834.i: ; preds = %call3.i.i825.noexc.i
store i8* %241, i8** %_M_p.i32.i.i831.i, align 8, !tbaa !2, !alias.scope !79
%_M_allocated_capacity.i.i832.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i825837.i, i64 0, i32 2, i32 0
%243 = load i64, i64* %_M_allocated_capacity.i.i832.i, align 8, !tbaa !25
store i64 %243, i64* %_M_allocated_capacity.i.i.i833.i, align 8, !tbaa !25, !alias.scope !79
br label %invoke.cont310.i
invoke.cont310.i: ; preds = %if.else.i.i834.i, %if.then.i.i830.i
%_M_string_length.i31.i.i835.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i825837.i, i64 0, i32 1
%244 = load i64, i64* %_M_string_length.i31.i.i835.i, align 8, !tbaa !28
store i64 %244, i64* %_M_string_length.i.i2.i836.i, align 8, !tbaa !28, !alias.scope !79
%245 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i825837.i to %union.anon**
store %union.anon* %242, %union.anon** %245, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i835.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i827.i, align 1, !tbaa !25
%246 = load i64, i64* %_M_string_length.i.i2.i836.i, align 8, !tbaa !28, !noalias !82
%sub3.i.i.i841.i = sub i64 4611686018427387903, %246
%cmp.i.i.i842.i = icmp ult i64 %sub3.i.i.i841.i, 36
br i1 %cmp.i.i.i842.i, label %if.then.i.i.i843.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i847.i
if.then.i.i.i843.i: ; preds = %invoke.cont310.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc856.i unwind label %lpad311.loopexit.split-lp.i
.noexc856.i: ; preds = %if.then.i.i.i843.i
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i847.i: ; preds = %invoke.cont310.i
%call2.i.i858.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp292.i, i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.83, i64 0, i64 0), i64 36)
to label %call2.i.i.noexc857.i unwind label %lpad311.loopexit.i
call2.i.i.noexc857.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i847.i
store %union.anon* %146, %union.anon** %147, align 8, !tbaa !33, !alias.scope !82
%_M_p.i.i34.i.i844.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i858.i, i64 0, i32 0, i32 0
%247 = load i8*, i8** %_M_p.i.i34.i.i844.i, align 8, !tbaa !2
%248 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i858.i, i64 0, i32 2
%arraydecay.i.i.i.i845.i = bitcast %union.anon* %248 to i8*
%cmp.i.i2.i846.i = icmp eq i8* %247, %arraydecay.i.i.i.i845.i
br i1 %cmp.i.i2.i846.i, label %if.then.i.i849.i, label %if.else.i.i853.i
if.then.i.i849.i: ; preds = %call2.i.i.noexc857.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i848.i, i8* nonnull align 1 dereferenceable(16) %247, i64 16, i1 false) #21
br label %invoke.cont312.i
if.else.i.i853.i: ; preds = %call2.i.i.noexc857.i
store i8* %247, i8** %_M_p.i32.i.i850.i, align 8, !tbaa !2, !alias.scope !82
%_M_allocated_capacity.i.i851.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i858.i, i64 0, i32 2, i32 0
%249 = load i64, i64* %_M_allocated_capacity.i.i851.i, align 8, !tbaa !25
store i64 %249, i64* %_M_allocated_capacity.i.i.i852.i, align 8, !tbaa !25, !alias.scope !82
br label %invoke.cont312.i
invoke.cont312.i: ; preds = %if.else.i.i853.i, %if.then.i.i849.i
%_M_string_length.i31.i.i854.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i858.i, i64 0, i32 1
%250 = load i64, i64* %_M_string_length.i31.i.i854.i, align 8, !tbaa !28
store i64 %250, i64* %_M_string_length.i.i.i855.i, align 8, !tbaa !28, !alias.scope !82
%251 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i858.i to %union.anon**
store %union.anon* %248, %union.anon** %251, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i854.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i845.i, align 1, !tbaa !25
%252 = load i8*, i8** %_M_p.i32.i.i831.i, align 8, !tbaa !2
%cmp.i.i.i862.i = icmp eq i8* %252, %arraydecay.i.i.i829.i
br i1 %cmp.i.i.i862.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit865.i, label %if.then.i.i863.i
if.then.i.i863.i: ; preds = %invoke.cont312.i
call void @_ZdlPv(i8* %252) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit865.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit865.i: ; preds = %if.then.i.i863.i, %invoke.cont312.i
%253 = load i8*, i8** %_M_p.i32.i.i815.i, align 8, !tbaa !2
%cmp.i.i.i868.i = icmp eq i8* %253, %arraydecay.i.i.i813.i
br i1 %cmp.i.i.i868.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit871.i, label %if.then.i.i869.i
if.then.i.i869.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit865.i
call void @_ZdlPv(i8* %253) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit871.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit871.i: ; preds = %if.then.i.i869.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit865.i
%254 = load i8*, i8** %_M_p.i32.i.i796.i, align 8, !tbaa !2
%cmp.i.i.i874.i = icmp eq i8* %254, %arraydecay.i.i.i794.i
br i1 %cmp.i.i.i874.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit877.i, label %if.then.i.i875.i
if.then.i.i875.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit871.i
call void @_ZdlPv(i8* %254) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit877.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit877.i: ; preds = %if.then.i.i875.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit871.i
%255 = load i8*, i8** %_M_p.i32.i.i780.i, align 8, !tbaa !2
%cmp.i.i.i880.i = icmp eq i8* %255, %arraydecay.i.i.i778.i
br i1 %cmp.i.i.i880.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit883.i, label %if.then.i.i881.i
if.then.i.i881.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit877.i
call void @_ZdlPv(i8* %255) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit883.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit883.i: ; preds = %if.then.i.i881.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit877.i
%256 = load i8*, i8** %_M_p.i32.i.i763.i, align 8, !tbaa !2
%cmp.i.i.i886.i = icmp eq i8* %256, %arraydecay.i.i.i761.i
br i1 %cmp.i.i.i886.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit889.i, label %if.then.i.i887.i
if.then.i.i887.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit883.i
call void @_ZdlPv(i8* %256) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit889.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit889.i: ; preds = %if.then.i.i887.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit883.i
%257 = load i8*, i8** %_M_p.i32.i.i.i, align 8, !tbaa !2
%cmp.i.i.i892.i = icmp eq i8* %257, %arraydecay.i.i.i.i
br i1 %cmp.i.i.i892.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit895.i, label %if.then.i.i893.i
if.then.i.i893.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit889.i
call void @_ZdlPv(i8* %257) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit895.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit895.i: ; preds = %if.then.i.i893.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit889.i
%258 = load i8*, i8** %_M_p.i.i.i.i896.i, align 8, !tbaa !2
%cmp.i.i.i898.i = icmp eq i8* %258, %arraydecay.i.i.i.i897.i
br i1 %cmp.i.i.i898.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit901.i, label %if.then.i.i899.i
if.then.i.i899.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit895.i
call void @_ZdlPv(i8* %258) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit901.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit901.i: ; preds = %if.then.i.i899.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit895.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %133) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %132) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %131) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %130) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %129) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %128) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %127) #21
%call329.i = invoke %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
to label %invoke.cont328.i unwind label %lpad327.i
invoke.cont328.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit901.i
%259 = load i8*, i8** %_M_p.i32.i.i850.i, align 8, !tbaa !2
%260 = load i8*, i8** %arrayidx197.i, align 8, !tbaa !9
%call334.i = invoke %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* %259, i8* %260)
to label %invoke.cont333.i unwind label %lpad327.i
invoke.cont333.i: ; preds = %invoke.cont328.i
%261 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call329.i to %"class.kc::impl_fileline"*
%call336.i = invoke %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %261, %"class.kc::impl_problem"* %call334.i)
to label %invoke.cont335.i unwind label %lpad327.i
invoke.cont335.i: ; preds = %invoke.cont333.i
%262 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call336.i, i64 0, i32 0
invoke void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %262)
to label %invoke.cont337.i unwind label %lpad327.i
invoke.cont337.i: ; preds = %invoke.cont335.i
%263 = load i8*, i8** %_M_p.i32.i.i850.i, align 8, !tbaa !2
%cmp.i.i.i905.i = icmp eq i8* %263, %arraydecay.i.i.i848.i
br i1 %cmp.i.i.i905.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit908.i, label %if.then.i.i906.i
if.then.i.i906.i: ; preds = %invoke.cont337.i
call void @_ZdlPv(i8* %263) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit908.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit908.i: ; preds = %if.then.i.i906.i, %invoke.cont337.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %126) #21
br label %if.end355.i
lpad228.i: ; preds = %if.then4.i.i.i.i.i639.i
%264 = landingpad { i8*, i32 }
cleanup
br label %lpad228.body.i
lpad228.body.i: ; preds = %lpad228.i, %if.then.i.i3.i657.i, %lpad.i656.i
%eh.lpad-body.i = phi { i8*, i32 } [ %264, %lpad228.i ], [ %lpad.phi938.i, %if.then.i.i3.i657.i ], [ %lpad.phi938.i, %lpad.i656.i ]
%265 = extractvalue { i8*, i32 } %eh.lpad-body.i, 0
%266 = extractvalue { i8*, i32 } %eh.lpad-body.i, 1
br label %cleanup.action287.i
lpad237.i: ; preds = %if.then4.i.i.i.i.i668.i
%267 = landingpad { i8*, i32 }
cleanup
br label %lpad237.body.i
lpad237.body.i: ; preds = %lpad237.i, %if.then.i.i3.i686.i, %lpad.i685.i
%eh.lpad-body689.i = phi { i8*, i32 } [ %267, %lpad237.i ], [ %lpad.phi941.i, %if.then.i.i3.i686.i ], [ %lpad.phi941.i, %lpad.i685.i ]
%268 = extractvalue { i8*, i32 } %eh.lpad-body689.i, 0
%269 = extractvalue { i8*, i32 } %eh.lpad-body689.i, 1
br label %cleanup.action273.i
lpad246.i: ; preds = %if.then4.i.i.i.i.i698.i
%270 = landingpad { i8*, i32 }
cleanup
br label %lpad246.body.i
lpad246.body.i: ; preds = %lpad246.i, %if.then.i.i3.i716.i, %lpad.i715.i
%eh.lpad-body719.i = phi { i8*, i32 } [ %270, %lpad246.i ], [ %lpad.phi944.i, %if.then.i.i3.i716.i ], [ %lpad.phi944.i, %lpad.i715.i ]
%271 = extractvalue { i8*, i32 } %eh.lpad-body719.i, 0
%272 = extractvalue { i8*, i32 } %eh.lpad-body719.i, 1
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %121) #21
%273 = load i8*, i8** %_M_p.i18.i.i.i.i.i666.i, align 8, !tbaa !2
%cmp.i.i.i911.i = icmp eq i8* %273, %120
br i1 %cmp.i.i.i911.i, label %cleanup.action273.i, label %if.then.i.i912.i
if.then.i.i912.i: ; preds = %lpad246.body.i
call void @_ZdlPv(i8* %273) #21
br label %cleanup.action273.i
cleanup.action273.i: ; preds = %if.then.i.i912.i, %lpad246.body.i, %lpad237.body.i
%ehselector.slot.4.i = phi i32 [ %269, %lpad237.body.i ], [ %272, %lpad246.body.i ], [ %272, %if.then.i.i912.i ]
%exn.slot.4.i = phi i8* [ %268, %lpad237.body.i ], [ %271, %lpad246.body.i ], [ %271, %if.then.i.i912.i ]
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %116) #21
%274 = load i8*, i8** %_M_p.i18.i.i.i.i.i637.i, align 8, !tbaa !2
%cmp.i.i.i917.i = icmp eq i8* %274, %115
br i1 %cmp.i.i.i917.i, label %cleanup.action287.i, label %if.then.i.i918.i
if.then.i.i918.i: ; preds = %cleanup.action273.i
call void @_ZdlPv(i8* %274) #21
br label %cleanup.action287.i
cleanup.action287.i: ; preds = %if.then.i.i918.i, %cleanup.action273.i, %lpad228.body.i
%ehselector.slot.5.i = phi i32 [ %266, %lpad228.body.i ], [ %ehselector.slot.4.i, %cleanup.action273.i ], [ %ehselector.slot.4.i, %if.then.i.i918.i ]
%exn.slot.5.i = phi i8* [ %265, %lpad228.body.i ], [ %exn.slot.4.i, %cleanup.action273.i ], [ %exn.slot.4.i, %if.then.i.i918.i ]
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %111) #21
%275 = load i8*, i8** %_M_p.i18.i.i.i.i.i.i, align 8, !tbaa !2
%cmp.i.i.i573.i = icmp eq i8* %275, %110
br i1 %cmp.i.i.i573.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit576.i, label %if.then.i.i574.i
if.then.i.i574.i: ; preds = %cleanup.action287.i
call void @_ZdlPv(i8* %275) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit576.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit576.i: ; preds = %if.then.i.i574.i, %cleanup.action287.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %106) #21
br label %ehcleanup384.i
lpad299.loopexit.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i.i
%lpad.loopexit945.i = landingpad { i8*, i32 }
cleanup
br label %lpad299.i
lpad299.loopexit.split-lp.i: ; preds = %if.then.i.i.i749.i
%lpad.loopexit.split-lp946.i = landingpad { i8*, i32 }
cleanup
br label %lpad299.i
lpad299.i: ; preds = %lpad299.loopexit.split-lp.i, %lpad299.loopexit.i
%lpad.phi947.i = phi { i8*, i32 } [ %lpad.loopexit945.i, %lpad299.loopexit.i ], [ %lpad.loopexit.split-lp946.i, %lpad299.loopexit.split-lp.i ]
%276 = extractvalue { i8*, i32 } %lpad.phi947.i, 0
%277 = extractvalue { i8*, i32 } %lpad.phi947.i, 1
br label %ehcleanup319.i
lpad301.i: ; preds = %invoke.cont300.i
%278 = landingpad { i8*, i32 }
cleanup
%279 = extractvalue { i8*, i32 } %278, 0
%280 = extractvalue { i8*, i32 } %278, 1
br label %ehcleanup318.i
lpad303.loopexit.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i777.i
%lpad.loopexit948.i = landingpad { i8*, i32 }
cleanup
br label %lpad303.i
lpad303.loopexit.split-lp.i: ; preds = %if.then.i.i.i773.i
%lpad.loopexit.split-lp949.i = landingpad { i8*, i32 }
cleanup
br label %lpad303.i
lpad303.i: ; preds = %lpad303.loopexit.split-lp.i, %lpad303.loopexit.i
%lpad.phi950.i = phi { i8*, i32 } [ %lpad.loopexit948.i, %lpad303.loopexit.i ], [ %lpad.loopexit.split-lp949.i, %lpad303.loopexit.split-lp.i ]
%281 = extractvalue { i8*, i32 } %lpad.phi950.i, 0
%282 = extractvalue { i8*, i32 } %lpad.phi950.i, 1
br label %ehcleanup317.i
lpad305.i: ; preds = %invoke.cont304.i
%283 = landingpad { i8*, i32 }
cleanup
%284 = extractvalue { i8*, i32 } %283, 0
%285 = extractvalue { i8*, i32 } %283, 1
br label %ehcleanup316.i
lpad307.loopexit.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i812.i
%lpad.loopexit951.i = landingpad { i8*, i32 }
cleanup
br label %lpad307.i
lpad307.loopexit.split-lp.i: ; preds = %if.then.i.i.i808.i
%lpad.loopexit.split-lp952.i = landingpad { i8*, i32 }
cleanup
br label %lpad307.i
lpad307.i: ; preds = %lpad307.loopexit.split-lp.i, %lpad307.loopexit.i
%lpad.phi953.i = phi { i8*, i32 } [ %lpad.loopexit951.i, %lpad307.loopexit.i ], [ %lpad.loopexit.split-lp952.i, %lpad307.loopexit.split-lp.i ]
%286 = extractvalue { i8*, i32 } %lpad.phi953.i, 0
%287 = extractvalue { i8*, i32 } %lpad.phi953.i, 1
br label %ehcleanup315.i
lpad309.i: ; preds = %invoke.cont308.i
%288 = landingpad { i8*, i32 }
cleanup
%289 = extractvalue { i8*, i32 } %288, 0
%290 = extractvalue { i8*, i32 } %288, 1
br label %ehcleanup314.i
lpad311.loopexit.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i847.i
%lpad.loopexit954.i = landingpad { i8*, i32 }
cleanup
br label %lpad311.i
lpad311.loopexit.split-lp.i: ; preds = %if.then.i.i.i843.i
%lpad.loopexit.split-lp955.i = landingpad { i8*, i32 }
cleanup
br label %lpad311.i
lpad311.i: ; preds = %lpad311.loopexit.split-lp.i, %lpad311.loopexit.i
%lpad.phi956.i = phi { i8*, i32 } [ %lpad.loopexit954.i, %lpad311.loopexit.i ], [ %lpad.loopexit.split-lp955.i, %lpad311.loopexit.split-lp.i ]
%291 = extractvalue { i8*, i32 } %lpad.phi956.i, 0
%292 = extractvalue { i8*, i32 } %lpad.phi956.i, 1
%293 = load i8*, i8** %_M_p.i32.i.i831.i, align 8, !tbaa !2
%cmp.i.i.i567.i = icmp eq i8* %293, %arraydecay.i.i.i829.i
br i1 %cmp.i.i.i567.i, label %ehcleanup314.i, label %if.then.i.i568.i
if.then.i.i568.i: ; preds = %lpad311.i
call void @_ZdlPv(i8* %293) #21
br label %ehcleanup314.i
ehcleanup314.i: ; preds = %if.then.i.i568.i, %lpad311.i, %lpad309.i
%ehselector.slot.6.i = phi i32 [ %290, %lpad309.i ], [ %292, %lpad311.i ], [ %292, %if.then.i.i568.i ]
%exn.slot.6.i = phi i8* [ %289, %lpad309.i ], [ %291, %lpad311.i ], [ %291, %if.then.i.i568.i ]
%294 = load i8*, i8** %_M_p.i32.i.i815.i, align 8, !tbaa !2
%cmp.i.i.i557.i = icmp eq i8* %294, %arraydecay.i.i.i813.i
br i1 %cmp.i.i.i557.i, label %ehcleanup315.i, label %if.then.i.i558.i
if.then.i.i558.i: ; preds = %ehcleanup314.i
call void @_ZdlPv(i8* %294) #21
br label %ehcleanup315.i
ehcleanup315.i: ; preds = %if.then.i.i558.i, %ehcleanup314.i, %lpad307.i
%ehselector.slot.7.i = phi i32 [ %287, %lpad307.i ], [ %ehselector.slot.6.i, %ehcleanup314.i ], [ %ehselector.slot.6.i, %if.then.i.i558.i ]
%exn.slot.7.i = phi i8* [ %286, %lpad307.i ], [ %exn.slot.6.i, %ehcleanup314.i ], [ %exn.slot.6.i, %if.then.i.i558.i ]
%295 = load i8*, i8** %_M_p.i32.i.i796.i, align 8, !tbaa !2
%cmp.i.i.i547.i = icmp eq i8* %295, %arraydecay.i.i.i794.i
br i1 %cmp.i.i.i547.i, label %ehcleanup316.i, label %if.then.i.i548.i
if.then.i.i548.i: ; preds = %ehcleanup315.i
call void @_ZdlPv(i8* %295) #21
br label %ehcleanup316.i
ehcleanup316.i: ; preds = %if.then.i.i548.i, %ehcleanup315.i, %lpad305.i
%ehselector.slot.8.i = phi i32 [ %285, %lpad305.i ], [ %ehselector.slot.7.i, %ehcleanup315.i ], [ %ehselector.slot.7.i, %if.then.i.i548.i ]
%exn.slot.8.i = phi i8* [ %284, %lpad305.i ], [ %exn.slot.7.i, %ehcleanup315.i ], [ %exn.slot.7.i, %if.then.i.i548.i ]
%296 = load i8*, i8** %_M_p.i32.i.i780.i, align 8, !tbaa !2
%cmp.i.i.i537.i = icmp eq i8* %296, %arraydecay.i.i.i778.i
br i1 %cmp.i.i.i537.i, label %ehcleanup317.i, label %if.then.i.i538.i
if.then.i.i538.i: ; preds = %ehcleanup316.i
call void @_ZdlPv(i8* %296) #21
br label %ehcleanup317.i
ehcleanup317.i: ; preds = %if.then.i.i538.i, %ehcleanup316.i, %lpad303.i
%ehselector.slot.9.i = phi i32 [ %282, %lpad303.i ], [ %ehselector.slot.8.i, %ehcleanup316.i ], [ %ehselector.slot.8.i, %if.then.i.i538.i ]
%exn.slot.9.i = phi i8* [ %281, %lpad303.i ], [ %exn.slot.8.i, %ehcleanup316.i ], [ %exn.slot.8.i, %if.then.i.i538.i ]
%297 = load i8*, i8** %_M_p.i32.i.i763.i, align 8, !tbaa !2
%cmp.i.i.i527.i = icmp eq i8* %297, %arraydecay.i.i.i761.i
br i1 %cmp.i.i.i527.i, label %ehcleanup318.i, label %if.then.i.i528.i
if.then.i.i528.i: ; preds = %ehcleanup317.i
call void @_ZdlPv(i8* %297) #21
br label %ehcleanup318.i
ehcleanup318.i: ; preds = %if.then.i.i528.i, %ehcleanup317.i, %lpad301.i
%ehselector.slot.10.i = phi i32 [ %280, %lpad301.i ], [ %ehselector.slot.9.i, %ehcleanup317.i ], [ %ehselector.slot.9.i, %if.then.i.i528.i ]
%exn.slot.10.i = phi i8* [ %279, %lpad301.i ], [ %exn.slot.9.i, %ehcleanup317.i ], [ %exn.slot.9.i, %if.then.i.i528.i ]
%298 = load i8*, i8** %_M_p.i32.i.i.i, align 8, !tbaa !2
%cmp.i.i.i517.i = icmp eq i8* %298, %arraydecay.i.i.i.i
br i1 %cmp.i.i.i517.i, label %ehcleanup319.i, label %if.then.i.i518.i
if.then.i.i518.i: ; preds = %ehcleanup318.i
call void @_ZdlPv(i8* %298) #21
br label %ehcleanup319.i
ehcleanup319.i: ; preds = %if.then.i.i518.i, %ehcleanup318.i, %lpad299.i
%ehselector.slot.11.i = phi i32 [ %277, %lpad299.i ], [ %ehselector.slot.10.i, %ehcleanup318.i ], [ %ehselector.slot.10.i, %if.then.i.i518.i ]
%exn.slot.11.i = phi i8* [ %276, %lpad299.i ], [ %exn.slot.10.i, %ehcleanup318.i ], [ %exn.slot.10.i, %if.then.i.i518.i ]
%299 = load i8*, i8** %_M_p.i.i.i.i896.i, align 8, !tbaa !2
%cmp.i.i.i499.i = icmp eq i8* %299, %arraydecay.i.i.i.i897.i
br i1 %cmp.i.i.i499.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit501.i, label %if.then.i.i500.i
if.then.i.i500.i: ; preds = %ehcleanup319.i
call void @_ZdlPv(i8* %299) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit501.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit501.i: ; preds = %if.then.i.i500.i, %ehcleanup319.i
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %133) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %132) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %131) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %130) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %129) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %128) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %127) #21
br label %ehcleanup339.i
lpad327.i: ; preds = %invoke.cont335.i, %invoke.cont333.i, %invoke.cont328.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit901.i
%300 = landingpad { i8*, i32 }
cleanup
%301 = extractvalue { i8*, i32 } %300, 0
%302 = extractvalue { i8*, i32 } %300, 1
%303 = load i8*, i8** %_M_p.i32.i.i850.i, align 8, !tbaa !2
%cmp.i.i.i494.i = icmp eq i8* %303, %arraydecay.i.i.i848.i
br i1 %cmp.i.i.i494.i, label %ehcleanup339.i, label %if.then.i.i495.i
if.then.i.i495.i: ; preds = %lpad327.i
call void @_ZdlPv(i8* %303) #21
br label %ehcleanup339.i
ehcleanup339.i: ; preds = %if.then.i.i495.i, %lpad327.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit501.i
%ehselector.slot.12.i = phi i32 [ %ehselector.slot.11.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit501.i ], [ %302, %lpad327.i ], [ %302, %if.then.i.i495.i ]
%exn.slot.12.i = phi i8* [ %exn.slot.11.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit501.i ], [ %301, %lpad327.i ], [ %301, %if.then.i.i495.i ]
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %126) #21
br label %ehcleanup384.i
if.else340.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit745.i
%304 = load i8*, i8** %arrayidx197.i, align 8, !tbaa !9
%call343.i = call %struct._IO_FILE* @fopen(i8* %304, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.84, i64 0, i64 0))
store %struct._IO_FILE* %call343.i, %struct._IO_FILE** @yyin, align 8, !tbaa !9
%cmp344.i = icmp eq %struct._IO_FILE* %call343.i, null
br i1 %cmp344.i, label %if.then345.i, label %if.else351.i
if.then345.i: ; preds = %if.else340.i
%call346.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%305 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call346.i to %"class.kc::impl_fileline"*
%306 = load i8*, i8** %arrayidx197.i, align 8, !tbaa !9
%call349.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.85, i64 0, i64 0), i8* %306)
%call350.i = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %305, %"class.kc::impl_problem"* %call349.i)
%307 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call350.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %307)
br label %if.end355.i
if.else351.i: ; preds = %if.else340.i
%call352.i = call i32 @fclose(%struct._IO_FILE* nonnull %call343.i)
br label %if.end355.i
if.end355.i: ; preds = %if.else351.i, %if.then345.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit908.i, %if.then215.i
%indvars.iv.next.i = add nsw i64 %indvars.iv.i, 1
%lftr.wideiv.i = trunc i64 %indvars.iv.next.i to i32
%exitcond.i = icmp eq i32 %lftr.wideiv.i, %argc
br i1 %exitcond.i, label %for.cond.cleanup195.i, label %for.body196.i
if.then362.i: ; preds = %for.cond.cleanup195.i
%308 = load i32, i32* @optind, align 4, !tbaa !27
%cmp363.i = icmp slt i32 %308, %argc
br i1 %cmp363.i, label %if.then364.i, label %_ZN2kcL11processargsEiPPc.exit
if.then364.i: ; preds = %if.then362.i
%idx.ext.i = sext i32 %308 to i64
%add.ptr.i = getelementptr inbounds i8*, i8** %argv, i64 %idx.ext.i
store i8** %add.ptr.i, i8*** @_ZL14inputfilenames, align 8, !tbaa !9
%sub365.i = sub nsw i32 %argc, %308
store i32 %sub365.i, i32* @_ZL13no_inputfiles, align 4, !tbaa !27
store i32 0, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%309 = load i8*, i8** %add.ptr.i, align 8, !tbaa !9
%call368.i = call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL16make_pg_filenameEPKc(i8* %309)
store %"class.kc::impl_casestring__Str"* %call368.i, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%310 = load i8**, i8*** @_ZL14inputfilenames, align 8, !tbaa !9
%311 = load i32, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%idxprom369.i = sext i32 %311 to i64
%arrayidx370.i = getelementptr inbounds i8*, i8** %310, i64 %idxprom369.i
%312 = load i8*, i8** %arrayidx370.i, align 8, !tbaa !9
%call371.i = call fastcc %struct._IO_FILE* @_ZN2kcL8openfileEPKcS1_(i8* %312)
store %struct._IO_FILE* %call371.i, %struct._IO_FILE** @yyin, align 8, !tbaa !9
%cmp372.i = icmp eq %struct._IO_FILE* %call371.i, null
br i1 %cmp372.i, label %if.then373.i, label %if.end379.i
if.then373.i: ; preds = %if.then364.i
%call374.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%313 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call374.i to %"class.kc::impl_fileline"*
%314 = load i8**, i8*** @_ZL14inputfilenames, align 8, !tbaa !9
%315 = load i32, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%idxprom375.i = sext i32 %315 to i64
%arrayidx376.i = getelementptr inbounds i8*, i8** %314, i64 %idxprom375.i
%316 = load i8*, i8** %arrayidx376.i, align 8, !tbaa !9
%call377.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.85, i64 0, i64 0), i8* %316)
%call378.i = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %313, %"class.kc::impl_problem"* %call377.i)
%317 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call378.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %317)
br label %if.end379.i
if.end379.i: ; preds = %if.then373.i, %if.then364.i
store i32 1, i32* @pg_lineno, align 4, !tbaa !27
store i32 0, i32* @pg_column, align 4, !tbaa !27
store i32 0, i32* @pg_charpos, align 4, !tbaa !27
br label %_ZN2kcL11processargsEiPPc.exit
if.else381.i: ; preds = %for.cond.cleanup195.i
call void @_ZN2kc5leaveEi(i32 1)
unreachable
ehcleanup384.i: ; preds = %ehcleanup339.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit576.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit594.i
%ehselector.slot.14.i = phi i32 [ %ehselector.slot.3.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit594.i ], [ %ehselector.slot.12.i, %ehcleanup339.i ], [ %ehselector.slot.5.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit576.i ]
%exn.slot.14.i = phi i8* [ %exn.slot.3.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit594.i ], [ %exn.slot.12.i, %ehcleanup339.i ], [ %exn.slot.5.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit576.i ]
%lpad.val.i = insertvalue { i8*, i32 } undef, i8* %exn.slot.14.i, 0
%lpad.val385.i = insertvalue { i8*, i32 } %lpad.val.i, i32 %ehselector.slot.14.i, 1
resume { i8*, i32 } %lpad.val385.i
_ZN2kcL11processargsEiPPc.exit: ; preds = %if.then362.i, %if.end379.i
%call.i = call void (i32)* @signal(i32 2, void (i32)* nonnull @cleanup_and_die) #21
%call1.i840 = call void (i32)* @signal(i32 15, void (i32)* nonnull @cleanup_and_die) #21
%call2.i841 = call void (i32)* @signal(i32 11, void (i32)* nonnull @cleanup_and_abort) #21
%call3.i = call void (i32)* @signal(i32 4, void (i32)* nonnull @cleanup_and_abort) #21
%call4.i = call void (i32)* @signal(i32 31, void (i32)* nonnull @cleanup_and_abort) #21
%call5.i = call void (i32)* @signal(i32 6, void (i32)* nonnull @cleanup_and_abort) #21
%call6.i = call void (i32)* @signal(i32 1, void (i32)* nonnull @cleanup_and_die) #21
%call7.i842 = call void (i32)* @signal(i32 3, void (i32)* nonnull @cleanup_and_die) #21
%call8.i843 = call void (i32)* @signal(i32 7, void (i32)* nonnull @cleanup_and_abort) #21
store i32 1, i32* @pg_lineno, align 4, !tbaa !27
store i32 0, i32* @pg_column, align 4, !tbaa !27
store i32 0, i32* @pg_charpos, align 4, !tbaa !27
%318 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool = icmp eq i8 %318, 0
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %_ZN2kcL11processargsEiPPc.exit
%call1.i845 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([24 x i8], [24 x i8]* @.str.6, i64 0, i64 0), i64 23)
%call.i847 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull @_ZSt4cout)
br label %if.end
if.end: ; preds = %_ZN2kcL11processargsEiPPc.exit, %if.then
%call.i848 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.94, i64 0, i64 0), i32 -1)
%call1.i849 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i848)
%call2.i850 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.95, i64 0, i64 0), i32 -1)
%call3.i851 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call2.i850)
%call4.i852 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.96, i64 0, i64 0), i32 -1)
%call5.i853 = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call4.i852)
%319 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call5.i853, i64 0, i32 0
%call6.i854 = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %319)
%320 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call6.i854, i64 0, i32 0
%call7.i855 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.97, i64 0, i64 0), i32 -1)
%call8.i856 = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call7.i855)
%321 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call8.i856, i64 0, i32 0
%call9.i857 = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %321)
%322 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call9.i857, i64 0, i32 0
%call10.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.98, i64 0, i64 0), i32 -1)
%call11.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call10.i)
%323 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call11.i, i64 0, i32 0
%call12.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %323)
%324 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call12.i, i64 0, i32 0
%call13.i858 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.99, i64 0, i64 0), i32 -1)
%call14.i859 = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call13.i858)
%325 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call14.i859, i64 0, i32 0
%call15.i860 = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %325)
%326 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call15.i860, i64 0, i32 0
%call.i.i861 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.100, i64 0, i64 0), i32 -1)
%call1.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i.i861)
%327 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i.i, i64 0, i32 0
%call2.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %327)
%328 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i.i, i64 0, i32 0
%call3.i.i = call %"class.kc::impl_ID"* @_ZN2kc9f_emptyIdEv()
%call4.i.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %call3.i.i)
%329 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call4.i.i, i64 0, i32 0
%call5.i.i = call %"class.kc::impl_productionblock_Emptyproductionblock"* @_ZN2kc20EmptyproductionblockEv()
%330 = getelementptr %"class.kc::impl_productionblock_Emptyproductionblock", %"class.kc::impl_productionblock_Emptyproductionblock"* %call5.i.i, i64 0, i32 0
%call6.i.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call7.i.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call8.i.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call6.i.i, %"class.kc::impl_Ctexts"* %call7.i.i)
%331 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call8.i.i, i64 0, i32 0
%call9.i.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %328, %"class.kc::impl_storageoption"* %329, %"class.kc::impl_productionblock"* %330, %"class.kc::impl_Ccode_option"* %331)
%332 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call9.i.i, i64 0, i32 0
%call10.i.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %332)
%333 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call10.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %328, %"class.kc::impl_IDtype"* %333)
store %"class.kc::impl_phylumdeclaration"* %332, %"class.kc::impl_phylumdeclaration"** @The_abstract_phylum_decl, align 8, !tbaa !9
%call.i146.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.101, i64 0, i64 0), i32 -1)
%call1.i147.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i146.i)
%334 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i147.i, i64 0, i32 0
%call2.i148.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %334)
%335 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i148.i, i64 0, i32 0
%call3.i149.i = call %"class.kc::impl_ID"* @_ZN2kc9f_emptyIdEv()
%call4.i150.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %call3.i149.i)
%336 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call4.i150.i, i64 0, i32 0
%call5.i151.i = call %"class.kc::impl_productionblock_Emptyproductionblock"* @_ZN2kc20EmptyproductionblockEv()
%337 = getelementptr %"class.kc::impl_productionblock_Emptyproductionblock", %"class.kc::impl_productionblock_Emptyproductionblock"* %call5.i151.i, i64 0, i32 0
%call6.i152.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call7.i153.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call8.i154.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call6.i152.i, %"class.kc::impl_Ctexts"* %call7.i153.i)
%338 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call8.i154.i, i64 0, i32 0
%call9.i155.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %335, %"class.kc::impl_storageoption"* %336, %"class.kc::impl_productionblock"* %337, %"class.kc::impl_Ccode_option"* %338)
%339 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call9.i155.i, i64 0, i32 0
%call10.i156.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %339)
%340 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call10.i156.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %335, %"class.kc::impl_IDtype"* %340)
store %"class.kc::impl_phylumdeclaration"* %339, %"class.kc::impl_phylumdeclaration"** @The_abstract_phylum_ref_decl, align 8, !tbaa !9
%call.i157.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.102, i64 0, i64 0), i32 -1)
%call1.i158.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i157.i)
%341 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i158.i, i64 0, i32 0
%call2.i159.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %341)
%342 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i159.i, i64 0, i32 0
%call3.i160.i = call %"class.kc::impl_ID"* @_ZN2kc9f_emptyIdEv()
%call4.i161.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %call3.i160.i)
%343 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call4.i161.i, i64 0, i32 0
%call5.i162.i = call %"class.kc::impl_productionblock_Emptyproductionblock"* @_ZN2kc20EmptyproductionblockEv()
%344 = getelementptr %"class.kc::impl_productionblock_Emptyproductionblock", %"class.kc::impl_productionblock_Emptyproductionblock"* %call5.i162.i, i64 0, i32 0
%call6.i163.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call7.i164.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call8.i165.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call6.i163.i, %"class.kc::impl_Ctexts"* %call7.i164.i)
%345 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call8.i165.i, i64 0, i32 0
%call9.i166.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %342, %"class.kc::impl_storageoption"* %343, %"class.kc::impl_productionblock"* %344, %"class.kc::impl_Ccode_option"* %345)
%346 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call9.i166.i, i64 0, i32 0
%call10.i167.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %346)
%347 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call10.i167.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %342, %"class.kc::impl_IDtype"* %347)
store %"class.kc::impl_phylumdeclaration"* %346, %"class.kc::impl_phylumdeclaration"** @The_abstract_list_decl, align 8, !tbaa !9
%call19.i = call %"class.kc::impl_phylumdeclarations"* @_ZN2kc21NilphylumdeclarationsEv()
%call.i.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.103, i64 0, i64 0), i32 -1)
%call1.i.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i.i.i)
%348 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i.i.i, i64 0, i32 0
%call2.i.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %348)
%349 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i.i.i, i64 0, i32 0
%call3.i.i.i862 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.99, i64 0, i64 0), i32 -1)
%call4.i.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call3.i.i.i862)
%350 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call4.i.i.i, i64 0, i32 0
%call5.i.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %350)
%351 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call5.i.i.i, i64 0, i32 0
%call6.i.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.104, i64 0, i64 0), i32 -1)
%call7.i.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call6.i.i.i)
%352 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call7.i.i.i, i64 0, i32 0
%call8.i.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %352)
%353 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call8.i.i.i, i64 0, i32 0
%call9.i.i.i = call %"class.kc::impl_arguments"* @_ZN2kc12NilargumentsEv()
%call10.i.i.i = call %"class.kc::impl_alternative_Alternative"* @_ZN2kc11AlternativeEPNS_7impl_IDEPNS_14impl_argumentsE(%"class.kc::impl_ID"* %353, %"class.kc::impl_arguments"* %call9.i.i.i)
%354 = getelementptr %"class.kc::impl_alternative_Alternative", %"class.kc::impl_alternative_Alternative"* %call10.i.i.i, i64 0, i32 0
%call11.i.i.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %351)
%355 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call11.i.i.i, i64 0, i32 0
%call12.i.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc15NilalternativesEv()
%call13.i.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc16ConsalternativesEPNS_16impl_alternativeEPNS_17impl_alternativesE(%"class.kc::impl_alternative"* %354, %"class.kc::impl_alternatives"* %call12.i.i.i)
%call14.i.i.i = call %"class.kc::impl_productionblock_PredefinedAlternatives"* @_ZN2kc22PredefinedAlternativesEPNS_17impl_alternativesE(%"class.kc::impl_alternatives"* %call13.i.i.i)
%356 = getelementptr %"class.kc::impl_productionblock_PredefinedAlternatives", %"class.kc::impl_productionblock_PredefinedAlternatives"* %call14.i.i.i, i64 0, i32 0
%call15.i.i.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call16.i.i.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call17.i.i.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call15.i.i.i, %"class.kc::impl_Ctexts"* %call16.i.i.i)
%357 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call17.i.i.i, i64 0, i32 0
%call18.i.i.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %349, %"class.kc::impl_storageoption"* %355, %"class.kc::impl_productionblock"* %356, %"class.kc::impl_Ccode_option"* %357)
%358 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call18.i.i.i, i64 0, i32 0
%call19.i.i.i = call %"class.kc::impl_IDtype_ITPredefinedOperator"* @_ZN2kc20ITPredefinedOperatorEPNS_16impl_alternativeEPNS_7impl_IDE(%"class.kc::impl_alternative"* %354, %"class.kc::impl_ID"* %349)
%359 = getelementptr %"class.kc::impl_IDtype_ITPredefinedOperator", %"class.kc::impl_IDtype_ITPredefinedOperator"* %call19.i.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %353, %"class.kc::impl_IDtype"* %359)
%call20.i.i.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %358)
%360 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call20.i.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %349, %"class.kc::impl_IDtype"* %360)
%call.i10.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.105, i64 0, i64 0), i32 -1)
%call1.i11.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i10.i.i)
%361 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i11.i.i, i64 0, i32 0
%call2.i12.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %361)
%362 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i12.i.i, i64 0, i32 0
%call3.i13.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.99, i64 0, i64 0), i32 -1)
%call4.i14.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call3.i13.i.i)
%363 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call4.i14.i.i, i64 0, i32 0
%call5.i15.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %363)
%364 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call5.i15.i.i, i64 0, i32 0
%call6.i16.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.106, i64 0, i64 0), i32 -1)
%call7.i17.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call6.i16.i.i)
%365 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call7.i17.i.i, i64 0, i32 0
%call8.i18.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %365)
%366 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call8.i18.i.i, i64 0, i32 0
%call9.i19.i.i = call %"class.kc::impl_arguments"* @_ZN2kc12NilargumentsEv()
%call10.i20.i.i = call %"class.kc::impl_alternative_Alternative"* @_ZN2kc11AlternativeEPNS_7impl_IDEPNS_14impl_argumentsE(%"class.kc::impl_ID"* %366, %"class.kc::impl_arguments"* %call9.i19.i.i)
%367 = getelementptr %"class.kc::impl_alternative_Alternative", %"class.kc::impl_alternative_Alternative"* %call10.i20.i.i, i64 0, i32 0
%call11.i21.i.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %364)
%368 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call11.i21.i.i, i64 0, i32 0
%call12.i22.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc15NilalternativesEv()
%call13.i23.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc16ConsalternativesEPNS_16impl_alternativeEPNS_17impl_alternativesE(%"class.kc::impl_alternative"* %367, %"class.kc::impl_alternatives"* %call12.i22.i.i)
%call14.i24.i.i = call %"class.kc::impl_productionblock_PredefinedAlternatives"* @_ZN2kc22PredefinedAlternativesEPNS_17impl_alternativesE(%"class.kc::impl_alternatives"* %call13.i23.i.i)
%369 = getelementptr %"class.kc::impl_productionblock_PredefinedAlternatives", %"class.kc::impl_productionblock_PredefinedAlternatives"* %call14.i24.i.i, i64 0, i32 0
%call15.i25.i.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call16.i26.i.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call17.i27.i.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call15.i25.i.i, %"class.kc::impl_Ctexts"* %call16.i26.i.i)
%370 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call17.i27.i.i, i64 0, i32 0
%call18.i28.i.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %362, %"class.kc::impl_storageoption"* %368, %"class.kc::impl_productionblock"* %369, %"class.kc::impl_Ccode_option"* %370)
%371 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call18.i28.i.i, i64 0, i32 0
%call19.i29.i.i = call %"class.kc::impl_IDtype_ITPredefinedOperator"* @_ZN2kc20ITPredefinedOperatorEPNS_16impl_alternativeEPNS_7impl_IDE(%"class.kc::impl_alternative"* %367, %"class.kc::impl_ID"* %362)
%372 = getelementptr %"class.kc::impl_IDtype_ITPredefinedOperator", %"class.kc::impl_IDtype_ITPredefinedOperator"* %call19.i29.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %366, %"class.kc::impl_IDtype"* %372)
%call20.i30.i.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %371)
%373 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call20.i30.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %362, %"class.kc::impl_IDtype"* %373)
%call.i31.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.107, i64 0, i64 0), i32 -1)
%call1.i32.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i31.i.i)
%374 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i32.i.i, i64 0, i32 0
%call2.i33.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %374)
%375 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i33.i.i, i64 0, i32 0
%call3.i34.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.99, i64 0, i64 0), i32 -1)
%call4.i35.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call3.i34.i.i)
%376 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call4.i35.i.i, i64 0, i32 0
%call5.i36.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %376)
%377 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call5.i36.i.i, i64 0, i32 0
%call6.i37.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.108, i64 0, i64 0), i32 -1)
%call7.i38.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call6.i37.i.i)
%378 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call7.i38.i.i, i64 0, i32 0
%call8.i39.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %378)
%379 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call8.i39.i.i, i64 0, i32 0
%call9.i40.i.i = call %"class.kc::impl_arguments"* @_ZN2kc12NilargumentsEv()
%call10.i41.i.i = call %"class.kc::impl_alternative_Alternative"* @_ZN2kc11AlternativeEPNS_7impl_IDEPNS_14impl_argumentsE(%"class.kc::impl_ID"* %379, %"class.kc::impl_arguments"* %call9.i40.i.i)
%380 = getelementptr %"class.kc::impl_alternative_Alternative", %"class.kc::impl_alternative_Alternative"* %call10.i41.i.i, i64 0, i32 0
%call11.i42.i.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %377)
%381 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call11.i42.i.i, i64 0, i32 0
%call12.i43.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc15NilalternativesEv()
%call13.i44.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc16ConsalternativesEPNS_16impl_alternativeEPNS_17impl_alternativesE(%"class.kc::impl_alternative"* %380, %"class.kc::impl_alternatives"* %call12.i43.i.i)
%call14.i45.i.i = call %"class.kc::impl_productionblock_PredefinedAlternatives"* @_ZN2kc22PredefinedAlternativesEPNS_17impl_alternativesE(%"class.kc::impl_alternatives"* %call13.i44.i.i)
%382 = getelementptr %"class.kc::impl_productionblock_PredefinedAlternatives", %"class.kc::impl_productionblock_PredefinedAlternatives"* %call14.i45.i.i, i64 0, i32 0
%call15.i46.i.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call16.i47.i.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call17.i48.i.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call15.i46.i.i, %"class.kc::impl_Ctexts"* %call16.i47.i.i)
%383 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call17.i48.i.i, i64 0, i32 0
%call18.i49.i.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %375, %"class.kc::impl_storageoption"* %381, %"class.kc::impl_productionblock"* %382, %"class.kc::impl_Ccode_option"* %383)
%384 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call18.i49.i.i, i64 0, i32 0
%call19.i50.i.i = call %"class.kc::impl_IDtype_ITPredefinedOperator"* @_ZN2kc20ITPredefinedOperatorEPNS_16impl_alternativeEPNS_7impl_IDE(%"class.kc::impl_alternative"* %380, %"class.kc::impl_ID"* %375)
%385 = getelementptr %"class.kc::impl_IDtype_ITPredefinedOperator", %"class.kc::impl_IDtype_ITPredefinedOperator"* %call19.i50.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %379, %"class.kc::impl_IDtype"* %385)
%call20.i51.i.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %384)
%386 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call20.i51.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %375, %"class.kc::impl_IDtype"* %386)
%call.i52.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.109, i64 0, i64 0), i32 -1)
%call1.i53.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i52.i.i)
%387 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i53.i.i, i64 0, i32 0
%call2.i54.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %387)
%388 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i54.i.i, i64 0, i32 0
%call3.i55.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.99, i64 0, i64 0), i32 -1)
%call4.i56.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call3.i55.i.i)
%389 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call4.i56.i.i, i64 0, i32 0
%call5.i57.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %389)
%390 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call5.i57.i.i, i64 0, i32 0
%call6.i58.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.110, i64 0, i64 0), i32 -1)
%call7.i59.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call6.i58.i.i)
%391 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call7.i59.i.i, i64 0, i32 0
%call8.i60.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %391)
%392 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call8.i60.i.i, i64 0, i32 0
%call9.i61.i.i = call %"class.kc::impl_arguments"* @_ZN2kc12NilargumentsEv()
%call10.i62.i.i = call %"class.kc::impl_alternative_Alternative"* @_ZN2kc11AlternativeEPNS_7impl_IDEPNS_14impl_argumentsE(%"class.kc::impl_ID"* %392, %"class.kc::impl_arguments"* %call9.i61.i.i)
%393 = getelementptr %"class.kc::impl_alternative_Alternative", %"class.kc::impl_alternative_Alternative"* %call10.i62.i.i, i64 0, i32 0
%call11.i63.i.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %390)
%394 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call11.i63.i.i, i64 0, i32 0
%call12.i64.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc15NilalternativesEv()
%call13.i65.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc16ConsalternativesEPNS_16impl_alternativeEPNS_17impl_alternativesE(%"class.kc::impl_alternative"* %393, %"class.kc::impl_alternatives"* %call12.i64.i.i)
%call14.i66.i.i = call %"class.kc::impl_productionblock_PredefinedAlternatives"* @_ZN2kc22PredefinedAlternativesEPNS_17impl_alternativesE(%"class.kc::impl_alternatives"* %call13.i65.i.i)
%395 = getelementptr %"class.kc::impl_productionblock_PredefinedAlternatives", %"class.kc::impl_productionblock_PredefinedAlternatives"* %call14.i66.i.i, i64 0, i32 0
%call15.i67.i.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call16.i68.i.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call17.i69.i.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call15.i67.i.i, %"class.kc::impl_Ctexts"* %call16.i68.i.i)
%396 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call17.i69.i.i, i64 0, i32 0
%call18.i70.i.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %388, %"class.kc::impl_storageoption"* %394, %"class.kc::impl_productionblock"* %395, %"class.kc::impl_Ccode_option"* %396)
%397 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call18.i70.i.i, i64 0, i32 0
%call19.i71.i.i = call %"class.kc::impl_IDtype_ITPredefinedOperator"* @_ZN2kc20ITPredefinedOperatorEPNS_16impl_alternativeEPNS_7impl_IDE(%"class.kc::impl_alternative"* %393, %"class.kc::impl_ID"* %388)
%398 = getelementptr %"class.kc::impl_IDtype_ITPredefinedOperator", %"class.kc::impl_IDtype_ITPredefinedOperator"* %call19.i71.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %392, %"class.kc::impl_IDtype"* %398)
%call20.i72.i.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %397)
%399 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call20.i72.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %388, %"class.kc::impl_IDtype"* %399)
%call.i73.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.111, i64 0, i64 0), i32 -1)
%call1.i74.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call.i73.i.i)
%400 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call1.i74.i.i, i64 0, i32 0
%call2.i75.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %400)
%401 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call2.i75.i.i, i64 0, i32 0
%call3.i76.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.99, i64 0, i64 0), i32 -1)
%call4.i77.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call3.i76.i.i)
%402 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call4.i77.i.i, i64 0, i32 0
%call5.i78.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %402)
%403 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call5.i78.i.i, i64 0, i32 0
%call6.i79.i.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.112, i64 0, i64 0), i32 -1)
%call7.i80.i.i = call %"class.kc::impl_uniqID_Str"* @_ZN2kc3StrEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call6.i79.i.i)
%404 = getelementptr %"class.kc::impl_uniqID_Str", %"class.kc::impl_uniqID_Str"* %call7.i80.i.i, i64 0, i32 0
%call8.i81.i.i = call %"class.kc::impl_ID_Id"* @_ZN2kc2IdEPNS_11impl_uniqIDE(%"class.kc::impl_uniqID"* %404)
%405 = getelementptr %"class.kc::impl_ID_Id", %"class.kc::impl_ID_Id"* %call8.i81.i.i, i64 0, i32 0
%call9.i82.i.i = call %"class.kc::impl_arguments"* @_ZN2kc12NilargumentsEv()
%call10.i83.i.i = call %"class.kc::impl_alternative_Alternative"* @_ZN2kc11AlternativeEPNS_7impl_IDEPNS_14impl_argumentsE(%"class.kc::impl_ID"* %405, %"class.kc::impl_arguments"* %call9.i82.i.i)
%406 = getelementptr %"class.kc::impl_alternative_Alternative", %"class.kc::impl_alternative_Alternative"* %call10.i83.i.i, i64 0, i32 0
%call11.i84.i.i = call %"class.kc::impl_storageoption_PositiveStorageOption"* @_ZN2kc21PositiveStorageOptionEPNS_7impl_IDE(%"class.kc::impl_ID"* %403)
%407 = getelementptr %"class.kc::impl_storageoption_PositiveStorageOption", %"class.kc::impl_storageoption_PositiveStorageOption"* %call11.i84.i.i, i64 0, i32 0
%call12.i85.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc15NilalternativesEv()
%call13.i86.i.i = call %"class.kc::impl_alternatives"* @_ZN2kc16ConsalternativesEPNS_16impl_alternativeEPNS_17impl_alternativesE(%"class.kc::impl_alternative"* %406, %"class.kc::impl_alternatives"* %call12.i85.i.i)
%call14.i87.i.i = call %"class.kc::impl_productionblock_PredefinedAlternatives"* @_ZN2kc22PredefinedAlternativesEPNS_17impl_alternativesE(%"class.kc::impl_alternatives"* %call13.i86.i.i)
%408 = getelementptr %"class.kc::impl_productionblock_PredefinedAlternatives", %"class.kc::impl_productionblock_PredefinedAlternatives"* %call14.i87.i.i, i64 0, i32 0
%call15.i88.i.i = call %"class.kc::impl_attributes"* @_ZN2kc13NilattributesEv()
%call16.i89.i.i = call %"class.kc::impl_Ctexts"* @_ZN2kc9NilCtextsEv()
%call17.i90.i.i = call %"class.kc::impl_Ccode_option_CcodeOption"* @_ZN2kc11CcodeOptionEPNS_15impl_attributesEPNS_11impl_CtextsE(%"class.kc::impl_attributes"* %call15.i88.i.i, %"class.kc::impl_Ctexts"* %call16.i89.i.i)
%409 = getelementptr %"class.kc::impl_Ccode_option_CcodeOption", %"class.kc::impl_Ccode_option_CcodeOption"* %call17.i90.i.i, i64 0, i32 0
%call18.i91.i.i = call %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* @_ZN2kc17PhylumDeclarationEPNS_7impl_IDEPNS_18impl_storageoptionEPNS_20impl_productionblockEPNS_17impl_Ccode_optionE(%"class.kc::impl_ID"* %401, %"class.kc::impl_storageoption"* %407, %"class.kc::impl_productionblock"* %408, %"class.kc::impl_Ccode_option"* %409)
%410 = getelementptr %"class.kc::impl_phylumdeclaration_PhylumDeclaration", %"class.kc::impl_phylumdeclaration_PhylumDeclaration"* %call18.i91.i.i, i64 0, i32 0
%call19.i92.i.i = call %"class.kc::impl_IDtype_ITPredefinedOperator"* @_ZN2kc20ITPredefinedOperatorEPNS_16impl_alternativeEPNS_7impl_IDE(%"class.kc::impl_alternative"* %406, %"class.kc::impl_ID"* %401)
%411 = getelementptr %"class.kc::impl_IDtype_ITPredefinedOperator", %"class.kc::impl_IDtype_ITPredefinedOperator"* %call19.i92.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %405, %"class.kc::impl_IDtype"* %411)
%call20.i93.i.i = call %"class.kc::impl_IDtype_ITPredefinedPhylum"* @_ZN2kc18ITPredefinedPhylumEPNS_22impl_phylumdeclarationE(%"class.kc::impl_phylumdeclaration"* %410)
%412 = getelementptr %"class.kc::impl_IDtype_ITPredefinedPhylum", %"class.kc::impl_IDtype_ITPredefinedPhylum"* %call20.i93.i.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %401, %"class.kc::impl_IDtype"* %412)
%call5.i168.i = call %"class.kc::impl_phylumdeclarations"* @_ZN2kc22ConsphylumdeclarationsEPNS_22impl_phylumdeclarationEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclaration"* %410, %"class.kc::impl_phylumdeclarations"* %call19.i)
%call6.i169.i = call %"class.kc::impl_phylumdeclarations"* @_ZN2kc22ConsphylumdeclarationsEPNS_22impl_phylumdeclarationEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclaration"* %397, %"class.kc::impl_phylumdeclarations"* %call5.i168.i)
%call7.i170.i = call %"class.kc::impl_phylumdeclarations"* @_ZN2kc22ConsphylumdeclarationsEPNS_22impl_phylumdeclarationEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclaration"* %384, %"class.kc::impl_phylumdeclarations"* %call6.i169.i)
%call8.i171.i = call %"class.kc::impl_phylumdeclarations"* @_ZN2kc22ConsphylumdeclarationsEPNS_22impl_phylumdeclarationEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclaration"* %371, %"class.kc::impl_phylumdeclarations"* %call7.i170.i)
%call9.i172.i = call %"class.kc::impl_phylumdeclarations"* @_ZN2kc22ConsphylumdeclarationsEPNS_22impl_phylumdeclarationEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclaration"* %358, %"class.kc::impl_phylumdeclarations"* %call8.i171.i)
store %"class.kc::impl_phylumdeclarations"* %call9.i172.i, %"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations, align 8, !tbaa !9
%call21.i = call %"class.kc::impl_rwdeclarations"* @_ZN2kc17NilrwdeclarationsEv()
store %"class.kc::impl_rwdeclarations"* %call21.i, %"class.kc::impl_rwdeclarations"** @Therwdeclarations, align 8, !tbaa !9
%call22.i = call %"class.kc::impl_unparsedeclarations"* @_ZN2kc22NilunparsedeclarationsEv()
store %"class.kc::impl_unparsedeclarations"* %call22.i, %"class.kc::impl_unparsedeclarations"** @Theunparsedeclarations, align 8, !tbaa !9
%call23.i = call %"class.kc::impl_argsnumbers"* @_ZN2kc14NilargsnumbersEv()
store %"class.kc::impl_argsnumbers"* %call23.i, %"class.kc::impl_argsnumbers"** @Theargsnumbers, align 8, !tbaa !9
%call24.i = call %"class.kc::impl_fndeclarations"* @_ZN2kc17NilfndeclarationsEv()
store %"class.kc::impl_fndeclarations"* %call24.i, %"class.kc::impl_fndeclarations"** @Thefndeclarations, align 8, !tbaa !9
%call25.i = call %"class.kc::impl_languagenames"* @_ZN2kc16NillanguagenamesEv()
store %"class.kc::impl_languagenames"* %call25.i, %"class.kc::impl_languagenames"** @Thelanguages, align 8, !tbaa !9
%call26.i = call %"class.kc::impl_baseclass_declarations"* @_ZN2kc25Nilbaseclass_declarationsEv()
store %"class.kc::impl_baseclass_declarations"* %call26.i, %"class.kc::impl_baseclass_declarations"** @Thebaseclasses, align 8, !tbaa !9
%inc_type.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call1.i849, i64 0, i32 0, i32 1
store i32 0, i32* %inc_type.i, align 8, !tbaa !85
%inc_type27.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call3.i851, i64 0, i32 0, i32 1
store i32 1, i32* %inc_type27.i, align 8, !tbaa !85
%call28.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.17, i64 0, i64 0), i32 -1)
%call29.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call28.i)
%inc_type30.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call29.i, i64 0, i32 0, i32 1
store i32 0, i32* %inc_type30.i, align 8, !tbaa !85
%call31.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i64 0, i64 0), i32 -1)
%call32.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call31.i)
%inc_type33.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call32.i, i64 0, i32 0, i32 1
store i32 1, i32* %inc_type33.i, align 8, !tbaa !85
%call34.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.38, i64 0, i64 0), i32 -1)
%call35.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call34.i)
%inc_type36.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call35.i, i64 0, i32 0, i32 1
store i32 0, i32* %inc_type36.i, align 8, !tbaa !85
%call37.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.39, i64 0, i64 0), i32 -1)
%call38.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call37.i)
%inc_type39.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call38.i, i64 0, i32 0, i32 1
store i32 1, i32* %inc_type39.i, align 8, !tbaa !85
%call40.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0), i32 -1)
%call41.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call40.i)
%inc_type42.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call41.i, i64 0, i32 0, i32 1
store i32 0, i32* %inc_type42.i, align 8, !tbaa !85
%call43.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i64 0, i64 0), i32 -1)
%call44.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call43.i)
%inc_type45.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call44.i, i64 0, i32 0, i32 1
store i32 1, i32* %inc_type45.i, align 8, !tbaa !85
%call46.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.31, i64 0, i64 0), i32 -1)
%call47.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call46.i)
%inc_type48.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call47.i, i64 0, i32 0, i32 1
store i32 0, i32* %inc_type48.i, align 8, !tbaa !85
%call49.i = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.32, i64 0, i64 0), i32 -1)
%call50.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call49.i)
%inc_type51.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call50.i, i64 0, i32 0, i32 1
store i32 1, i32* %inc_type51.i, align 8, !tbaa !85
%call52.i = call %"class.kc::impl_IDtype_ITPredefinedUView"* @_ZN2kc17ITPredefinedUViewEv()
%413 = getelementptr %"class.kc::impl_IDtype_ITPredefinedUView", %"class.kc::impl_IDtype_ITPredefinedUView"* %call52.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %320, %"class.kc::impl_IDtype"* %413)
%call53.i = call %"class.kc::impl_IDtype_ITPredefinedRView"* @_ZN2kc17ITPredefinedRViewEv()
%414 = getelementptr %"class.kc::impl_IDtype_ITPredefinedRView", %"class.kc::impl_IDtype_ITPredefinedRView"* %call53.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %322, %"class.kc::impl_IDtype"* %414)
%call54.i = call %"class.kc::impl_IDtype_ITPredefinedStorageClass"* @_ZN2kc24ITPredefinedStorageClassEv()
%415 = getelementptr %"class.kc::impl_IDtype_ITPredefinedStorageClass", %"class.kc::impl_IDtype_ITPredefinedStorageClass"* %call54.i, i64 0, i32 0
call void @_ZN2kc10v_defoccurEPNS_7impl_IDEPNS_11impl_IDtypeE(%"class.kc::impl_ID"* %326, %"class.kc::impl_IDtype"* %415)
%call55.i = call %"class.kc::impl_viewnames"* @_ZN2kc12NilviewnamesEv()
%call56.i = call %"class.kc::impl_viewnames"* @_ZN2kc13ConsviewnamesEPNS_7impl_IDEPNS_14impl_viewnamesE(%"class.kc::impl_ID"* %320, %"class.kc::impl_viewnames"* %call55.i)
store %"class.kc::impl_viewnames"* %call56.i, %"class.kc::impl_viewnames"** @Theuviewnames, align 8, !tbaa !9
%call57.i = call %"class.kc::impl_viewnames"* @_ZN2kc12NilviewnamesEv()
%call58.i = call %"class.kc::impl_viewnames"* @_ZN2kc13ConsviewnamesEPNS_7impl_IDEPNS_14impl_viewnamesE(%"class.kc::impl_ID"* %322, %"class.kc::impl_viewnames"* %call57.i)
store %"class.kc::impl_viewnames"* %call58.i, %"class.kc::impl_viewnames"** @Therviewnames, align 8, !tbaa !9
%call59.i = call %"class.kc::impl_storageclasses"* @_ZN2kc17NilstorageclassesEv()
%call60.i = call %"class.kc::impl_storageclasses"* @_ZN2kc18ConsstorageclassesEPNS_7impl_IDEPNS_19impl_storageclassesE(%"class.kc::impl_ID"* %324, %"class.kc::impl_storageclasses"* %call59.i)
%call61.i = call %"class.kc::impl_storageclasses"* @_ZN2kc18ConsstorageclassesEPNS_7impl_IDEPNS_19impl_storageclassesE(%"class.kc::impl_ID"* %326, %"class.kc::impl_storageclasses"* %call60.i)
store %"class.kc::impl_storageclasses"* %call61.i, %"class.kc::impl_storageclasses"** @Thestorageclasses, align 8, !tbaa !9
%inc1.i.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call1.i849, i64 0, i32 0, i32 2, i32 0
%inc2.i.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call1.i849, i64 0, i32 0, i32 2, i32 1
%inc1.i185.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call3.i851, i64 0, i32 0, i32 2, i32 0
%inc2.i186.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call3.i851, i64 0, i32 0, i32 2, i32 1
br label %do.body.i
do.body.i: ; preds = %_ZN2kcL21prepare_for_next_fileEv.exit.i, %if.end
%call62.i = call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL17mkfunctionincnameEPKc(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.45, i64 0, i64 0))
%call63.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call62.i)
%inc_type64.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call63.i, i64 0, i32 0, i32 1
store i32 1, i32* %inc_type64.i, align 8, !tbaa !85
%call65.i = call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL17mkfunctionincnameEPKc(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.44, i64 0, i64 0))
%call66.i = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call65.i)
%inc_type67.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call66.i, i64 0, i32 0, i32 1
store i32 0, i32* %inc_type67.i, align 8, !tbaa !85
%416 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool.i863 = icmp eq i8 %416, 0
br i1 %tobool.i863, label %if.end.i, label %if.then.i865
if.then.i865: ; preds = %do.body.i
%call1.i174.i = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), i64 1)
%417 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%name.i = getelementptr inbounds %"class.kc::impl_casestring__Str", %"class.kc::impl_casestring__Str"* %417, i64 0, i32 1
%418 = load i8*, i8** %name.i, align 8, !tbaa !10
%call.i175.i = call i8* @strrchr(i8* nonnull dereferenceable(1) %418, i32 47) #25
%tobool.i.i = icmp eq i8* %call.i175.i, null
%add.ptr.i.i864 = getelementptr inbounds i8, i8* %call.i175.i, i64 1
%cond.i.i = select i1 %tobool.i.i, i8* %418, i8* %add.ptr.i.i864
%tobool.i176.i = icmp eq i8* %cond.i.i, null
br i1 %tobool.i176.i, label %if.then.i.i, label %if.else.i.i
if.then.i.i: ; preds = %if.then.i865
%vtable.i.i = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !19
%vbase.offset.ptr.i.i = getelementptr i8, i8* %vtable.i.i, i64 -24
%419 = bitcast i8* %vbase.offset.ptr.i.i to i64*
%vbase.offset.i.i = load i64, i64* %419, align 8
%add.ptr.i177.i = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i.i
%420 = bitcast i8* %add.ptr.i177.i to %"class.std::basic_ios"*
%_M_streambuf_state.i.i.i.i = getelementptr inbounds i8, i8* %add.ptr.i177.i, i64 32
%421 = bitcast i8* %_M_streambuf_state.i.i.i.i to i32*
%422 = load i32, i32* %421, align 8, !tbaa !89
%or.i.i.i.i = or i32 %422, 1
call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* nonnull %420, i32 %or.i.i.i.i)
br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit.i
if.else.i.i: ; preds = %if.then.i865
%call.i.i178.i = call i64 @strlen(i8* nonnull dereferenceable(1) %cond.i.i) #21
%call1.i179.i = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull %cond.i.i, i64 %call.i.i178.i)
br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit.i
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit.i: ; preds = %if.else.i.i, %if.then.i.i
%call.i181.i = call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull @_ZSt4cout)
br label %if.end.i
if.end.i: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit.i, %do.body.i
%call72.i = invoke i32 @_Z7yyparsev()
to label %invoke.cont.i unwind label %lpad.i
invoke.cont.i: ; preds = %if.end.i
%423 = load i64, i64* bitcast (%"class.kc::impl_fndeclarations"** @Thefndeclarations to i64*), align 8, !tbaa !9
%424 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%call74.i = invoke %"class.kc::impl_fnfile_FnFile"* @_ZN2kc6FnFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %424)
to label %invoke.cont73.i unwind label %lpad.i
invoke.cont73.i: ; preds = %invoke.cont.i
%fns.i = getelementptr inbounds %"class.kc::impl_fnfile_FnFile", %"class.kc::impl_fnfile_FnFile"* %call74.i, i64 0, i32 0, i32 1
%425 = bitcast %"class.kc::impl_fndeclarations"** %fns.i to i64*
store i64 %423, i64* %425, align 8, !tbaa !95
%426 = load i32, i32* %inc_type.i, align 8, !tbaa !85
%cmp.i.i866 = icmp eq i32 %426, 0
%cond-lvalue.i.i = select i1 %cmp.i.i866, %"class.kc::impl_includedeclarations"** %inc1.i.i, %"class.kc::impl_includedeclarations"** %inc2.i.i
%427 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i.i to i64*
%428 = load i64, i64* %427, align 8, !tbaa !9
%429 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%call79.i = invoke %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %429)
to label %invoke.cont78.i unwind label %lpad.i
invoke.cont78.i: ; preds = %invoke.cont73.i
%inc1.i182.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call79.i, i64 0, i32 0, i32 2, i32 0
%430 = bitcast %"class.kc::impl_includedeclarations"** %inc1.i182.i to i64*
store i64 %428, i64* %430, align 8, !tbaa !9
%431 = load i32, i32* %inc_type27.i, align 8, !tbaa !85
%cmp.i184.i = icmp eq i32 %431, 0
%cond-lvalue.i187.i = select i1 %cmp.i184.i, %"class.kc::impl_includedeclarations"** %inc1.i185.i, %"class.kc::impl_includedeclarations"** %inc2.i186.i
%432 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i187.i to i64*
%433 = load i64, i64* %432, align 8, !tbaa !9
%434 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%call88.i = invoke %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %434)
to label %invoke.cont87.i unwind label %lpad.i
invoke.cont87.i: ; preds = %invoke.cont78.i
%inc2.i189.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call88.i, i64 0, i32 0, i32 2, i32 1
%435 = bitcast %"class.kc::impl_includedeclarations"** %inc2.i189.i to i64*
store i64 %433, i64* %435, align 8, !tbaa !9
%436 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%call93.i867 = invoke %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %436)
to label %invoke.cont92.i868 unwind label %lpad.i
invoke.cont92.i868: ; preds = %invoke.cont87.i
%inc_type94.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call93.i867, i64 0, i32 0, i32 1
store i32 3, i32* %inc_type94.i, align 8, !tbaa !85
%call96.i = invoke %"class.kc::impl_includedeclarations"* @_ZN2kc22NilincludedeclarationsEv()
to label %invoke.cont95.i unwind label %lpad.i
invoke.cont95.i: ; preds = %invoke.cont92.i868
%437 = load i32, i32* %inc_type.i, align 8, !tbaa !85
%cmp.i190.i = icmp eq i32 %437, 0
%cond-lvalue.i193.i = select i1 %cmp.i190.i, %"class.kc::impl_includedeclarations"** %inc1.i.i, %"class.kc::impl_includedeclarations"** %inc2.i.i
store %"class.kc::impl_includedeclarations"* %call96.i, %"class.kc::impl_includedeclarations"** %cond-lvalue.i193.i, align 8, !tbaa !9
%call102.i = invoke %"class.kc::impl_includedeclarations"* @_ZN2kc22NilincludedeclarationsEv()
to label %invoke.cont101.i unwind label %lpad.i
invoke.cont101.i: ; preds = %invoke.cont95.i
%438 = load i32, i32* %inc_type27.i, align 8, !tbaa !85
%cmp.i194.i = icmp eq i32 %438, 0
%cond-lvalue.i197.i = select i1 %cmp.i194.i, %"class.kc::impl_includedeclarations"** %inc1.i185.i, %"class.kc::impl_includedeclarations"** %inc2.i186.i
store %"class.kc::impl_includedeclarations"* %call102.i, %"class.kc::impl_includedeclarations"** %cond-lvalue.i197.i, align 8, !tbaa !9
br label %try.cont.i
lpad.i: ; preds = %invoke.cont95.i, %invoke.cont92.i868, %invoke.cont87.i, %invoke.cont78.i, %invoke.cont73.i, %invoke.cont.i, %if.end.i
%439 = landingpad { i8*, i32 }
cleanup
catch i8* bitcast (i8** @_ZTIi to i8*)
%440 = extractvalue { i8*, i32 } %439, 1
%441 = call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIi to i8*)) #21
%matches.i = icmp eq i32 %440, %441
br i1 %matches.i, label %catch.i, label %ehcleanup.i871
catch.i: ; preds = %lpad.i
%442 = extractvalue { i8*, i32 } %439, 0
%443 = call i8* @__cxa_begin_catch(i8* %442) #21
call void @__cxa_end_catch() #21
br label %try.cont.i
try.cont.i: ; preds = %catch.i, %invoke.cont101.i
%call107.i = call %"class.kc::impl_fndeclarations"* @_ZN2kc17NilfndeclarationsEv()
store %"class.kc::impl_fndeclarations"* %call107.i, %"class.kc::impl_fndeclarations"** @Thefndeclarations, align 8, !tbaa !9
%444 = load i32, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%445 = load i32, i32* @_ZL13no_inputfiles, align 4, !tbaa !27
%sub.i.i = add nsw i32 %445, -1
%cmp.i198.i = icmp slt i32 %444, %sub.i.i
br i1 %cmp.i198.i, label %if.then.i202.i, label %if.end12.i.i
if.then.i202.i: ; preds = %try.cont.i
%inc.i.i = add nsw i32 %444, 1
store i32 %inc.i.i, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%446 = load i8**, i8*** @_ZL14inputfilenames, align 8, !tbaa !9
%idxprom.i.i = sext i32 %inc.i.i to i64
%arrayidx.i.i869 = getelementptr inbounds i8*, i8** %446, i64 %idxprom.i.i
%447 = load i8*, i8** %arrayidx.i.i869, align 8, !tbaa !9
%call.i199.i = call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL16make_pg_filenameEPKc(i8* %447)
store %"class.kc::impl_casestring__Str"* %call.i199.i, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
store i32 1, i32* @pg_lineno, align 4, !tbaa !27
store i32 0, i32* @pg_column, align 4, !tbaa !27
store i32 0, i32* @pg_charpos, align 4, !tbaa !27
%448 = load %struct._IO_FILE*, %struct._IO_FILE** @yyin, align 8, !tbaa !9
%call1.i200.i = call i32 @fclose(%struct._IO_FILE* %448)
%449 = load i8**, i8*** @_ZL14inputfilenames, align 8, !tbaa !9
%450 = load i32, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%idxprom2.i.i = sext i32 %450 to i64
%arrayidx3.i.i = getelementptr inbounds i8*, i8** %449, i64 %idxprom2.i.i
%451 = load i8*, i8** %arrayidx3.i.i, align 8, !tbaa !9
%call4.i201.i = call fastcc %struct._IO_FILE* @_ZN2kcL8openfileEPKcS1_(i8* %451)
store %struct._IO_FILE* %call4.i201.i, %struct._IO_FILE** @yyin, align 8, !tbaa !9
%cmp5.i.i = icmp eq %struct._IO_FILE* %call4.i201.i, null
br i1 %cmp5.i.i, label %if.then6.i.i, label %_ZN2kcL21prepare_for_next_fileEv.exit.i
if.then6.i.i: ; preds = %if.then.i202.i
%call7.i203.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%452 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call7.i203.i to %"class.kc::impl_fileline"*
%453 = load i8**, i8*** @_ZL14inputfilenames, align 8, !tbaa !9
%454 = load i32, i32* @_ZL17current_inputfile, align 4, !tbaa !27
%idxprom8.i.i = sext i32 %454 to i64
%arrayidx9.i.i = getelementptr inbounds i8*, i8** %453, i64 %idxprom8.i.i
%455 = load i8*, i8** %arrayidx9.i.i, align 8, !tbaa !9
%call10.i204.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.85, i64 0, i64 0), i8* %455)
%call11.i.i = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %452, %"class.kc::impl_problem"* %call10.i204.i)
%456 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call11.i.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %456)
%.pre.i.i870 = load %struct._IO_FILE*, %struct._IO_FILE** @yyin, align 8, !tbaa !9
br label %_ZN2kcL21prepare_for_next_fileEv.exit.i
if.end12.i.i: ; preds = %try.cont.i
call void @_Z9do_NORMALv()
%457 = load i32, i32* @_ZL13no_inputfiles, align 4, !tbaa !27
%cmp13.i.i = icmp sgt i32 %457, 0
br i1 %cmp13.i.i, label %if.then14.i.i, label %do.end.i
if.then14.i.i: ; preds = %if.end12.i.i
%458 = load %struct._IO_FILE*, %struct._IO_FILE** @yyin, align 8, !tbaa !9
%call15.i.i = call i32 @fclose(%struct._IO_FILE* %458)
br label %do.end.i
_ZN2kcL21prepare_for_next_fileEv.exit.i: ; preds = %if.then6.i.i, %if.then.i202.i
%459 = phi %struct._IO_FILE* [ %.pre.i.i870, %if.then6.i.i ], [ %call4.i201.i, %if.then.i202.i ]
call void @_Z9yyrestartP8_IO_FILE(%struct._IO_FILE* %459)
br label %do.body.i
do.end.i: ; preds = %if.then14.i.i, %if.end12.i.i
%460 = load i8, i8* @gp_no_fatal_problems, align 1, !tbaa !26, !range !18
%tobool110.i = icmp eq i8 %460, 0
br i1 %tobool110.i, label %if.then111.i, label %_ZN2kcL8do_parseEv.exit
if.then111.i: ; preds = %do.end.i
call void @_ZN2kc5leaveEi(i32 1)
unreachable
ehcleanup.i871: ; preds = %lpad.i
resume { i8*, i32 } %439
_ZN2kcL8do_parseEv.exit: ; preds = %do.end.i
%461 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool4 = icmp eq i8 %461, 0
br i1 %tobool4, label %if.end7.thread, label %if.end7
if.end7.thread: ; preds = %_ZN2kcL8do_parseEv.exit
store i32 0, i32* @pg_lineno, align 4, !tbaa !27
store i32 0, i32* @pg_column, align 4, !tbaa !27
store i32 0, i32* @pg_charpos, align 4, !tbaa !27
store %"class.kc::impl_bindingidmarks"* null, %"class.kc::impl_bindingidmarks"** @Thebindingidmarks, align 8, !tbaa !9
br label %if.end11
if.end7: ; preds = %_ZN2kcL8do_parseEv.exit
%call1.i873 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0), i64 9)
%.pr = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16
store i32 0, i32* @pg_lineno, align 4, !tbaa !27
store i32 0, i32* @pg_column, align 4, !tbaa !27
store i32 0, i32* @pg_charpos, align 4, !tbaa !27
store %"class.kc::impl_bindingidmarks"* null, %"class.kc::impl_bindingidmarks"** @Thebindingidmarks, align 8, !tbaa !9
%tobool8 = icmp eq i8 %.pr, 0
br i1 %tobool8, label %if.end11, label %if.then9
if.then9: ; preds = %if.end7
%call1.i876 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([17 x i8], [17 x i8]* @.str.8, i64 0, i64 0), i64 16)
br label %if.end11
if.end11: ; preds = %if.end7.thread, %if.end7, %if.then9
%462 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%463 = bitcast %"class.kc::impl_abstract_phylum"* %462 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %463, align 8, !tbaa !19
%vfn.i = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i, i64 9
%464 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i, align 8
call void %464(%"class.kc::impl_abstract_phylum"* %462, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_count_class", %"struct.kc::view_check_count_class"* @_ZN2kc16view_check_countE, i64 0, i32 0))
%465 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%466 = bitcast %"class.kc::impl_abstract_phylum"* %465 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i878 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %466, align 8, !tbaa !19
%vfn.i879 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i878, i64 9
%467 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i879, align 8
call void %467(%"class.kc::impl_abstract_phylum"* %465, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_class", %"struct.kc::view_check_class"* @_ZN2kc10view_checkE, i64 0, i32 0))
%468 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_rwdeclarations"** @Therwdeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%469 = bitcast %"class.kc::impl_abstract_phylum"* %468 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i880 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %469, align 8, !tbaa !19
%vfn.i881 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i880, i64 9
%470 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i881, align 8
call void %470(%"class.kc::impl_abstract_phylum"* %468, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_class", %"struct.kc::view_check_class"* @_ZN2kc10view_checkE, i64 0, i32 0))
%kc_fe_selvar_1.02703 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** @Thefnfiles, align 8, !tbaa !9
%471 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_1.02703 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable2704 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %471, align 8, !tbaa !19
%472 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable2704, align 8
%call122705 = call i32 %472(%"class.kc::impl_fnfiles"* %kc_fe_selvar_1.02703)
%cmp2706 = icmp eq i32 %call122705, 105
br i1 %cmp2706, label %while.body, label %while.cond14.preheader
while.cond14.preheader: ; preds = %while.body, %if.end11
%kc_fe_selvar_113.02698 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** @Thefnfiles, align 8, !tbaa !9
%473 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_113.02698 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable152699 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %473, align 8, !tbaa !19
%474 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable152699, align 8
%call172700 = call i32 %474(%"class.kc::impl_fnfiles"* %kc_fe_selvar_113.02698)
%cmp182701 = icmp eq i32 %call172700, 105
br i1 %cmp182701, label %while.body19, label %while.end25
while.body: ; preds = %if.end11, %while.body
%kc_fe_selvar_1.02707 = phi %"class.kc::impl_fnfiles"* [ %kc_fe_selvar_1.0, %while.body ], [ %kc_fe_selvar_1.02703, %if.end11 ]
%fnfile_1 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_1.02707, i64 0, i32 1
%475 = load %"class.kc::impl_fnfile"*, %"class.kc::impl_fnfile"** %fnfile_1, align 8, !tbaa !97
%fns = getelementptr inbounds %"class.kc::impl_fnfile", %"class.kc::impl_fnfile"* %475, i64 0, i32 1
%476 = bitcast %"class.kc::impl_fndeclarations"** %fns to %"class.kc::impl_abstract_phylum"**
%477 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %476, align 8, !tbaa !95
%478 = bitcast %"class.kc::impl_abstract_phylum"* %477 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i882 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %478, align 8, !tbaa !19
%vfn.i883 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i882, i64 9
%479 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i883, align 8
call void %479(%"class.kc::impl_abstract_phylum"* %477, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_class", %"struct.kc::view_check_class"* @_ZN2kc10view_checkE, i64 0, i32 0))
%fnfiles_1 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_1.02707, i64 0, i32 2
%kc_fe_selvar_1.0 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** %fnfiles_1, align 8, !tbaa !9
%480 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_1.0 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %480, align 8, !tbaa !19
%481 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable, align 8
%call12 = call i32 %481(%"class.kc::impl_fnfiles"* %kc_fe_selvar_1.0)
%cmp = icmp eq i32 %call12, 105
br i1 %cmp, label %while.body, label %while.cond14.preheader
while.body19: ; preds = %while.cond14.preheader, %while.body19
%kc_fe_selvar_113.02702 = phi %"class.kc::impl_fnfiles"* [ %kc_fe_selvar_113.0, %while.body19 ], [ %kc_fe_selvar_113.02698, %while.cond14.preheader ]
%fnfile_121 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_113.02702, i64 0, i32 1
%482 = load %"class.kc::impl_fnfile"*, %"class.kc::impl_fnfile"** %fnfile_121, align 8, !tbaa !97
%fns23 = getelementptr inbounds %"class.kc::impl_fnfile", %"class.kc::impl_fnfile"* %482, i64 0, i32 1
%483 = load %"class.kc::impl_fndeclarations"*, %"class.kc::impl_fndeclarations"** %fns23, align 8, !tbaa !95
call void @_ZN2kc17f_collect_membersEPNS_19impl_fndeclarationsE(%"class.kc::impl_fndeclarations"* %483)
%fnfiles_124 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_113.02702, i64 0, i32 2
%kc_fe_selvar_113.0 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** %fnfiles_124, align 8, !tbaa !9
%484 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_113.0 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable15 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %484, align 8, !tbaa !19
%485 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable15, align 8
%call17 = call i32 %485(%"class.kc::impl_fnfiles"* %kc_fe_selvar_113.0)
%cmp18 = icmp eq i32 %call17, 105
br i1 %cmp18, label %while.body19, label %while.end25
while.end25: ; preds = %while.body19, %while.cond14.preheader
%486 = load %"class.kc::impl_baseclass_declarations"*, %"class.kc::impl_baseclass_declarations"** @Thebaseclasses, align 8, !tbaa !9
call void @_ZN2kc20prepare_base_classesEPNS_27impl_baseclass_declarationsE(%"class.kc::impl_baseclass_declarations"* %486)
%487 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_unparsedeclarations"** @Theunparsedeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%488 = bitcast %"class.kc::impl_abstract_phylum"* %487 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i884 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %488, align 8, !tbaa !19
%vfn.i885 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i884, i64 9
%489 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i885, align 8
call void %489(%"class.kc::impl_abstract_phylum"* %487, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_class", %"struct.kc::view_check_class"* @_ZN2kc10view_checkE, i64 0, i32 0))
%490 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_unparsedeclarations"** @Theunparsedeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%491 = bitcast %"class.kc::impl_abstract_phylum"* %490 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i886 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %491, align 8, !tbaa !19
%vfn.i887 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i886, i64 9
%492 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i887, align 8
call void %492(%"class.kc::impl_abstract_phylum"* %490, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_viewnames_class", %"struct.kc::view_check_viewnames_class"* @_ZN2kc20view_check_viewnamesE, i64 0, i32 0))
%493 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%494 = bitcast %"class.kc::impl_abstract_phylum"* %493 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i888 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %494, align 8, !tbaa !19
%vfn.i889 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i888, i64 9
%495 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i889, align 8
call void %495(%"class.kc::impl_abstract_phylum"* %493, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_check_uniq_class", %"struct.kc::view_check_uniq_class"* @_ZN2kc15view_check_uniqE, i64 0, i32 0))
%496 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_unparsedeclarations"** @Theunparsedeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%497 = bitcast %"class.kc::impl_abstract_phylum"* %496 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i890 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %497, align 8, !tbaa !19
%vfn.i891 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i890, i64 9
%498 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i891, align 8
call void %498(%"class.kc::impl_abstract_phylum"* %496, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_checklanguagenames_class", %"struct.kc::view_checklanguagenames_class"* @_ZN2kc23view_checklanguagenamesE, i64 0, i32 0))
%499 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%500 = bitcast %"class.kc::impl_abstract_phylum"* %499 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i892 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %500, align 8, !tbaa !19
%vfn.i893 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i892, i64 9
%501 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i893, align 8
call void %501(%"class.kc::impl_abstract_phylum"* %499, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_make_patternreps_class", %"struct.kc::view_make_patternreps_class"* @_ZN2kc21view_make_patternrepsE, i64 0, i32 0))
%502 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_rwdeclarations"** @Therwdeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%503 = bitcast %"class.kc::impl_abstract_phylum"* %502 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i894 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %503, align 8, !tbaa !19
%vfn.i895 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i894, i64 9
%504 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i895, align 8
call void %504(%"class.kc::impl_abstract_phylum"* %502, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_make_patternreps_class", %"struct.kc::view_make_patternreps_class"* @_ZN2kc21view_make_patternrepsE, i64 0, i32 0))
%kc_fe_selvar_126.02693 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** @Thefnfiles, align 8, !tbaa !9
%505 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_126.02693 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable282694 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %505, align 8, !tbaa !19
%506 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable282694, align 8
%call302695 = call i32 %506(%"class.kc::impl_fnfiles"* %kc_fe_selvar_126.02693)
%cmp312696 = icmp eq i32 %call302695, 105
br i1 %cmp312696, label %while.body32, label %while.end38
while.body32: ; preds = %while.end25, %while.body32
%kc_fe_selvar_126.02697 = phi %"class.kc::impl_fnfiles"* [ %kc_fe_selvar_126.0, %while.body32 ], [ %kc_fe_selvar_126.02693, %while.end25 ]
%fnfile_134 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_126.02697, i64 0, i32 1
%507 = load %"class.kc::impl_fnfile"*, %"class.kc::impl_fnfile"** %fnfile_134, align 8, !tbaa !97
%fns36 = getelementptr inbounds %"class.kc::impl_fnfile", %"class.kc::impl_fnfile"* %507, i64 0, i32 1
%508 = bitcast %"class.kc::impl_fndeclarations"** %fns36 to %"class.kc::impl_abstract_phylum"**
%509 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %508, align 8, !tbaa !95
%510 = bitcast %"class.kc::impl_abstract_phylum"* %509 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i896 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %510, align 8, !tbaa !19
%vfn.i897 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i896, i64 9
%511 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i897, align 8
call void %511(%"class.kc::impl_abstract_phylum"* %509, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_make_patternreps_class", %"struct.kc::view_make_patternreps_class"* @_ZN2kc21view_make_patternrepsE, i64 0, i32 0))
%fnfiles_137 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_126.02697, i64 0, i32 2
%kc_fe_selvar_126.0 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** %fnfiles_137, align 8, !tbaa !9
%512 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_126.0 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable28 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %512, align 8, !tbaa !19
%513 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable28, align 8
%call30 = call i32 %513(%"class.kc::impl_fnfiles"* %kc_fe_selvar_126.0)
%cmp31 = icmp eq i32 %call30, 105
br i1 %cmp31, label %while.body32, label %while.end38
while.end38: ; preds = %while.body32, %while.end25
%514 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_unparsedeclarations"** @Theunparsedeclarations to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%515 = bitcast %"class.kc::impl_abstract_phylum"* %514 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i898 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %515, align 8, !tbaa !19
%vfn.i899 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i898, i64 9
%516 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i899, align 8
call void %516(%"class.kc::impl_abstract_phylum"* %514, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) @v_null_printer, %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_make_patternreps_class", %"struct.kc::view_make_patternreps_class"* @_ZN2kc21view_make_patternrepsE, i64 0, i32 0))
%kc_fe_selvar_139.02688 = load %"class.kc::impl_phylumdeclarations"*, %"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations, align 8, !tbaa !9
%517 = bitcast %"class.kc::impl_phylumdeclarations"* %kc_fe_selvar_139.02688 to i32 (%"class.kc::impl_phylumdeclarations"*)***
%vtable412689 = load i32 (%"class.kc::impl_phylumdeclarations"*)**, i32 (%"class.kc::impl_phylumdeclarations"*)*** %517, align 8, !tbaa !19
%518 = load i32 (%"class.kc::impl_phylumdeclarations"*)*, i32 (%"class.kc::impl_phylumdeclarations"*)** %vtable412689, align 8
%call432690 = call i32 %518(%"class.kc::impl_phylumdeclarations"* %kc_fe_selvar_139.02688)
%cmp442691 = icmp eq i32 %call432690, 12
br i1 %cmp442691, label %while.body45, label %while.end175
while.body45: ; preds = %while.end38, %if.end174
%kc_fe_selvar_139.02692 = phi %"class.kc::impl_phylumdeclarations"* [ %kc_fe_selvar_139.0, %if.end174 ], [ %kc_fe_selvar_139.02688, %while.end38 ]
%phylumdeclaration_1 = getelementptr inbounds %"class.kc::impl_phylumdeclarations", %"class.kc::impl_phylumdeclarations"* %kc_fe_selvar_139.02692, i64 0, i32 1
%519 = load %"class.kc::impl_phylumdeclaration"*, %"class.kc::impl_phylumdeclaration"** %phylumdeclaration_1, align 8, !tbaa !99
%520 = getelementptr %"class.kc::impl_phylumdeclaration", %"class.kc::impl_phylumdeclaration"* %519, i64 0, i32 0
%521 = bitcast %"class.kc::impl_phylumdeclaration"* %519 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable47 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %521, align 8, !tbaa !19
%522 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable47, align 8
%call49 = call i32 %522(%"class.kc::impl_abstract_phylum"* %520)
%cmp50 = icmp eq i32 %call49, 15
br i1 %cmp50, label %if.then51, label %if.end174
if.then51: ; preds = %while.body45
%productionblock_1 = getelementptr inbounds %"class.kc::impl_phylumdeclaration", %"class.kc::impl_phylumdeclaration"* %519, i64 1, i32 2
%523 = bitcast %"class.kc::impl_fndeclarations"** %productionblock_1 to %"class.kc::impl_productionblock"**
%524 = load %"class.kc::impl_productionblock"*, %"class.kc::impl_productionblock"** %523, align 8, !tbaa !101
%525 = getelementptr %"class.kc::impl_productionblock", %"class.kc::impl_productionblock"* %524, i64 0, i32 0
%526 = bitcast %"class.kc::impl_productionblock"* %524 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable54 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %526, align 8, !tbaa !19
%527 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable54, align 8
%call56 = call i32 %527(%"class.kc::impl_abstract_phylum"* %525)
%cmp57 = icmp eq i32 %call56, 23
br i1 %cmp57, label %if.then58, label %if.else103
if.then58: ; preds = %if.then51
%alternatives_1 = getelementptr inbounds %"class.kc::impl_productionblock", %"class.kc::impl_productionblock"* %524, i64 1
%528 = bitcast %"class.kc::impl_productionblock"* %alternatives_1 to %"class.kc::impl_alternatives"**
%kc_fe_selvar_160.02683 = load %"class.kc::impl_alternatives"*, %"class.kc::impl_alternatives"** %528, align 8, !tbaa !9
%529 = bitcast %"class.kc::impl_alternatives"* %kc_fe_selvar_160.02683 to i32 (%"class.kc::impl_alternatives"*)***
%vtable622684 = load i32 (%"class.kc::impl_alternatives"*)**, i32 (%"class.kc::impl_alternatives"*)*** %529, align 8, !tbaa !19
%530 = load i32 (%"class.kc::impl_alternatives"*)*, i32 (%"class.kc::impl_alternatives"*)** %vtable622684, align 8
%call642685 = call i32 %530(%"class.kc::impl_alternatives"* %kc_fe_selvar_160.02683)
%cmp652686 = icmp eq i32 %call642685, 26
br i1 %cmp652686, label %while.body66, label %if.end174
while.body66: ; preds = %if.then58, %while.end100
%kc_fe_selvar_160.02687 = phi %"class.kc::impl_alternatives"* [ %kc_fe_selvar_160.0, %while.end100 ], [ %kc_fe_selvar_160.02683, %if.then58 ]
%alternative_1 = getelementptr inbounds %"class.kc::impl_alternatives", %"class.kc::impl_alternatives"* %kc_fe_selvar_160.02687, i64 0, i32 1
%531 = load %"class.kc::impl_alternative"*, %"class.kc::impl_alternative"** %alternative_1, align 8, !tbaa !103
%532 = load %"class.kc::impl_viewnames"*, %"class.kc::impl_viewnames"** @Theuviewnames, align 8, !tbaa !9
%call67 = call %"class.kc::impl_unparseviewsinfo"* @_ZN2kc33f_unparseviewsinfo_of_alternativeEPNS_16impl_alternativeEPNS_14impl_viewnamesE(%"class.kc::impl_alternative"* %531, %"class.kc::impl_viewnames"* %532)
%533 = bitcast %"class.kc::impl_unparseviewsinfo"* %call67 to i32 (%"class.kc::impl_unparseviewsinfo"*)***
%vtable702675 = load i32 (%"class.kc::impl_unparseviewsinfo"*)**, i32 (%"class.kc::impl_unparseviewsinfo"*)*** %533, align 8, !tbaa !19
%534 = load i32 (%"class.kc::impl_unparseviewsinfo"*)*, i32 (%"class.kc::impl_unparseviewsinfo"*)** %vtable702675, align 8
%call722676 = call i32 %534(%"class.kc::impl_unparseviewsinfo"* %call67)
%cmp732677 = icmp eq i32 %call722676, 227
br i1 %cmp732677, label %while.body74, label %while.end82
while.body74: ; preds = %while.body66, %if.end81
%kc_fe_selvar_168.02678 = phi %"class.kc::impl_unparseviewsinfo"* [ %541, %if.end81 ], [ %call67, %while.body66 ]
%unparseviewinfo_1 = getelementptr inbounds %"class.kc::impl_unparseviewsinfo", %"class.kc::impl_unparseviewsinfo"* %kc_fe_selvar_168.02678, i64 0, i32 1
%535 = load %"class.kc::impl_unparseviewinfo"*, %"class.kc::impl_unparseviewinfo"** %unparseviewinfo_1, align 8, !tbaa !105
%536 = getelementptr %"class.kc::impl_unparseviewinfo", %"class.kc::impl_unparseviewinfo"* %535, i64 0, i32 0
%537 = bitcast %"class.kc::impl_unparseviewinfo"* %535 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable75 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %537, align 8, !tbaa !19
%538 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable75, align 8
%call77 = call i32 %538(%"class.kc::impl_abstract_phylum"* %536)
%cmp78 = icmp eq i32 %call77, 228
br i1 %cmp78, label %if.then79, label %if.end81
if.then79: ; preds = %while.body74
%unparsedeclsinfo_1 = getelementptr inbounds %"class.kc::impl_unparseviewinfo", %"class.kc::impl_unparseviewinfo"* %535, i64 2
%539 = bitcast %"class.kc::impl_unparseviewinfo"* %unparsedeclsinfo_1 to %"class.kc::impl_unparsedeclsinfo"**
%540 = load %"class.kc::impl_unparsedeclsinfo"*, %"class.kc::impl_unparsedeclsinfo"** %539, align 8, !tbaa !107
call void @_ZN2kc22check_unparse_patternsEPNS_21impl_unparsedeclsinfoE(%"class.kc::impl_unparsedeclsinfo"* %540)
br label %if.end81
if.end81: ; preds = %while.body74, %if.then79
%unparseviewsinfo_1 = getelementptr inbounds %"class.kc::impl_unparseviewsinfo", %"class.kc::impl_unparseviewsinfo"* %kc_fe_selvar_168.02678, i64 0, i32 2
%541 = load %"class.kc::impl_unparseviewsinfo"*, %"class.kc::impl_unparseviewsinfo"** %unparseviewsinfo_1, align 8, !tbaa !109
%542 = bitcast %"class.kc::impl_unparseviewsinfo"* %541 to i32 (%"class.kc::impl_unparseviewsinfo"*)***
%vtable70 = load i32 (%"class.kc::impl_unparseviewsinfo"*)**, i32 (%"class.kc::impl_unparseviewsinfo"*)*** %542, align 8, !tbaa !19
%543 = load i32 (%"class.kc::impl_unparseviewsinfo"*)*, i32 (%"class.kc::impl_unparseviewsinfo"*)** %vtable70, align 8
%call72 = call i32 %543(%"class.kc::impl_unparseviewsinfo"* %541)
%cmp73 = icmp eq i32 %call72, 227
br i1 %cmp73, label %while.body74, label %while.end82
while.end82: ; preds = %if.end81, %while.body66
%544 = load %"class.kc::impl_viewnames"*, %"class.kc::impl_viewnames"** @Therviewnames, align 8, !tbaa !9
%call83 = call %"class.kc::impl_rewriteviewsinfo"* @_ZN2kc33f_rewriteviewsinfo_of_alternativeEPNS_16impl_alternativeEPNS_14impl_viewnamesE(%"class.kc::impl_alternative"* %531, %"class.kc::impl_viewnames"* %544)
%545 = bitcast %"class.kc::impl_rewriteviewsinfo"* %call83 to i32 (%"class.kc::impl_rewriteviewsinfo"*)***
%vtable862679 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)**, i32 (%"class.kc::impl_rewriteviewsinfo"*)*** %545, align 8, !tbaa !19
%546 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)*, i32 (%"class.kc::impl_rewriteviewsinfo"*)** %vtable862679, align 8
%call882680 = call i32 %546(%"class.kc::impl_rewriteviewsinfo"* %call83)
%cmp892681 = icmp eq i32 %call882680, 224
br i1 %cmp892681, label %while.body90, label %while.end100
while.body90: ; preds = %while.end82, %if.end99
%kc_fe_selvar_184.02682 = phi %"class.kc::impl_rewriteviewsinfo"* [ %553, %if.end99 ], [ %call83, %while.end82 ]
%rewriteviewinfo_1 = getelementptr inbounds %"class.kc::impl_rewriteviewsinfo", %"class.kc::impl_rewriteviewsinfo"* %kc_fe_selvar_184.02682, i64 0, i32 1
%547 = load %"class.kc::impl_rewriteviewinfo"*, %"class.kc::impl_rewriteviewinfo"** %rewriteviewinfo_1, align 8, !tbaa !110
%548 = getelementptr %"class.kc::impl_rewriteviewinfo", %"class.kc::impl_rewriteviewinfo"* %547, i64 0, i32 0
%549 = bitcast %"class.kc::impl_rewriteviewinfo"* %547 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable92 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %549, align 8, !tbaa !19
%550 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable92, align 8
%call94 = call i32 %550(%"class.kc::impl_abstract_phylum"* %548)
%cmp95 = icmp eq i32 %call94, 225
br i1 %cmp95, label %if.then96, label %if.end99
if.then96: ; preds = %while.body90
%rewriterulesinfo_1 = getelementptr inbounds %"class.kc::impl_rewriteviewinfo", %"class.kc::impl_rewriteviewinfo"* %547, i64 2
%551 = bitcast %"class.kc::impl_rewriteviewinfo"* %rewriterulesinfo_1 to %"class.kc::impl_rewriterulesinfo"**
%552 = load %"class.kc::impl_rewriterulesinfo"*, %"class.kc::impl_rewriterulesinfo"** %551, align 8, !tbaa !112
call void @_ZN2kc22check_rewrite_patternsEPNS_21impl_rewriterulesinfoE(%"class.kc::impl_rewriterulesinfo"* %552)
br label %if.end99
if.end99: ; preds = %while.body90, %if.then96
%rewriteviewsinfo_1 = getelementptr inbounds %"class.kc::impl_rewriteviewsinfo", %"class.kc::impl_rewriteviewsinfo"* %kc_fe_selvar_184.02682, i64 0, i32 2
%553 = load %"class.kc::impl_rewriteviewsinfo"*, %"class.kc::impl_rewriteviewsinfo"** %rewriteviewsinfo_1, align 8, !tbaa !114
%554 = bitcast %"class.kc::impl_rewriteviewsinfo"* %553 to i32 (%"class.kc::impl_rewriteviewsinfo"*)***
%vtable86 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)**, i32 (%"class.kc::impl_rewriteviewsinfo"*)*** %554, align 8, !tbaa !19
%555 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)*, i32 (%"class.kc::impl_rewriteviewsinfo"*)** %vtable86, align 8
%call88 = call i32 %555(%"class.kc::impl_rewriteviewsinfo"* %553)
%cmp89 = icmp eq i32 %call88, 224
br i1 %cmp89, label %while.body90, label %while.end100
while.end100: ; preds = %if.end99, %while.end82
%alternatives_1101 = getelementptr inbounds %"class.kc::impl_alternatives", %"class.kc::impl_alternatives"* %kc_fe_selvar_160.02687, i64 0, i32 2
%kc_fe_selvar_160.0 = load %"class.kc::impl_alternatives"*, %"class.kc::impl_alternatives"** %alternatives_1101, align 8, !tbaa !9
%556 = bitcast %"class.kc::impl_alternatives"* %kc_fe_selvar_160.0 to i32 (%"class.kc::impl_alternatives"*)***
%vtable62 = load i32 (%"class.kc::impl_alternatives"*)**, i32 (%"class.kc::impl_alternatives"*)*** %556, align 8, !tbaa !19
%557 = load i32 (%"class.kc::impl_alternatives"*)*, i32 (%"class.kc::impl_alternatives"*)** %vtable62, align 8
%call64 = call i32 %557(%"class.kc::impl_alternatives"* %kc_fe_selvar_160.0)
%cmp65 = icmp eq i32 %call64, 26
br i1 %cmp65, label %while.body66, label %if.end174
if.else103: ; preds = %if.then51
%vtable104 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %526, align 8, !tbaa !19
%558 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable104, align 8
%call106 = call i32 %558(%"class.kc::impl_abstract_phylum"* %525)
%cmp107 = icmp eq i32 %call106, 22
br i1 %cmp107, label %if.then108, label %if.end174
if.then108: ; preds = %if.else103
%alternatives_1111 = getelementptr inbounds %"class.kc::impl_productionblock", %"class.kc::impl_productionblock"* %524, i64 1
%559 = bitcast %"class.kc::impl_productionblock"* %alternatives_1111 to %"class.kc::impl_alternatives"**
%kc_fe_selvar_1112.02670 = load %"class.kc::impl_alternatives"*, %"class.kc::impl_alternatives"** %559, align 8, !tbaa !9
%560 = bitcast %"class.kc::impl_alternatives"* %kc_fe_selvar_1112.02670 to i32 (%"class.kc::impl_alternatives"*)***
%vtable1142671 = load i32 (%"class.kc::impl_alternatives"*)**, i32 (%"class.kc::impl_alternatives"*)*** %560, align 8, !tbaa !19
%561 = load i32 (%"class.kc::impl_alternatives"*)*, i32 (%"class.kc::impl_alternatives"*)** %vtable1142671, align 8
%call1162672 = call i32 %561(%"class.kc::impl_alternatives"* %kc_fe_selvar_1112.02670)
%cmp1172673 = icmp eq i32 %call1162672, 26
br i1 %cmp1172673, label %while.body118, label %if.end174
while.body118: ; preds = %if.then108, %while.end167
%kc_fe_selvar_1112.02674 = phi %"class.kc::impl_alternatives"* [ %kc_fe_selvar_1112.0, %while.end167 ], [ %kc_fe_selvar_1112.02670, %if.then108 ]
%alternative_1120 = getelementptr inbounds %"class.kc::impl_alternatives", %"class.kc::impl_alternatives"* %kc_fe_selvar_1112.02674, i64 0, i32 1
%562 = load %"class.kc::impl_alternative"*, %"class.kc::impl_alternative"** %alternative_1120, align 8, !tbaa !103
%563 = load %"class.kc::impl_viewnames"*, %"class.kc::impl_viewnames"** @Theuviewnames, align 8, !tbaa !9
%call123 = call %"class.kc::impl_unparseviewsinfo"* @_ZN2kc33f_unparseviewsinfo_of_alternativeEPNS_16impl_alternativeEPNS_14impl_viewnamesE(%"class.kc::impl_alternative"* %562, %"class.kc::impl_viewnames"* %563)
%564 = bitcast %"class.kc::impl_unparseviewsinfo"* %call123 to i32 (%"class.kc::impl_unparseviewsinfo"*)***
%vtable1262662 = load i32 (%"class.kc::impl_unparseviewsinfo"*)**, i32 (%"class.kc::impl_unparseviewsinfo"*)*** %564, align 8, !tbaa !19
%565 = load i32 (%"class.kc::impl_unparseviewsinfo"*)*, i32 (%"class.kc::impl_unparseviewsinfo"*)** %vtable1262662, align 8
%call1282663 = call i32 %565(%"class.kc::impl_unparseviewsinfo"* %call123)
%cmp1292664 = icmp eq i32 %call1282663, 227
br i1 %cmp1292664, label %while.body130, label %while.end144
while.body130: ; preds = %while.body118, %if.end142
%kc_fe_selvar_1124.02665 = phi %"class.kc::impl_unparseviewsinfo"* [ %572, %if.end142 ], [ %call123, %while.body118 ]
%unparseviewinfo_1132 = getelementptr inbounds %"class.kc::impl_unparseviewsinfo", %"class.kc::impl_unparseviewsinfo"* %kc_fe_selvar_1124.02665, i64 0, i32 1
%566 = load %"class.kc::impl_unparseviewinfo"*, %"class.kc::impl_unparseviewinfo"** %unparseviewinfo_1132, align 8, !tbaa !105
%567 = getelementptr %"class.kc::impl_unparseviewinfo", %"class.kc::impl_unparseviewinfo"* %566, i64 0, i32 0
%568 = bitcast %"class.kc::impl_unparseviewinfo"* %566 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable133 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %568, align 8, !tbaa !19
%569 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable133, align 8
%call135 = call i32 %569(%"class.kc::impl_abstract_phylum"* %567)
%cmp136 = icmp eq i32 %call135, 228
br i1 %cmp136, label %if.then137, label %if.end142
if.then137: ; preds = %while.body130
%unparsedeclsinfo_1140 = getelementptr inbounds %"class.kc::impl_unparseviewinfo", %"class.kc::impl_unparseviewinfo"* %566, i64 2
%570 = bitcast %"class.kc::impl_unparseviewinfo"* %unparsedeclsinfo_1140 to %"class.kc::impl_unparsedeclsinfo"**
%571 = load %"class.kc::impl_unparsedeclsinfo"*, %"class.kc::impl_unparsedeclsinfo"** %570, align 8, !tbaa !107
call void @_ZN2kc22check_unparse_patternsEPNS_21impl_unparsedeclsinfoE(%"class.kc::impl_unparsedeclsinfo"* %571)
br label %if.end142
if.end142: ; preds = %while.body130, %if.then137
%unparseviewsinfo_1143 = getelementptr inbounds %"class.kc::impl_unparseviewsinfo", %"class.kc::impl_unparseviewsinfo"* %kc_fe_selvar_1124.02665, i64 0, i32 2
%572 = load %"class.kc::impl_unparseviewsinfo"*, %"class.kc::impl_unparseviewsinfo"** %unparseviewsinfo_1143, align 8, !tbaa !109
%573 = bitcast %"class.kc::impl_unparseviewsinfo"* %572 to i32 (%"class.kc::impl_unparseviewsinfo"*)***
%vtable126 = load i32 (%"class.kc::impl_unparseviewsinfo"*)**, i32 (%"class.kc::impl_unparseviewsinfo"*)*** %573, align 8, !tbaa !19
%574 = load i32 (%"class.kc::impl_unparseviewsinfo"*)*, i32 (%"class.kc::impl_unparseviewsinfo"*)** %vtable126, align 8
%call128 = call i32 %574(%"class.kc::impl_unparseviewsinfo"* %572)
%cmp129 = icmp eq i32 %call128, 227
br i1 %cmp129, label %while.body130, label %while.end144
while.end144: ; preds = %if.end142, %while.body118
%575 = load %"class.kc::impl_viewnames"*, %"class.kc::impl_viewnames"** @Therviewnames, align 8, !tbaa !9
%call146 = call %"class.kc::impl_rewriteviewsinfo"* @_ZN2kc33f_rewriteviewsinfo_of_alternativeEPNS_16impl_alternativeEPNS_14impl_viewnamesE(%"class.kc::impl_alternative"* %562, %"class.kc::impl_viewnames"* %575)
%576 = bitcast %"class.kc::impl_rewriteviewsinfo"* %call146 to i32 (%"class.kc::impl_rewriteviewsinfo"*)***
%vtable1492666 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)**, i32 (%"class.kc::impl_rewriteviewsinfo"*)*** %576, align 8, !tbaa !19
%577 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)*, i32 (%"class.kc::impl_rewriteviewsinfo"*)** %vtable1492666, align 8
%call1512667 = call i32 %577(%"class.kc::impl_rewriteviewsinfo"* %call146)
%cmp1522668 = icmp eq i32 %call1512667, 224
br i1 %cmp1522668, label %while.body153, label %while.end167
while.body153: ; preds = %while.end144, %if.end165
%kc_fe_selvar_1147.02669 = phi %"class.kc::impl_rewriteviewsinfo"* [ %584, %if.end165 ], [ %call146, %while.end144 ]
%rewriteviewinfo_1155 = getelementptr inbounds %"class.kc::impl_rewriteviewsinfo", %"class.kc::impl_rewriteviewsinfo"* %kc_fe_selvar_1147.02669, i64 0, i32 1
%578 = load %"class.kc::impl_rewriteviewinfo"*, %"class.kc::impl_rewriteviewinfo"** %rewriteviewinfo_1155, align 8, !tbaa !110
%579 = getelementptr %"class.kc::impl_rewriteviewinfo", %"class.kc::impl_rewriteviewinfo"* %578, i64 0, i32 0
%580 = bitcast %"class.kc::impl_rewriteviewinfo"* %578 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable156 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %580, align 8, !tbaa !19
%581 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable156, align 8
%call158 = call i32 %581(%"class.kc::impl_abstract_phylum"* %579)
%cmp159 = icmp eq i32 %call158, 225
br i1 %cmp159, label %if.then160, label %if.end165
if.then160: ; preds = %while.body153
%rewriterulesinfo_1163 = getelementptr inbounds %"class.kc::impl_rewriteviewinfo", %"class.kc::impl_rewriteviewinfo"* %578, i64 2
%582 = bitcast %"class.kc::impl_rewriteviewinfo"* %rewriterulesinfo_1163 to %"class.kc::impl_rewriterulesinfo"**
%583 = load %"class.kc::impl_rewriterulesinfo"*, %"class.kc::impl_rewriterulesinfo"** %582, align 8, !tbaa !112
call void @_ZN2kc22check_rewrite_patternsEPNS_21impl_rewriterulesinfoE(%"class.kc::impl_rewriterulesinfo"* %583)
br label %if.end165
if.end165: ; preds = %while.body153, %if.then160
%rewriteviewsinfo_1166 = getelementptr inbounds %"class.kc::impl_rewriteviewsinfo", %"class.kc::impl_rewriteviewsinfo"* %kc_fe_selvar_1147.02669, i64 0, i32 2
%584 = load %"class.kc::impl_rewriteviewsinfo"*, %"class.kc::impl_rewriteviewsinfo"** %rewriteviewsinfo_1166, align 8, !tbaa !114
%585 = bitcast %"class.kc::impl_rewriteviewsinfo"* %584 to i32 (%"class.kc::impl_rewriteviewsinfo"*)***
%vtable149 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)**, i32 (%"class.kc::impl_rewriteviewsinfo"*)*** %585, align 8, !tbaa !19
%586 = load i32 (%"class.kc::impl_rewriteviewsinfo"*)*, i32 (%"class.kc::impl_rewriteviewsinfo"*)** %vtable149, align 8
%call151 = call i32 %586(%"class.kc::impl_rewriteviewsinfo"* %584)
%cmp152 = icmp eq i32 %call151, 224
br i1 %cmp152, label %while.body153, label %while.end167
while.end167: ; preds = %if.end165, %while.end144
%alternatives_1168 = getelementptr inbounds %"class.kc::impl_alternatives", %"class.kc::impl_alternatives"* %kc_fe_selvar_1112.02674, i64 0, i32 2
%kc_fe_selvar_1112.0 = load %"class.kc::impl_alternatives"*, %"class.kc::impl_alternatives"** %alternatives_1168, align 8, !tbaa !9
%587 = bitcast %"class.kc::impl_alternatives"* %kc_fe_selvar_1112.0 to i32 (%"class.kc::impl_alternatives"*)***
%vtable114 = load i32 (%"class.kc::impl_alternatives"*)**, i32 (%"class.kc::impl_alternatives"*)*** %587, align 8, !tbaa !19
%588 = load i32 (%"class.kc::impl_alternatives"*)*, i32 (%"class.kc::impl_alternatives"*)** %vtable114, align 8
%call116 = call i32 %588(%"class.kc::impl_alternatives"* %kc_fe_selvar_1112.0)
%cmp117 = icmp eq i32 %call116, 26
br i1 %cmp117, label %while.body118, label %if.end174
if.end174: ; preds = %while.end167, %while.end100, %if.then108, %if.then58, %if.else103, %while.body45
%phylumdeclarations_1 = getelementptr inbounds %"class.kc::impl_phylumdeclarations", %"class.kc::impl_phylumdeclarations"* %kc_fe_selvar_139.02692, i64 0, i32 2
%kc_fe_selvar_139.0 = load %"class.kc::impl_phylumdeclarations"*, %"class.kc::impl_phylumdeclarations"** %phylumdeclarations_1, align 8, !tbaa !9
%589 = bitcast %"class.kc::impl_phylumdeclarations"* %kc_fe_selvar_139.0 to i32 (%"class.kc::impl_phylumdeclarations"*)***
%vtable41 = load i32 (%"class.kc::impl_phylumdeclarations"*)**, i32 (%"class.kc::impl_phylumdeclarations"*)*** %589, align 8, !tbaa !19
%590 = load i32 (%"class.kc::impl_phylumdeclarations"*)*, i32 (%"class.kc::impl_phylumdeclarations"*)** %vtable41, align 8
%call43 = call i32 %590(%"class.kc::impl_phylumdeclarations"* %kc_fe_selvar_139.0)
%cmp44 = icmp eq i32 %call43, 12
br i1 %cmp44, label %while.body45, label %while.end175
while.end175: ; preds = %if.end174, %while.end38
%591 = load i8, i8* @pg_languageshavebeendefined, align 1, !tbaa !26, !range !18
%tobool176 = icmp eq i8 %591, 0
br i1 %tobool176, label %if.end178, label %if.then177
if.then177: ; preds = %while.end175
call void @_ZN2kc15collect_stringsEv()
br label %if.end178
if.end178: ; preds = %while.end175, %if.then177
%592 = load i8, i8* @gp_no_fatal_problems, align 1, !tbaa !26, !range !18
%tobool179 = icmp eq i8 %592, 0
br i1 %tobool179, label %if.then180, label %if.end181
if.then180: ; preds = %if.end178
call void @_ZN2kc5leaveEi(i32 1)
unreachable
if.end181: ; preds = %if.end178
%593 = load %"class.kc::impl_phylumdeclarations"*, %"class.kc::impl_phylumdeclarations"** @Thephylumdeclarations, align 8, !tbaa !9
%call182 = call %"class.kc::impl_phylumdeclarationsroot_PhylumDeclarations"* @_ZN2kc18PhylumDeclarationsEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclarations"* %593)
%594 = load %"class.kc::impl_abstract_list"*, %"class.kc::impl_abstract_list"** bitcast (%"class.kc::impl_argsnumbers"** @Theargsnumbers to %"class.kc::impl_abstract_list"**), align 8, !tbaa !9
%call183 = call i32 @_ZNK2kc18impl_abstract_list6lengthEv(%"class.kc::impl_abstract_list"* %594)
%cmp184 = icmp eq i32 %call183, 0
br i1 %cmp184, label %if.then185, label %if.end188
if.then185: ; preds = %if.end181
%call186 = call %"class.kc::impl_integer__Int"* @_ZN2kc9mkintegerEi(i32 0)
%595 = load %"class.kc::impl_argsnumbers"*, %"class.kc::impl_argsnumbers"** @Theargsnumbers, align 8, !tbaa !9
%call187 = call %"class.kc::impl_argsnumbers"* @_ZN2kc15ConsargsnumbersEPNS_17impl_integer__IntEPNS_16impl_argsnumbersE(%"class.kc::impl_integer__Int"* %call186, %"class.kc::impl_argsnumbers"* %595)
store %"class.kc::impl_argsnumbers"* %call187, %"class.kc::impl_argsnumbers"** @Theargsnumbers, align 8, !tbaa !9
br label %if.end188
if.end188: ; preds = %if.then185, %if.end181
%596 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool189 = icmp eq i8 %596, 0
br i1 %tobool189, label %if.end193, label %if.then190
if.then190: ; preds = %if.end188
%call1.i901 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i64 0, i64 0), i64 24)
%call.i904 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull @_ZSt4cout)
br label %if.end193
if.end193: ; preds = %if.end188, %if.then190
%597 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %597) #21
%598 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 2
%599 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp to %union.anon**
store %union.anon* %598, %union.anon** %599, align 8, !tbaa !33, !alias.scope !115
%600 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !115
%601 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !115
%602 = bitcast i64* %__dnew.i.i.i.i.i to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %602) #21, !noalias !115
store i64 %601, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !54, !noalias !115
%cmp3.i.i.i.i.i = icmp ugt i64 %601, 15
br i1 %cmp3.i.i.i.i.i, label %if.then4.i.i.i.i.i, label %if.end.if.end6_crit_edge.i.i.i.i.i
if.end.if.end6_crit_edge.i.i.i.i.i: ; preds = %if.end193
%603 = bitcast %union.anon* %598 to i8*
br label %if.end6.i.i.i.i.i
if.then4.i.i.i.i.i: ; preds = %if.end193
%call5.i.i.i14.i.i = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i, i64 0)
%_M_p.i18.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i, i8** %_M_p.i18.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !115
%604 = load i64, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !54, !noalias !115
%_M_allocated_capacity.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 2, i32 0
store i64 %604, i64* %_M_allocated_capacity.i.i.i.i.i.i, align 8, !tbaa !25, !alias.scope !115
br label %if.end6.i.i.i.i.i
if.end6.i.i.i.i.i: ; preds = %if.then4.i.i.i.i.i, %if.end.if.end6_crit_edge.i.i.i.i.i
%605 = phi i8* [ %603, %if.end.if.end6_crit_edge.i.i.i.i.i ], [ %call5.i.i.i14.i.i, %if.then4.i.i.i.i.i ]
%_M_p.i.i.i.i.i.i905 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 0, i32 0
switch i64 %601, label %if.end.i.i.i.i.i.i.i.i [
i64 1, label %if.then.i.i.i.i.i.i.i
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
]
if.then.i.i.i.i.i.i.i: ; preds = %if.end6.i.i.i.i.i
%606 = load i8, i8* %600, align 1, !tbaa !25
store i8 %606, i8* %605, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
if.end.i.i.i.i.i.i.i.i: ; preds = %if.end6.i.i.i.i.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %605, i8* align 1 %600, i64 %601, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i: ; preds = %if.end.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i, %if.end6.i.i.i.i.i
%607 = load i64, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !54, !noalias !115
%_M_string_length.i.i.i.i.i.i.i906 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 1
store i64 %607, i64* %_M_string_length.i.i.i.i.i.i.i906, align 8, !tbaa !28, !alias.scope !115
%608 = load i8*, i8** %_M_p.i.i.i.i.i.i905, align 8, !tbaa !2, !alias.scope !115
%arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, i8* %608, i64 %607
store i8 0, i8* %arrayidx.i.i.i.i.i.i, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %602) #21, !noalias !115
%609 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i906, align 8, !tbaa !28, !alias.scope !115
%sub3.i.i.i = sub i64 4611686018427387903, %609
%cmp.i.i.i = icmp ult i64 %sub3.i.i.i, 3
br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i
if.then.i.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i unwind label %lpad.i909
.noexc.i: ; preds = %if.then.i.i.i
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
%call2.i2.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0), i64 3)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit unwind label %lpad.i909
lpad.i909: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i, %if.then.i.i.i
%610 = landingpad { i8*, i32 }
cleanup
%611 = load i8*, i8** %_M_p.i.i.i.i.i.i905, align 8, !tbaa !2, !alias.scope !115
%arraydecay.i.i.i.i.i = bitcast %union.anon* %598 to i8*
%cmp.i.i.i.i908 = icmp eq i8* %611, %arraydecay.i.i.i.i.i
br i1 %cmp.i.i.i.i908, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i910, label %if.then.i.i3.i
if.then.i.i3.i: ; preds = %lpad.i909
call void @_ZdlPv(i8* %611) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i910
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i910: ; preds = %if.then.i.i3.i, %lpad.i909
resume { i8*, i32 } %610
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
%612 = load i8*, i8** %_M_p.i.i.i.i.i.i905, align 8, !tbaa !2
%arraydecay.i.i.i.i911 = bitcast %union.anon* %598 to i8*
%cmp.i.i.i912 = icmp eq i8* %612, %arraydecay.i.i.i.i911
br i1 %cmp.i.i.i912, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i913
if.then.i.i913: ; preds = %invoke.cont
call void @_ZdlPv(i8* %612) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %invoke.cont, %if.then.i.i913
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %597) #21
%613 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp194 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %613) #21
%614 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp195 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %614) #21
%615 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp195, i64 0, i32 2
%616 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp195 to %union.anon**
store %union.anon* %615, %union.anon** %616, align 8, !tbaa !33, !alias.scope !118
%617 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !118
%618 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !118
%619 = bitcast i64* %__dnew.i.i.i.i.i915 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %619) #21, !noalias !118
store i64 %618, i64* %__dnew.i.i.i.i.i915, align 8, !tbaa !54, !noalias !118
%cmp3.i.i.i.i.i916 = icmp ugt i64 %618, 15
br i1 %cmp3.i.i.i.i.i916, label %if.then4.i.i.i.i.i921, label %if.end.if.end6_crit_edge.i.i.i.i.i917
if.end.if.end6_crit_edge.i.i.i.i.i917: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
%620 = bitcast %union.anon* %615 to i8*
br label %if.end6.i.i.i.i.i923
if.then4.i.i.i.i.i921: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
%call5.i.i.i14.i.i918 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp195, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i915, i64 0)
%_M_p.i18.i.i.i.i.i919 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp195, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i918, i8** %_M_p.i18.i.i.i.i.i919, align 8, !tbaa !2, !alias.scope !118
%621 = load i64, i64* %__dnew.i.i.i.i.i915, align 8, !tbaa !54, !noalias !118
%_M_allocated_capacity.i.i.i.i.i.i920 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp195, i64 0, i32 2, i32 0
store i64 %621, i64* %_M_allocated_capacity.i.i.i.i.i.i920, align 8, !tbaa !25, !alias.scope !118
br label %if.end6.i.i.i.i.i923
if.end6.i.i.i.i.i923: ; preds = %if.then4.i.i.i.i.i921, %if.end.if.end6_crit_edge.i.i.i.i.i917
%622 = phi i8* [ %620, %if.end.if.end6_crit_edge.i.i.i.i.i917 ], [ %call5.i.i.i14.i.i918, %if.then4.i.i.i.i.i921 ]
%_M_p.i.i.i.i.i.i922 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp195, i64 0, i32 0, i32 0
switch i64 %618, label %if.end.i.i.i.i.i.i.i.i925 [
i64 1, label %if.then.i.i.i.i.i.i.i924
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i931
]
if.then.i.i.i.i.i.i.i924: ; preds = %if.end6.i.i.i.i.i923
%623 = load i8, i8* %617, align 1, !tbaa !25
store i8 %623, i8* %622, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i931
if.end.i.i.i.i.i.i.i.i925: ; preds = %if.end6.i.i.i.i.i923
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %622, i8* align 1 %617, i64 %618, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i931
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i931: ; preds = %if.end.i.i.i.i.i.i.i.i925, %if.then.i.i.i.i.i.i.i924, %if.end6.i.i.i.i.i923
%624 = load i64, i64* %__dnew.i.i.i.i.i915, align 8, !tbaa !54, !noalias !118
%_M_string_length.i.i.i.i.i.i.i926 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp195, i64 0, i32 1
store i64 %624, i64* %_M_string_length.i.i.i.i.i.i.i926, align 8, !tbaa !28, !alias.scope !118
%625 = load i8*, i8** %_M_p.i.i.i.i.i.i922, align 8, !tbaa !2, !alias.scope !118
%arrayidx.i.i.i.i.i.i927 = getelementptr inbounds i8, i8* %625, i64 %624
store i8 0, i8* %arrayidx.i.i.i.i.i.i927, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %619) #21, !noalias !118
%626 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i926, align 8, !tbaa !28, !alias.scope !118
%627 = or i64 %626, 1
%cmp.i.i.i930 = icmp eq i64 %627, 4611686018427387903
br i1 %cmp.i.i.i930, label %if.then.i.i.i932, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i935
if.then.i.i.i932: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i931
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i933 unwind label %lpad.i938
.noexc.i933: ; preds = %if.then.i.i.i932
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i935: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i931
%call2.i2.i934 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp195, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0), i64 2)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit941 unwind label %lpad.i938
lpad.i938: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i935, %if.then.i.i.i932
%628 = landingpad { i8*, i32 }
cleanup
%629 = load i8*, i8** %_M_p.i.i.i.i.i.i922, align 8, !tbaa !2, !alias.scope !118
%arraydecay.i.i.i.i.i936 = bitcast %union.anon* %615 to i8*
%cmp.i.i.i.i937 = icmp eq i8* %629, %arraydecay.i.i.i.i.i936
br i1 %cmp.i.i.i.i937, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i940, label %if.then.i.i3.i939
if.then.i.i3.i939: ; preds = %lpad.i938
call void @_ZdlPv(i8* %629) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i940
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i940: ; preds = %if.then.i.i3.i939, %lpad.i938
resume { i8*, i32 } %628
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit941: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i935
%630 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !121
%631 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !121
%call3.i.i942948 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp195, i8* %630, i64 %631)
to label %call3.i.i942.noexc unwind label %lpad196
call3.i.i942.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit941
%632 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp194, i64 0, i32 2
%633 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp194 to %union.anon**
store %union.anon* %632, %union.anon** %633, align 8, !tbaa !33, !alias.scope !121
%_M_p.i.i34.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i942948, i64 0, i32 0, i32 0
%634 = load i8*, i8** %_M_p.i.i34.i.i, align 8, !tbaa !2
%635 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i942948, i64 0, i32 2
%arraydecay.i.i.i.i943 = bitcast %union.anon* %635 to i8*
%cmp.i.i.i944 = icmp eq i8* %634, %arraydecay.i.i.i.i943
br i1 %cmp.i.i.i944, label %if.then.i.i945, label %if.else.i.i947
if.then.i.i945: ; preds = %call3.i.i942.noexc
%arraydecay.i.i.i = bitcast %union.anon* %632 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i, i8* nonnull align 1 dereferenceable(16) %634, i64 16, i1 false) #21
br label %invoke.cont197
if.else.i.i947: ; preds = %call3.i.i942.noexc
%_M_p.i32.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp194, i64 0, i32 0, i32 0
store i8* %634, i8** %_M_p.i32.i.i, align 8, !tbaa !2, !alias.scope !121
%_M_allocated_capacity.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i942948, i64 0, i32 2, i32 0
%636 = load i64, i64* %_M_allocated_capacity.i.i, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i946 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp194, i64 0, i32 2, i32 0
store i64 %636, i64* %_M_allocated_capacity.i.i.i946, align 8, !tbaa !25, !alias.scope !121
br label %invoke.cont197
invoke.cont197: ; preds = %if.else.i.i947, %if.then.i.i945
%_M_string_length.i31.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i942948, i64 0, i32 1
%637 = load i64, i64* %_M_string_length.i31.i.i, align 8, !tbaa !28
%_M_string_length.i.i2.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp194, i64 0, i32 1
store i64 %637, i64* %_M_string_length.i.i2.i, align 8, !tbaa !28, !alias.scope !121
%638 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i942948 to %union.anon**
store %union.anon* %635, %union.anon** %638, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i943, align 1, !tbaa !25
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_ccfile_printer, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp194)
to label %invoke.cont199 unwind label %lpad198
invoke.cont199: ; preds = %invoke.cont197
%_M_p.i.i.i.i949 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp194, i64 0, i32 0, i32 0
%639 = load i8*, i8** %_M_p.i.i.i.i949, align 8, !tbaa !2
%arraydecay.i.i.i.i950 = bitcast %union.anon* %632 to i8*
%cmp.i.i.i951 = icmp eq i8* %639, %arraydecay.i.i.i.i950
br i1 %cmp.i.i.i951, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit954, label %if.then.i.i952
if.then.i.i952: ; preds = %invoke.cont199
call void @_ZdlPv(i8* %639) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit954
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit954: ; preds = %invoke.cont199, %if.then.i.i952
%640 = load i8*, i8** %_M_p.i.i.i.i.i.i922, align 8, !tbaa !2
%arraydecay.i.i.i.i956 = bitcast %union.anon* %615 to i8*
%cmp.i.i.i957 = icmp eq i8* %640, %arraydecay.i.i.i.i956
br i1 %cmp.i.i.i957, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit960, label %if.then.i.i958
if.then.i.i958: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit954
call void @_ZdlPv(i8* %640) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit960
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit960: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit954, %if.then.i.i958
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %614) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %613) #21
%641 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool202 = icmp eq i8 %641, 0
br i1 %tobool202, label %if.end217, label %if.then203
if.then203: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit960
%642 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp204 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %642) #21
%643 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp205 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %643) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp205, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%_M_string_length.i.i.i.i962 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp205, i64 0, i32 1
%644 = load i64, i64* %_M_string_length.i.i.i.i962, align 8, !tbaa !28, !noalias !124
%cmp.i.i.i964 = icmp eq i64 %644, 4611686018427387903
br i1 %cmp.i.i.i964, label %if.then.i.i.i965, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i
if.then.i.i.i965: ; preds = %if.then203
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc unwind label %lpad206
.noexc: ; preds = %if.then.i.i.i965
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i: ; preds = %if.then203
%call2.i.i966976 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp205, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.16, i64 0, i64 0), i64 1)
to label %call2.i.i966.noexc unwind label %lpad206
call2.i.i966.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i
%645 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp204, i64 0, i32 2
%646 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp204 to %union.anon**
store %union.anon* %645, %union.anon** %646, align 8, !tbaa !33, !alias.scope !124
%_M_p.i.i34.i.i967 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i966976, i64 0, i32 0, i32 0
%647 = load i8*, i8** %_M_p.i.i34.i.i967, align 8, !tbaa !2
%648 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i966976, i64 0, i32 2
%arraydecay.i.i.i.i968 = bitcast %union.anon* %648 to i8*
%cmp.i.i2.i = icmp eq i8* %647, %arraydecay.i.i.i.i968
br i1 %cmp.i.i2.i, label %if.then.i.i970, label %if.else.i.i974
if.then.i.i970: ; preds = %call2.i.i966.noexc
%arraydecay.i.i.i969 = bitcast %union.anon* %645 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i969, i8* nonnull align 1 dereferenceable(16) %647, i64 16, i1 false) #21
br label %invoke.cont207
if.else.i.i974: ; preds = %call2.i.i966.noexc
%_M_p.i32.i.i971 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp204, i64 0, i32 0, i32 0
store i8* %647, i8** %_M_p.i32.i.i971, align 8, !tbaa !2, !alias.scope !124
%_M_allocated_capacity.i.i972 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i966976, i64 0, i32 2, i32 0
%649 = load i64, i64* %_M_allocated_capacity.i.i972, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i973 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp204, i64 0, i32 2, i32 0
store i64 %649, i64* %_M_allocated_capacity.i.i.i973, align 8, !tbaa !25, !alias.scope !124
br label %invoke.cont207
invoke.cont207: ; preds = %if.else.i.i974, %if.then.i.i970
%_M_string_length.i31.i.i975 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i966976, i64 0, i32 1
%650 = load i64, i64* %_M_string_length.i31.i.i975, align 8, !tbaa !28
%_M_string_length.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp204, i64 0, i32 1
store i64 %650, i64* %_M_string_length.i.i.i, align 8, !tbaa !28, !alias.scope !124
%651 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i966976 to %union.anon**
store %union.anon* %648, %union.anon** %651, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i975, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i968, align 1, !tbaa !25
%_M_p.i.i.i977 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp204, i64 0, i32 0, i32 0
%652 = load i8*, i8** %_M_p.i.i.i977, align 8, !tbaa !2
%653 = load i64, i64* %_M_string_length.i.i.i, align 8, !tbaa !28
%call2.i978979 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %652, i64 %653)
to label %invoke.cont209 unwind label %lpad208
invoke.cont209: ; preds = %invoke.cont207
%call.i982983 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i978979)
to label %invoke.cont211 unwind label %lpad208
invoke.cont211: ; preds = %invoke.cont209
%654 = load i8*, i8** %_M_p.i.i.i977, align 8, !tbaa !2
%arraydecay.i.i.i.i985 = bitcast %union.anon* %645 to i8*
%cmp.i.i.i986 = icmp eq i8* %654, %arraydecay.i.i.i.i985
br i1 %cmp.i.i.i986, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit989, label %if.then.i.i987
if.then.i.i987: ; preds = %invoke.cont211
call void @_ZdlPv(i8* %654) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit989
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit989: ; preds = %invoke.cont211, %if.then.i.i987
%_M_p.i.i.i.i990 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp205, i64 0, i32 0, i32 0
%655 = load i8*, i8** %_M_p.i.i.i.i990, align 8, !tbaa !2
%656 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp205, i64 0, i32 2
%arraydecay.i.i.i.i991 = bitcast %union.anon* %656 to i8*
%cmp.i.i.i992 = icmp eq i8* %655, %arraydecay.i.i.i.i991
br i1 %cmp.i.i.i992, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit995, label %if.then.i.i993
if.then.i.i993: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit989
call void @_ZdlPv(i8* %655) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit995
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit995: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit989, %if.then.i.i993
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %643) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %642) #21
br label %if.end217
lpad: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
%657 = landingpad { i8*, i32 }
cleanup
%658 = extractvalue { i8*, i32 } %657, 0
%659 = extractvalue { i8*, i32 } %657, 1
%660 = load i8*, i8** %_M_p.i.i.i.i.i.i905, align 8, !tbaa !2
%arraydecay.i.i.i.i997 = bitcast %union.anon* %598 to i8*
%cmp.i.i.i998 = icmp eq i8* %660, %arraydecay.i.i.i.i997
br i1 %cmp.i.i.i998, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1001, label %if.then.i.i999
if.then.i.i999: ; preds = %lpad
call void @_ZdlPv(i8* %660) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1001
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1001: ; preds = %lpad, %if.then.i.i999
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %597) #21
br label %ehcleanup675
lpad196: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit941
%661 = landingpad { i8*, i32 }
cleanup
%662 = extractvalue { i8*, i32 } %661, 0
%663 = extractvalue { i8*, i32 } %661, 1
br label %ehcleanup
lpad198: ; preds = %invoke.cont197
%664 = landingpad { i8*, i32 }
cleanup
%665 = extractvalue { i8*, i32 } %664, 0
%666 = extractvalue { i8*, i32 } %664, 1
%_M_p.i.i.i.i1002 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp194, i64 0, i32 0, i32 0
%667 = load i8*, i8** %_M_p.i.i.i.i1002, align 8, !tbaa !2
%arraydecay.i.i.i.i1003 = bitcast %union.anon* %632 to i8*
%cmp.i.i.i1004 = icmp eq i8* %667, %arraydecay.i.i.i.i1003
br i1 %cmp.i.i.i1004, label %ehcleanup, label %if.then.i.i1005
if.then.i.i1005: ; preds = %lpad198
call void @_ZdlPv(i8* %667) #21
br label %ehcleanup
ehcleanup: ; preds = %if.then.i.i1005, %lpad198, %lpad196
%exn.slot.0 = phi i8* [ %662, %lpad196 ], [ %665, %lpad198 ], [ %665, %if.then.i.i1005 ]
%ehselector.slot.0 = phi i32 [ %663, %lpad196 ], [ %666, %lpad198 ], [ %666, %if.then.i.i1005 ]
%668 = load i8*, i8** %_M_p.i.i.i.i.i.i922, align 8, !tbaa !2
%arraydecay.i.i.i.i1009 = bitcast %union.anon* %615 to i8*
%cmp.i.i.i1010 = icmp eq i8* %668, %arraydecay.i.i.i.i1009
br i1 %cmp.i.i.i1010, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1013, label %if.then.i.i1011
if.then.i.i1011: ; preds = %ehcleanup
call void @_ZdlPv(i8* %668) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1013
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1013: ; preds = %ehcleanup, %if.then.i.i1011
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %614) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %613) #21
br label %ehcleanup675
lpad206: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i, %if.then.i.i.i965
%669 = landingpad { i8*, i32 }
cleanup
%670 = extractvalue { i8*, i32 } %669, 0
%671 = extractvalue { i8*, i32 } %669, 1
br label %ehcleanup214
lpad208: ; preds = %invoke.cont209, %invoke.cont207
%672 = landingpad { i8*, i32 }
cleanup
%673 = extractvalue { i8*, i32 } %672, 0
%674 = extractvalue { i8*, i32 } %672, 1
%675 = load i8*, i8** %_M_p.i.i.i977, align 8, !tbaa !2
%arraydecay.i.i.i.i1015 = bitcast %union.anon* %645 to i8*
%cmp.i.i.i1016 = icmp eq i8* %675, %arraydecay.i.i.i.i1015
br i1 %cmp.i.i.i1016, label %ehcleanup214, label %if.then.i.i1017
if.then.i.i1017: ; preds = %lpad208
call void @_ZdlPv(i8* %675) #21
br label %ehcleanup214
ehcleanup214: ; preds = %if.then.i.i1017, %lpad208, %lpad206
%exn.slot.1 = phi i8* [ %670, %lpad206 ], [ %673, %lpad208 ], [ %673, %if.then.i.i1017 ]
%ehselector.slot.1 = phi i32 [ %671, %lpad206 ], [ %674, %lpad208 ], [ %674, %if.then.i.i1017 ]
%_M_p.i.i.i.i1020 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp205, i64 0, i32 0, i32 0
%676 = load i8*, i8** %_M_p.i.i.i.i1020, align 8, !tbaa !2
%677 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp205, i64 0, i32 2
%arraydecay.i.i.i.i1021 = bitcast %union.anon* %677 to i8*
%cmp.i.i.i1022 = icmp eq i8* %676, %arraydecay.i.i.i.i1021
br i1 %cmp.i.i.i1022, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1025, label %if.then.i.i1023
if.then.i.i1023: ; preds = %ehcleanup214
call void @_ZdlPv(i8* %676) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1025
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1025: ; preds = %ehcleanup214, %if.then.i.i1023
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %643) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %642) #21
br label %ehcleanup675
if.end217: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit960, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit995
%678 = getelementptr %"class.kc::impl_phylumdeclarationsroot_PhylumDeclarations", %"class.kc::impl_phylumdeclarationsroot_PhylumDeclarations"* %call182, i64 0, i32 0, i32 0
%679 = bitcast %"class.kc::impl_phylumdeclarationsroot_PhylumDeclarations"* %call182 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1026 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1027 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1026, i64 9
%680 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1027, align 8
call void %680(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_k_h_class", %"struct.kc::view_gen_k_h_class"* @_ZN2kc12view_gen_k_hE, i64 0, i32 0))
%vtable.i1028 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1029 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1028, i64 9
%681 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1029, align 8
call void %681(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_k_c_class", %"struct.kc::view_gen_k_c_class"* @_ZN2kc12view_gen_k_cE, i64 0, i32 0))
%vtable.i1030 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1031 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1030, i64 9
%682 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1031, align 8
call void %682(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_enumphyla_h_class", %"struct.kc::view_gen_enumphyla_h_class"* @_ZN2kc20view_gen_enumphyla_hE, i64 0, i32 0))
%vtable.i1032 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1033 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1032, i64 9
%683 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1033, align 8
call void %683(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_enumoperators_h_class", %"struct.kc::view_gen_enumoperators_h_class"* @_ZN2kc24view_gen_enumoperators_hE, i64 0, i32 0))
%vtable.i1034 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1035 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1034, i64 9
%684 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1035, align 8
call void %684(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_classdecls1_h_class", %"struct.kc::view_gen_classdecls1_h_class"* @_ZN2kc22view_gen_classdecls1_hE, i64 0, i32 0))
%vtable.i1036 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1037 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1036, i64 9
%685 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1037, align 8
call void %685(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_nodetypedefs_h_class", %"struct.kc::view_gen_nodetypedefs_h_class"* @_ZN2kc23view_gen_nodetypedefs_hE, i64 0, i32 0))
%vtable.i1038 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1039 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1038, i64 9
%686 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1039, align 8
call void %686(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_operatormap_type_h_class", %"struct.kc::view_gen_operatormap_type_h_class"* @_ZN2kc27view_gen_operatormap_type_hE, i64 0, i32 0))
%vtable.i1040 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1041 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1040, i64 9
%687 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1041, align 8
call void %687(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_subphylumdefs_c_class", %"struct.kc::view_gen_subphylumdefs_c_class"* @_ZN2kc24view_gen_subphylumdefs_cE, i64 0, i32 0))
%vtable.i1042 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1043 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1042, i64 9
%688 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1043, align 8
call void %688(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_set_subphylumdefs_c_class", %"struct.kc::view_gen_set_subphylumdefs_c_class"* @_ZN2kc28view_gen_set_subphylumdefs_cE, i64 0, i32 0))
%vtable.i1044 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1045 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1044, i64 9
%689 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1045, align 8
call void %689(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_copy_attributes_c_class", %"struct.kc::view_gen_copy_attributes_c_class"* @_ZN2kc26view_gen_copy_attributes_cE, i64 0, i32 0))
%vtable.i1046 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1047 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1046, i64 9
%690 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1047, align 8
call void %690(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_phylummap_c_class", %"struct.kc::view_gen_phylummap_c_class"* @_ZN2kc20view_gen_phylummap_cE, i64 0, i32 0))
%vtable.i1048 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1049 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1048, i64 9
%691 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1049, align 8
call void %691(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_operatormap_c_class", %"struct.kc::view_gen_operatormap_c_class"* @_ZN2kc22view_gen_operatormap_cE, i64 0, i32 0))
%692 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** bitcast (%"class.kc::impl_storageclasses"** @Thestorageclasses to %"class.kc::impl_abstract_phylum"**), align 8, !tbaa !9
%693 = bitcast %"class.kc::impl_abstract_phylum"* %692 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1050 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %693, align 8, !tbaa !19
%vfn.i1051 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1050, i64 9
%694 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1051, align 8
call void %694(%"class.kc::impl_abstract_phylum"* %692, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_uniqmap_c_class", %"struct.kc::view_gen_uniqmap_c_class"* @_ZN2kc18view_gen_uniqmap_cE, i64 0, i32 0))
%vtable.i1052 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1053 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1052, i64 9
%695 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1053, align 8
call void %695(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_nodetypes_h_class", %"struct.kc::view_gen_nodetypes_h_class"* @_ZN2kc20view_gen_nodetypes_hE, i64 0, i32 0))
%vtable.i1054 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1055 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1054, i64 9
%696 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1055, align 8
call void %696(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_noofoperators_h_class", %"struct.kc::view_gen_noofoperators_h_class"* @_ZN2kc24view_gen_noofoperators_hE, i64 0, i32 0))
%vtable.i1056 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1057 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1056, i64 9
%697 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1057, align 8
call void %697(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%vtable.i1058 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1059 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1058, i64 9
%698 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1059, align 8
call void %698(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%call218 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.17, i64 0, i64 0), i32 -1)
%call219 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call218)
%call220 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.17, i64 0, i64 0), i32 -1)
%call221 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call220)
%inc_type = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call221, i64 0, i32 0, i32 1
%699 = load i32, i32* %inc_type, align 8, !tbaa !85
%cmp.i = icmp eq i32 %699, 0
%inc1.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call219, i64 0, i32 0, i32 2, i32 0
%inc2.i = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call219, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i = select i1 %cmp.i, %"class.kc::impl_includedeclarations"** %inc1.i, %"class.kc::impl_includedeclarations"** %inc2.i
%700 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i to %"class.kc::impl_abstract_phylum"**
%701 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %700, align 8, !tbaa !9
%702 = bitcast %"class.kc::impl_abstract_phylum"* %701 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1060 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %702, align 8, !tbaa !19
%vfn.i1061 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1060, i64 9
%703 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1061, align 8
call void %703(%"class.kc::impl_abstract_phylum"* %701, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%call223 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i64 0, i64 0), i32 -1)
%call224 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call223)
%call226 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.18, i64 0, i64 0), i32 -1)
%call227 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call226)
%inc_type228 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call227, i64 0, i32 0, i32 1
%704 = load i32, i32* %inc_type228, align 8, !tbaa !85
%cmp.i1062 = icmp eq i32 %704, 0
%inc1.i1063 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call224, i64 0, i32 0, i32 2, i32 0
%inc2.i1064 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call224, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i1065 = select i1 %cmp.i1062, %"class.kc::impl_includedeclarations"** %inc1.i1063, %"class.kc::impl_includedeclarations"** %inc2.i1064
%705 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i1065 to %"class.kc::impl_abstract_phylum"**
%706 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %705, align 8, !tbaa !9
%707 = bitcast %"class.kc::impl_abstract_phylum"* %706 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1066 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %707, align 8, !tbaa !19
%vfn.i1067 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1066, i64 9
%708 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1067, align 8
call void %708(%"class.kc::impl_abstract_phylum"* %706, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i1068 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1069 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1068, i64 9
%709 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1069, align 8
call void %709(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i1070 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1071 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1070, i64 9
%710 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1071, align 8
call void %710(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i1072 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1073 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1072, i64 9
%711 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1073, align 8
call void %711(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_assertmacros_h_class", %"struct.kc::view_gen_assertmacros_h_class"* @_ZN2kc23view_gen_assertmacros_hE, i64 0, i32 0))
%vtable.i1074 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1075 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1074, i64 9
%712 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1075, align 8
call void %712(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_assertmacros_c_class", %"struct.kc::view_gen_assertmacros_c_class"* @_ZN2kc23view_gen_assertmacros_cE, i64 0, i32 0))
%vtable.i1076 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1077 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1076, i64 9
%713 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1077, align 8
call void %713(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_operatordecls_h_class", %"struct.kc::view_gen_operatordecls_h_class"* @_ZN2kc24view_gen_operatordecls_hE, i64 0, i32 0))
%vtable.i1078 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1079 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1078, i64 9
%714 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1079, align 8
call void %714(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_classdecls2_h_class", %"struct.kc::view_gen_classdecls2_h_class"* @_ZN2kc22view_gen_classdecls2_hE, i64 0, i32 0))
%vtable.i1080 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1081 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1080, i64 9
%715 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1081, align 8
call void %715(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_classdefs_c_class", %"struct.kc::view_gen_classdefs_c_class"* @_ZN2kc20view_gen_classdefs_cE, i64 0, i32 0))
%vtable.i1082 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1083 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1082, i64 9
%716 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1083, align 8
call void %716(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_alloc_h_class", %"struct.kc::view_gen_alloc_h_class"* @_ZN2kc16view_gen_alloc_hE, i64 0, i32 0))
%vtable.i1084 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1085 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1084, i64 9
%717 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1085, align 8
call void %717(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_alloc_c_class", %"struct.kc::view_gen_alloc_c_class"* @_ZN2kc16view_gen_alloc_cE, i64 0, i32 0))
%vtable.i1086 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1087 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1086, i64 9
%718 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1087, align 8
call void %718(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_hashtables_h_class", %"struct.kc::view_gen_hashtables_h_class"* @_ZN2kc21view_gen_hashtables_hE, i64 0, i32 0))
%vtable.i1088 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1089 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1088, i64 9
%719 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1089, align 8
call void %719(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_operatordefs_c_class", %"struct.kc::view_gen_operatordefs_c_class"* @_ZN2kc23view_gen_operatordefs_cE, i64 0, i32 0))
%vtable.i1090 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1091 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1090, i64 9
%720 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1091, align 8
call void %720(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_hashtables_c_class", %"struct.kc::view_gen_hashtables_c_class"* @_ZN2kc21view_gen_hashtables_cE, i64 0, i32 0))
%vtable.i1092 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1093 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1092, i64 9
%721 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1093, align 8
call void %721(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_error_decls_h_class", %"struct.kc::view_gen_error_decls_h_class"* @_ZN2kc22view_gen_error_decls_hE, i64 0, i32 0))
%vtable.i1094 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1095 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1094, i64 9
%722 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1095, align 8
call void %722(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_error_defs_c_class", %"struct.kc::view_gen_error_defs_c_class"* @_ZN2kc21view_gen_error_defs_cE, i64 0, i32 0))
%723 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 7), align 1, !tbaa !42, !range !18
%tobool230 = icmp eq i8 %723, 0
br i1 %tobool230, label %if.then231, label %if.end232
if.then231: ; preds = %if.end217
%vtable.i1096 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1097 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1096, i64 9
%724 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1097, align 8
call void %724(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_printdotdecls_h_class", %"struct.kc::view_gen_printdotdecls_h_class"* @_ZN2kc24view_gen_printdotdecls_hE, i64 0, i32 0))
%vtable.i1098 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1099 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1098, i64 9
%725 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1099, align 8
call void %725(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_printdotdefs_c_class", %"struct.kc::view_gen_printdotdefs_c_class"* @_ZN2kc23view_gen_printdotdefs_cE, i64 0, i32 0))
br label %if.end232
if.end232: ; preds = %if.end217, %if.then231
%vtable.i1100 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1101 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1100, i64 9
%726 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1101, align 8
call void %726(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_listdefs_c_class", %"struct.kc::view_gen_listdefs_c_class"* @_ZN2kc19view_gen_listdefs_cE, i64 0, i32 0))
%vtable.i1102 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1103 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1102, i64 9
%727 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1103, align 8
call void %727(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_copydefs_c_class", %"struct.kc::view_gen_copydefs_c_class"* @_ZN2kc19view_gen_copydefs_cE, i64 0, i32 0))
%vtable.i1104 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1105 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1104, i64 9
%728 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1105, align 8
call void %728(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_end_k_h_class", %"struct.kc::view_gen_end_k_h_class"* @_ZN2kc16view_gen_end_k_hE, i64 0, i32 0))
%vtable.i1106 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1107 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1106, i64 9
%729 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1107, align 8
call void %729(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%730 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i1108 = icmp eq %struct._IO_FILE* %730, null
br i1 %tobool.i1108, label %_ZN14kc_filePrinter6fcloseEv.exit.thread, label %_ZN14kc_filePrinter6fcloseEv.exit
_ZN14kc_filePrinter6fcloseEv.exit.thread: ; preds = %if.end232
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end239
_ZN14kc_filePrinter6fcloseEv.exit: ; preds = %if.end232
%call.i1109 = call i32 @fclose(%struct._IO_FILE* nonnull %730)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp234 = icmp eq i32 %call.i1109, -1
br i1 %cmp234, label %if.then235, label %if.end239
if.then235: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit
%call236 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%731 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call236 to %"class.kc::impl_fileline"*
%call237 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.19, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call238 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %731, %"class.kc::impl_problem"* %call237)
%732 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call238, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %732)
br label %if.end239
if.end239: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit.thread, %if.then235, %_ZN14kc_filePrinter6fcloseEv.exit
%733 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i1112 = icmp eq %struct._IO_FILE* %733, null
br i1 %tobool.i1112, label %_ZN14kc_filePrinter6fcloseEv.exit1117.thread, label %_ZN14kc_filePrinter6fcloseEv.exit1117
_ZN14kc_filePrinter6fcloseEv.exit1117.thread: ; preds = %if.end239
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end246
_ZN14kc_filePrinter6fcloseEv.exit1117: ; preds = %if.end239
%call.i1113 = call i32 @fclose(%struct._IO_FILE* nonnull %733)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp241 = icmp eq i32 %call.i1113, -1
br i1 %cmp241, label %if.then242, label %if.end246
if.then242: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1117
%call243 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%734 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call243 to %"class.kc::impl_fileline"*
%call244 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.20, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call245 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %734, %"class.kc::impl_problem"* %call244)
%735 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call245, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %735)
br label %if.end246
if.end246: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1117.thread, %if.then242, %_ZN14kc_filePrinter6fcloseEv.exit1117
%736 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp247 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %736) #21
%737 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp248 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %737) #21
%738 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp248, i64 0, i32 2
%739 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp248 to %union.anon**
store %union.anon* %738, %union.anon** %739, align 8, !tbaa !33, !alias.scope !127
%740 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !127
%741 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !127
%742 = bitcast i64* %__dnew.i.i.i.i.i1118 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %742) #21, !noalias !127
store i64 %741, i64* %__dnew.i.i.i.i.i1118, align 8, !tbaa !54, !noalias !127
%cmp3.i.i.i.i.i1119 = icmp ugt i64 %741, 15
br i1 %cmp3.i.i.i.i.i1119, label %if.then4.i.i.i.i.i1124, label %if.end.if.end6_crit_edge.i.i.i.i.i1120
if.end.if.end6_crit_edge.i.i.i.i.i1120: ; preds = %if.end246
%743 = bitcast %union.anon* %738 to i8*
br label %if.end6.i.i.i.i.i1126
if.then4.i.i.i.i.i1124: ; preds = %if.end246
%call5.i.i.i14.i.i1121 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp248, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1118, i64 0)
%_M_p.i18.i.i.i.i.i1122 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp248, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1121, i8** %_M_p.i18.i.i.i.i.i1122, align 8, !tbaa !2, !alias.scope !127
%744 = load i64, i64* %__dnew.i.i.i.i.i1118, align 8, !tbaa !54, !noalias !127
%_M_allocated_capacity.i.i.i.i.i.i1123 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp248, i64 0, i32 2, i32 0
store i64 %744, i64* %_M_allocated_capacity.i.i.i.i.i.i1123, align 8, !tbaa !25, !alias.scope !127
br label %if.end6.i.i.i.i.i1126
if.end6.i.i.i.i.i1126: ; preds = %if.then4.i.i.i.i.i1124, %if.end.if.end6_crit_edge.i.i.i.i.i1120
%745 = phi i8* [ %743, %if.end.if.end6_crit_edge.i.i.i.i.i1120 ], [ %call5.i.i.i14.i.i1121, %if.then4.i.i.i.i.i1124 ]
%_M_p.i.i.i.i.i.i1125 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp248, i64 0, i32 0, i32 0
switch i64 %741, label %if.end.i.i.i.i.i.i.i.i1128 [
i64 1, label %if.then.i.i.i.i.i.i.i1127
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1134
]
if.then.i.i.i.i.i.i.i1127: ; preds = %if.end6.i.i.i.i.i1126
%746 = load i8, i8* %740, align 1, !tbaa !25
store i8 %746, i8* %745, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1134
if.end.i.i.i.i.i.i.i.i1128: ; preds = %if.end6.i.i.i.i.i1126
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %745, i8* align 1 %740, i64 %741, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1134
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1134: ; preds = %if.end.i.i.i.i.i.i.i.i1128, %if.then.i.i.i.i.i.i.i1127, %if.end6.i.i.i.i.i1126
%747 = load i64, i64* %__dnew.i.i.i.i.i1118, align 8, !tbaa !54, !noalias !127
%_M_string_length.i.i.i.i.i.i.i1129 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp248, i64 0, i32 1
store i64 %747, i64* %_M_string_length.i.i.i.i.i.i.i1129, align 8, !tbaa !28, !alias.scope !127
%748 = load i8*, i8** %_M_p.i.i.i.i.i.i1125, align 8, !tbaa !2, !alias.scope !127
%arrayidx.i.i.i.i.i.i1130 = getelementptr inbounds i8, i8* %748, i64 %747
store i8 0, i8* %arrayidx.i.i.i.i.i.i1130, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %742) #21, !noalias !127
%749 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1129, align 8, !tbaa !28, !alias.scope !127
%750 = or i64 %749, 1
%cmp.i.i.i1133 = icmp eq i64 %750, 4611686018427387903
br i1 %cmp.i.i.i1133, label %if.then.i.i.i1135, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1138
if.then.i.i.i1135: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1134
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1136 unwind label %lpad.i1141
.noexc.i1136: ; preds = %if.then.i.i.i1135
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1138: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1134
%call2.i2.i1137 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp248, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0), i64 2)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1144 unwind label %lpad.i1141
lpad.i1141: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1138, %if.then.i.i.i1135
%751 = landingpad { i8*, i32 }
cleanup
%752 = load i8*, i8** %_M_p.i.i.i.i.i.i1125, align 8, !tbaa !2, !alias.scope !127
%arraydecay.i.i.i.i.i1139 = bitcast %union.anon* %738 to i8*
%cmp.i.i.i.i1140 = icmp eq i8* %752, %arraydecay.i.i.i.i.i1139
br i1 %cmp.i.i.i.i1140, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1143, label %if.then.i.i3.i1142
if.then.i.i3.i1142: ; preds = %lpad.i1141
call void @_ZdlPv(i8* %752) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1143
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1143: ; preds = %if.then.i.i3.i1142, %lpad.i1141
resume { i8*, i32 } %751
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1144: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1138
%753 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !130
%754 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !130
%call3.i.i11451157 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp248, i8* %753, i64 %754)
to label %call3.i.i1145.noexc unwind label %lpad249
call3.i.i1145.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1144
%755 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp247, i64 0, i32 2
%756 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp247 to %union.anon**
store %union.anon* %755, %union.anon** %756, align 8, !tbaa !33, !alias.scope !130
%_M_p.i.i34.i.i1146 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i11451157, i64 0, i32 0, i32 0
%757 = load i8*, i8** %_M_p.i.i34.i.i1146, align 8, !tbaa !2
%758 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i11451157, i64 0, i32 2
%arraydecay.i.i.i.i1147 = bitcast %union.anon* %758 to i8*
%cmp.i.i.i1148 = icmp eq i8* %757, %arraydecay.i.i.i.i1147
br i1 %cmp.i.i.i1148, label %if.then.i.i1150, label %if.else.i.i1154
if.then.i.i1150: ; preds = %call3.i.i1145.noexc
%arraydecay.i.i.i1149 = bitcast %union.anon* %755 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1149, i8* nonnull align 1 dereferenceable(16) %757, i64 16, i1 false) #21
br label %invoke.cont250
if.else.i.i1154: ; preds = %call3.i.i1145.noexc
%_M_p.i32.i.i1151 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp247, i64 0, i32 0, i32 0
store i8* %757, i8** %_M_p.i32.i.i1151, align 8, !tbaa !2, !alias.scope !130
%_M_allocated_capacity.i.i1152 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i11451157, i64 0, i32 2, i32 0
%759 = load i64, i64* %_M_allocated_capacity.i.i1152, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1153 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp247, i64 0, i32 2, i32 0
store i64 %759, i64* %_M_allocated_capacity.i.i.i1153, align 8, !tbaa !25, !alias.scope !130
br label %invoke.cont250
invoke.cont250: ; preds = %if.else.i.i1154, %if.then.i.i1150
%_M_string_length.i31.i.i1155 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i11451157, i64 0, i32 1
%760 = load i64, i64* %_M_string_length.i31.i.i1155, align 8, !tbaa !28
%_M_string_length.i.i2.i1156 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp247, i64 0, i32 1
store i64 %760, i64* %_M_string_length.i.i2.i1156, align 8, !tbaa !28, !alias.scope !130
%761 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i11451157 to %union.anon**
store %union.anon* %758, %union.anon** %761, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1155, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1147, align 1, !tbaa !25
%ref.tmp247.idx = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp247, i64 0, i32 0, i32 0
%ref.tmp247.idx.val = load i8*, i8** %ref.tmp247.idx, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* %ref.tmp247.idx.val)
to label %invoke.cont252 unwind label %lpad251
invoke.cont252: ; preds = %invoke.cont250
%762 = load i8*, i8** %ref.tmp247.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i1160 = bitcast %union.anon* %755 to i8*
%cmp.i.i.i1161 = icmp eq i8* %762, %arraydecay.i.i.i.i1160
br i1 %cmp.i.i.i1161, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1164, label %if.then.i.i1162
if.then.i.i1162: ; preds = %invoke.cont252
call void @_ZdlPv(i8* %762) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1164
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1164: ; preds = %invoke.cont252, %if.then.i.i1162
%763 = load i8*, i8** %_M_p.i.i.i.i.i.i1125, align 8, !tbaa !2
%arraydecay.i.i.i.i1166 = bitcast %union.anon* %738 to i8*
%cmp.i.i.i1167 = icmp eq i8* %763, %arraydecay.i.i.i.i1166
br i1 %cmp.i.i.i1167, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1170, label %if.then.i.i1168
if.then.i.i1168: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1164
call void @_ZdlPv(i8* %763) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1170
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1170: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1164, %if.then.i.i1168
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %737) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %736) #21
%764 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp257 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %764) #21
%765 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp257, i64 0, i32 2
%766 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp257 to %union.anon**
store %union.anon* %765, %union.anon** %766, align 8, !tbaa !33, !alias.scope !133
%767 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !133
%768 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !133
%769 = bitcast i64* %__dnew.i.i.i.i.i1171 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %769) #21, !noalias !133
store i64 %768, i64* %__dnew.i.i.i.i.i1171, align 8, !tbaa !54, !noalias !133
%cmp3.i.i.i.i.i1172 = icmp ugt i64 %768, 15
br i1 %cmp3.i.i.i.i.i1172, label %if.then4.i.i.i.i.i1177, label %if.end.if.end6_crit_edge.i.i.i.i.i1173
if.end.if.end6_crit_edge.i.i.i.i.i1173: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1170
%770 = bitcast %union.anon* %765 to i8*
br label %if.end6.i.i.i.i.i1179
if.then4.i.i.i.i.i1177: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1170
%call5.i.i.i14.i.i1174 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp257, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1171, i64 0)
%_M_p.i18.i.i.i.i.i1175 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp257, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1174, i8** %_M_p.i18.i.i.i.i.i1175, align 8, !tbaa !2, !alias.scope !133
%771 = load i64, i64* %__dnew.i.i.i.i.i1171, align 8, !tbaa !54, !noalias !133
%_M_allocated_capacity.i.i.i.i.i.i1176 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp257, i64 0, i32 2, i32 0
store i64 %771, i64* %_M_allocated_capacity.i.i.i.i.i.i1176, align 8, !tbaa !25, !alias.scope !133
br label %if.end6.i.i.i.i.i1179
if.end6.i.i.i.i.i1179: ; preds = %if.then4.i.i.i.i.i1177, %if.end.if.end6_crit_edge.i.i.i.i.i1173
%772 = phi i8* [ %770, %if.end.if.end6_crit_edge.i.i.i.i.i1173 ], [ %call5.i.i.i14.i.i1174, %if.then4.i.i.i.i.i1177 ]
%_M_p.i.i.i.i.i.i1178 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp257, i64 0, i32 0, i32 0
switch i64 %768, label %if.end.i.i.i.i.i.i.i.i1181 [
i64 1, label %if.then.i.i.i.i.i.i.i1180
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1187
]
if.then.i.i.i.i.i.i.i1180: ; preds = %if.end6.i.i.i.i.i1179
%773 = load i8, i8* %767, align 1, !tbaa !25
store i8 %773, i8* %772, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1187
if.end.i.i.i.i.i.i.i.i1181: ; preds = %if.end6.i.i.i.i.i1179
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %772, i8* align 1 %767, i64 %768, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1187
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1187: ; preds = %if.end.i.i.i.i.i.i.i.i1181, %if.then.i.i.i.i.i.i.i1180, %if.end6.i.i.i.i.i1179
%774 = load i64, i64* %__dnew.i.i.i.i.i1171, align 8, !tbaa !54, !noalias !133
%_M_string_length.i.i.i.i.i.i.i1182 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp257, i64 0, i32 1
store i64 %774, i64* %_M_string_length.i.i.i.i.i.i.i1182, align 8, !tbaa !28, !alias.scope !133
%775 = load i8*, i8** %_M_p.i.i.i.i.i.i1178, align 8, !tbaa !2, !alias.scope !133
%arrayidx.i.i.i.i.i.i1183 = getelementptr inbounds i8, i8* %775, i64 %774
store i8 0, i8* %arrayidx.i.i.i.i.i.i1183, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %769) #21, !noalias !133
%776 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1182, align 8, !tbaa !28, !alias.scope !133
%sub3.i.i.i1185 = sub i64 4611686018427387903, %776
%cmp.i.i.i1186 = icmp ult i64 %sub3.i.i.i1185, 3
br i1 %cmp.i.i.i1186, label %if.then.i.i.i1188, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1191
if.then.i.i.i1188: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1187
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1189 unwind label %lpad.i1194
.noexc.i1189: ; preds = %if.then.i.i.i1188
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1191: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1187
%call2.i2.i1190 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp257, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0), i64 3)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1197 unwind label %lpad.i1194
lpad.i1194: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1191, %if.then.i.i.i1188
%777 = landingpad { i8*, i32 }
cleanup
%778 = load i8*, i8** %_M_p.i.i.i.i.i.i1178, align 8, !tbaa !2, !alias.scope !133
%arraydecay.i.i.i.i.i1192 = bitcast %union.anon* %765 to i8*
%cmp.i.i.i.i1193 = icmp eq i8* %778, %arraydecay.i.i.i.i.i1192
br i1 %cmp.i.i.i.i1193, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1196, label %if.then.i.i3.i1195
if.then.i.i3.i1195: ; preds = %lpad.i1194
call void @_ZdlPv(i8* %778) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1196
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1196: ; preds = %if.then.i.i3.i1195, %lpad.i1194
resume { i8*, i32 } %777
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1197: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1191
%ref.tmp257.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i1178, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp257.idx.val)
to label %invoke.cont259 unwind label %lpad258
invoke.cont259: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1197
%779 = load i8*, i8** %_M_p.i.i.i.i.i.i1178, align 8, !tbaa !2
%arraydecay.i.i.i.i1199 = bitcast %union.anon* %765 to i8*
%cmp.i.i.i1200 = icmp eq i8* %779, %arraydecay.i.i.i.i1199
br i1 %cmp.i.i.i1200, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1203, label %if.then.i.i1201
if.then.i.i1201: ; preds = %invoke.cont259
call void @_ZdlPv(i8* %779) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1203
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1203: ; preds = %invoke.cont259, %if.then.i.i1201
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %764) #21
%780 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 4), align 2, !tbaa !39, !range !18
%tobool262 = icmp eq i8 %780, 0
br i1 %tobool262, label %if.then263, label %if.end338
if.then263: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1203
%781 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp264 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %781) #21
%782 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp264, i64 0, i32 2
%783 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp264 to %union.anon**
store %union.anon* %782, %union.anon** %783, align 8, !tbaa !33, !alias.scope !136
%784 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !136
%785 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !136
%786 = bitcast i64* %__dnew.i.i.i.i.i1204 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %786) #21, !noalias !136
store i64 %785, i64* %__dnew.i.i.i.i.i1204, align 8, !tbaa !54, !noalias !136
%cmp3.i.i.i.i.i1205 = icmp ugt i64 %785, 15
br i1 %cmp3.i.i.i.i.i1205, label %if.then4.i.i.i.i.i1210, label %if.end.if.end6_crit_edge.i.i.i.i.i1206
if.end.if.end6_crit_edge.i.i.i.i.i1206: ; preds = %if.then263
%787 = bitcast %union.anon* %782 to i8*
br label %if.end6.i.i.i.i.i1212
if.then4.i.i.i.i.i1210: ; preds = %if.then263
%call5.i.i.i14.i.i1207 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp264, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1204, i64 0)
%_M_p.i18.i.i.i.i.i1208 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp264, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1207, i8** %_M_p.i18.i.i.i.i.i1208, align 8, !tbaa !2, !alias.scope !136
%788 = load i64, i64* %__dnew.i.i.i.i.i1204, align 8, !tbaa !54, !noalias !136
%_M_allocated_capacity.i.i.i.i.i.i1209 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp264, i64 0, i32 2, i32 0
store i64 %788, i64* %_M_allocated_capacity.i.i.i.i.i.i1209, align 8, !tbaa !25, !alias.scope !136
br label %if.end6.i.i.i.i.i1212
if.end6.i.i.i.i.i1212: ; preds = %if.then4.i.i.i.i.i1210, %if.end.if.end6_crit_edge.i.i.i.i.i1206
%789 = phi i8* [ %787, %if.end.if.end6_crit_edge.i.i.i.i.i1206 ], [ %call5.i.i.i14.i.i1207, %if.then4.i.i.i.i.i1210 ]
%_M_p.i.i.i.i.i.i1211 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp264, i64 0, i32 0, i32 0
switch i64 %785, label %if.end.i.i.i.i.i.i.i.i1214 [
i64 1, label %if.then.i.i.i.i.i.i.i1213
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1220
]
if.then.i.i.i.i.i.i.i1213: ; preds = %if.end6.i.i.i.i.i1212
%790 = load i8, i8* %784, align 1, !tbaa !25
store i8 %790, i8* %789, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1220
if.end.i.i.i.i.i.i.i.i1214: ; preds = %if.end6.i.i.i.i.i1212
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %789, i8* align 1 %784, i64 %785, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1220
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1220: ; preds = %if.end.i.i.i.i.i.i.i.i1214, %if.then.i.i.i.i.i.i.i1213, %if.end6.i.i.i.i.i1212
%791 = load i64, i64* %__dnew.i.i.i.i.i1204, align 8, !tbaa !54, !noalias !136
%_M_string_length.i.i.i.i.i.i.i1215 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp264, i64 0, i32 1
store i64 %791, i64* %_M_string_length.i.i.i.i.i.i.i1215, align 8, !tbaa !28, !alias.scope !136
%792 = load i8*, i8** %_M_p.i.i.i.i.i.i1211, align 8, !tbaa !2, !alias.scope !136
%arrayidx.i.i.i.i.i.i1216 = getelementptr inbounds i8, i8* %792, i64 %791
store i8 0, i8* %arrayidx.i.i.i.i.i.i1216, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %786) #21, !noalias !136
%793 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1215, align 8, !tbaa !28, !alias.scope !136
%794 = or i64 %793, 7
%cmp.i.i.i1219 = icmp eq i64 %794, 4611686018427387903
br i1 %cmp.i.i.i1219, label %if.then.i.i.i1221, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1224
if.then.i.i.i1221: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1220
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1222 unwind label %lpad.i1227
.noexc.i1222: ; preds = %if.then.i.i.i1221
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1224: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1220
%call2.i2.i1223 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp264, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i64 0, i64 0), i64 8)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1230 unwind label %lpad.i1227
lpad.i1227: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1224, %if.then.i.i.i1221
%795 = landingpad { i8*, i32 }
cleanup
%796 = load i8*, i8** %_M_p.i.i.i.i.i.i1211, align 8, !tbaa !2, !alias.scope !136
%arraydecay.i.i.i.i.i1225 = bitcast %union.anon* %782 to i8*
%cmp.i.i.i.i1226 = icmp eq i8* %796, %arraydecay.i.i.i.i.i1225
br i1 %cmp.i.i.i.i1226, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1229, label %if.then.i.i3.i1228
if.then.i.i3.i1228: ; preds = %lpad.i1227
call void @_ZdlPv(i8* %796) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1229
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1229: ; preds = %if.then.i.i3.i1228, %lpad.i1227
resume { i8*, i32 } %795
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1230: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1224
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp264)
to label %invoke.cont266 unwind label %lpad265
invoke.cont266: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1230
%797 = load i8*, i8** %_M_p.i.i.i.i.i.i1211, align 8, !tbaa !2
%arraydecay.i.i.i.i1232 = bitcast %union.anon* %782 to i8*
%cmp.i.i.i1233 = icmp eq i8* %797, %arraydecay.i.i.i.i1232
br i1 %cmp.i.i.i1233, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1236, label %if.then.i.i1234
if.then.i.i1234: ; preds = %invoke.cont266
call void @_ZdlPv(i8* %797) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1236
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1236: ; preds = %invoke.cont266, %if.then.i.i1234
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %781) #21
%798 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp269 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %798) #21
%799 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp270 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %799) #21
%800 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp270, i64 0, i32 2
%801 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp270 to %union.anon**
store %union.anon* %800, %union.anon** %801, align 8, !tbaa !33, !alias.scope !139
%802 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !139
%803 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !139
%804 = bitcast i64* %__dnew.i.i.i.i.i1237 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %804) #21, !noalias !139
store i64 %803, i64* %__dnew.i.i.i.i.i1237, align 8, !tbaa !54, !noalias !139
%cmp3.i.i.i.i.i1238 = icmp ugt i64 %803, 15
br i1 %cmp3.i.i.i.i.i1238, label %if.then4.i.i.i.i.i1243, label %if.end.if.end6_crit_edge.i.i.i.i.i1239
if.end.if.end6_crit_edge.i.i.i.i.i1239: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1236
%805 = bitcast %union.anon* %800 to i8*
br label %if.end6.i.i.i.i.i1245
if.then4.i.i.i.i.i1243: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1236
%call5.i.i.i14.i.i1240 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp270, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1237, i64 0)
%_M_p.i18.i.i.i.i.i1241 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp270, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1240, i8** %_M_p.i18.i.i.i.i.i1241, align 8, !tbaa !2, !alias.scope !139
%806 = load i64, i64* %__dnew.i.i.i.i.i1237, align 8, !tbaa !54, !noalias !139
%_M_allocated_capacity.i.i.i.i.i.i1242 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp270, i64 0, i32 2, i32 0
store i64 %806, i64* %_M_allocated_capacity.i.i.i.i.i.i1242, align 8, !tbaa !25, !alias.scope !139
br label %if.end6.i.i.i.i.i1245
if.end6.i.i.i.i.i1245: ; preds = %if.then4.i.i.i.i.i1243, %if.end.if.end6_crit_edge.i.i.i.i.i1239
%807 = phi i8* [ %805, %if.end.if.end6_crit_edge.i.i.i.i.i1239 ], [ %call5.i.i.i14.i.i1240, %if.then4.i.i.i.i.i1243 ]
%_M_p.i.i.i.i.i.i1244 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp270, i64 0, i32 0, i32 0
switch i64 %803, label %if.end.i.i.i.i.i.i.i.i1247 [
i64 1, label %if.then.i.i.i.i.i.i.i1246
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1253
]
if.then.i.i.i.i.i.i.i1246: ; preds = %if.end6.i.i.i.i.i1245
%808 = load i8, i8* %802, align 1, !tbaa !25
store i8 %808, i8* %807, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1253
if.end.i.i.i.i.i.i.i.i1247: ; preds = %if.end6.i.i.i.i.i1245
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %807, i8* align 1 %802, i64 %803, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1253
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1253: ; preds = %if.end.i.i.i.i.i.i.i.i1247, %if.then.i.i.i.i.i.i.i1246, %if.end6.i.i.i.i.i1245
%809 = load i64, i64* %__dnew.i.i.i.i.i1237, align 8, !tbaa !54, !noalias !139
%_M_string_length.i.i.i.i.i.i.i1248 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp270, i64 0, i32 1
store i64 %809, i64* %_M_string_length.i.i.i.i.i.i.i1248, align 8, !tbaa !28, !alias.scope !139
%810 = load i8*, i8** %_M_p.i.i.i.i.i.i1244, align 8, !tbaa !2, !alias.scope !139
%arrayidx.i.i.i.i.i.i1249 = getelementptr inbounds i8, i8* %810, i64 %809
store i8 0, i8* %arrayidx.i.i.i.i.i.i1249, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %804) #21, !noalias !139
%811 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1248, align 8, !tbaa !28, !alias.scope !139
%sub3.i.i.i1251 = sub i64 4611686018427387903, %811
%cmp.i.i.i1252 = icmp ult i64 %sub3.i.i.i1251, 7
br i1 %cmp.i.i.i1252, label %if.then.i.i.i1254, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1257
if.then.i.i.i1254: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1253
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1255 unwind label %lpad.i1260
.noexc.i1255: ; preds = %if.then.i.i.i1254
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1257: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1253
%call2.i2.i1256 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp270, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0), i64 7)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1263 unwind label %lpad.i1260
lpad.i1260: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1257, %if.then.i.i.i1254
%812 = landingpad { i8*, i32 }
cleanup
%813 = load i8*, i8** %_M_p.i.i.i.i.i.i1244, align 8, !tbaa !2, !alias.scope !139
%arraydecay.i.i.i.i.i1258 = bitcast %union.anon* %800 to i8*
%cmp.i.i.i.i1259 = icmp eq i8* %813, %arraydecay.i.i.i.i.i1258
br i1 %cmp.i.i.i.i1259, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1262, label %if.then.i.i3.i1261
if.then.i.i3.i1261: ; preds = %lpad.i1260
call void @_ZdlPv(i8* %813) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1262
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1262: ; preds = %if.then.i.i3.i1261, %lpad.i1260
resume { i8*, i32 } %812
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1263: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1257
%814 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !142
%815 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !142
%call3.i.i12641276 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp270, i8* %814, i64 %815)
to label %call3.i.i1264.noexc unwind label %lpad271
call3.i.i1264.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1263
%816 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp269, i64 0, i32 2
%817 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp269 to %union.anon**
store %union.anon* %816, %union.anon** %817, align 8, !tbaa !33, !alias.scope !142
%_M_p.i.i34.i.i1265 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i12641276, i64 0, i32 0, i32 0
%818 = load i8*, i8** %_M_p.i.i34.i.i1265, align 8, !tbaa !2
%819 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i12641276, i64 0, i32 2
%arraydecay.i.i.i.i1266 = bitcast %union.anon* %819 to i8*
%cmp.i.i.i1267 = icmp eq i8* %818, %arraydecay.i.i.i.i1266
br i1 %cmp.i.i.i1267, label %if.then.i.i1269, label %if.else.i.i1273
if.then.i.i1269: ; preds = %call3.i.i1264.noexc
%arraydecay.i.i.i1268 = bitcast %union.anon* %816 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1268, i8* nonnull align 1 dereferenceable(16) %818, i64 16, i1 false) #21
br label %invoke.cont272
if.else.i.i1273: ; preds = %call3.i.i1264.noexc
%_M_p.i32.i.i1270 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp269, i64 0, i32 0, i32 0
store i8* %818, i8** %_M_p.i32.i.i1270, align 8, !tbaa !2, !alias.scope !142
%_M_allocated_capacity.i.i1271 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i12641276, i64 0, i32 2, i32 0
%820 = load i64, i64* %_M_allocated_capacity.i.i1271, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1272 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp269, i64 0, i32 2, i32 0
store i64 %820, i64* %_M_allocated_capacity.i.i.i1272, align 8, !tbaa !25, !alias.scope !142
br label %invoke.cont272
invoke.cont272: ; preds = %if.else.i.i1273, %if.then.i.i1269
%_M_string_length.i31.i.i1274 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i12641276, i64 0, i32 1
%821 = load i64, i64* %_M_string_length.i31.i.i1274, align 8, !tbaa !28
%_M_string_length.i.i2.i1275 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp269, i64 0, i32 1
store i64 %821, i64* %_M_string_length.i.i2.i1275, align 8, !tbaa !28, !alias.scope !142
%822 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i12641276 to %union.anon**
store %union.anon* %819, %union.anon** %822, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1274, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1266, align 1, !tbaa !25
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_ccfile_printer, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp269)
to label %invoke.cont274 unwind label %lpad273
invoke.cont274: ; preds = %invoke.cont272
%_M_p.i.i.i.i1278 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp269, i64 0, i32 0, i32 0
%823 = load i8*, i8** %_M_p.i.i.i.i1278, align 8, !tbaa !2
%arraydecay.i.i.i.i1279 = bitcast %union.anon* %816 to i8*
%cmp.i.i.i1280 = icmp eq i8* %823, %arraydecay.i.i.i.i1279
br i1 %cmp.i.i.i1280, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1283, label %if.then.i.i1281
if.then.i.i1281: ; preds = %invoke.cont274
call void @_ZdlPv(i8* %823) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1283
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1283: ; preds = %invoke.cont274, %if.then.i.i1281
%824 = load i8*, i8** %_M_p.i.i.i.i.i.i1244, align 8, !tbaa !2
%arraydecay.i.i.i.i1285 = bitcast %union.anon* %800 to i8*
%cmp.i.i.i1286 = icmp eq i8* %824, %arraydecay.i.i.i.i1285
br i1 %cmp.i.i.i1286, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1289, label %if.then.i.i1287
if.then.i.i1287: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1283
call void @_ZdlPv(i8* %824) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1289
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1289: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1283, %if.then.i.i1287
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %799) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %798) #21
%825 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool279 = icmp eq i8 %825, 0
br i1 %tobool279, label %if.end294, label %if.then280
if.then280: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1289
%826 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp281 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %826) #21
%827 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp282 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %827) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp282, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%_M_string_length.i.i.i.i1291 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp282, i64 0, i32 1
%828 = load i64, i64* %_M_string_length.i.i.i.i1291, align 8, !tbaa !28, !noalias !145
%sub3.i.i.i1292 = sub i64 4611686018427387903, %828
%cmp.i.i.i1293 = icmp ult i64 %sub3.i.i.i1292, 6
br i1 %cmp.i.i.i1293, label %if.then.i.i.i1294, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1299
if.then.i.i.i1294: ; preds = %if.then280
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc1308 unwind label %lpad283
.noexc1308: ; preds = %if.then.i.i.i1294
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1299: ; preds = %if.then280
%call2.i.i12951309 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp282, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.23, i64 0, i64 0), i64 6)
to label %call2.i.i1295.noexc unwind label %lpad283
call2.i.i1295.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1299
%829 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp281, i64 0, i32 2
%830 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp281 to %union.anon**
store %union.anon* %829, %union.anon** %830, align 8, !tbaa !33, !alias.scope !145
%_M_p.i.i34.i.i1296 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i12951309, i64 0, i32 0, i32 0
%831 = load i8*, i8** %_M_p.i.i34.i.i1296, align 8, !tbaa !2
%832 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i12951309, i64 0, i32 2
%arraydecay.i.i.i.i1297 = bitcast %union.anon* %832 to i8*
%cmp.i.i2.i1298 = icmp eq i8* %831, %arraydecay.i.i.i.i1297
br i1 %cmp.i.i2.i1298, label %if.then.i.i1301, label %if.else.i.i1305
if.then.i.i1301: ; preds = %call2.i.i1295.noexc
%arraydecay.i.i.i1300 = bitcast %union.anon* %829 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1300, i8* nonnull align 1 dereferenceable(16) %831, i64 16, i1 false) #21
br label %invoke.cont284
if.else.i.i1305: ; preds = %call2.i.i1295.noexc
%_M_p.i32.i.i1302 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp281, i64 0, i32 0, i32 0
store i8* %831, i8** %_M_p.i32.i.i1302, align 8, !tbaa !2, !alias.scope !145
%_M_allocated_capacity.i.i1303 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i12951309, i64 0, i32 2, i32 0
%833 = load i64, i64* %_M_allocated_capacity.i.i1303, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1304 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp281, i64 0, i32 2, i32 0
store i64 %833, i64* %_M_allocated_capacity.i.i.i1304, align 8, !tbaa !25, !alias.scope !145
br label %invoke.cont284
invoke.cont284: ; preds = %if.else.i.i1305, %if.then.i.i1301
%_M_string_length.i31.i.i1306 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i12951309, i64 0, i32 1
%834 = load i64, i64* %_M_string_length.i31.i.i1306, align 8, !tbaa !28
%_M_string_length.i.i.i1307 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp281, i64 0, i32 1
store i64 %834, i64* %_M_string_length.i.i.i1307, align 8, !tbaa !28, !alias.scope !145
%835 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i12951309 to %union.anon**
store %union.anon* %832, %union.anon** %835, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1306, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1297, align 1, !tbaa !25
%_M_p.i.i.i1311 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp281, i64 0, i32 0, i32 0
%836 = load i8*, i8** %_M_p.i.i.i1311, align 8, !tbaa !2
%837 = load i64, i64* %_M_string_length.i.i.i1307, align 8, !tbaa !28
%call2.i13131314 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %836, i64 %837)
to label %invoke.cont286 unwind label %lpad285
invoke.cont286: ; preds = %invoke.cont284
%call.i13191320 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i13131314)
to label %invoke.cont288 unwind label %lpad285
invoke.cont288: ; preds = %invoke.cont286
%838 = load i8*, i8** %_M_p.i.i.i1311, align 8, !tbaa !2
%arraydecay.i.i.i.i1323 = bitcast %union.anon* %829 to i8*
%cmp.i.i.i1324 = icmp eq i8* %838, %arraydecay.i.i.i.i1323
br i1 %cmp.i.i.i1324, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1327, label %if.then.i.i1325
if.then.i.i1325: ; preds = %invoke.cont288
call void @_ZdlPv(i8* %838) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1327
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1327: ; preds = %invoke.cont288, %if.then.i.i1325
%_M_p.i.i.i.i1328 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp282, i64 0, i32 0, i32 0
%839 = load i8*, i8** %_M_p.i.i.i.i1328, align 8, !tbaa !2
%840 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp282, i64 0, i32 2
%arraydecay.i.i.i.i1329 = bitcast %union.anon* %840 to i8*
%cmp.i.i.i1330 = icmp eq i8* %839, %arraydecay.i.i.i.i1329
br i1 %cmp.i.i.i1330, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1333, label %if.then.i.i1331
if.then.i.i1331: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1327
call void @_ZdlPv(i8* %839) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1333
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1333: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1327, %if.then.i.i1331
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %827) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %826) #21
br label %if.end294
lpad249: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1144
%841 = landingpad { i8*, i32 }
cleanup
%842 = extractvalue { i8*, i32 } %841, 0
%843 = extractvalue { i8*, i32 } %841, 1
br label %ehcleanup254
lpad251: ; preds = %invoke.cont250
%844 = landingpad { i8*, i32 }
cleanup
%845 = extractvalue { i8*, i32 } %844, 0
%846 = extractvalue { i8*, i32 } %844, 1
%847 = load i8*, i8** %ref.tmp247.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i1335 = bitcast %union.anon* %755 to i8*
%cmp.i.i.i1336 = icmp eq i8* %847, %arraydecay.i.i.i.i1335
br i1 %cmp.i.i.i1336, label %ehcleanup254, label %if.then.i.i1337
if.then.i.i1337: ; preds = %lpad251
call void @_ZdlPv(i8* %847) #21
br label %ehcleanup254
ehcleanup254: ; preds = %if.then.i.i1337, %lpad251, %lpad249
%exn.slot.2 = phi i8* [ %842, %lpad249 ], [ %845, %lpad251 ], [ %845, %if.then.i.i1337 ]
%ehselector.slot.2 = phi i32 [ %843, %lpad249 ], [ %846, %lpad251 ], [ %846, %if.then.i.i1337 ]
%848 = load i8*, i8** %_M_p.i.i.i.i.i.i1125, align 8, !tbaa !2
%arraydecay.i.i.i.i1341 = bitcast %union.anon* %738 to i8*
%cmp.i.i.i1342 = icmp eq i8* %848, %arraydecay.i.i.i.i1341
br i1 %cmp.i.i.i1342, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1345, label %if.then.i.i1343
if.then.i.i1343: ; preds = %ehcleanup254
call void @_ZdlPv(i8* %848) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1345
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1345: ; preds = %ehcleanup254, %if.then.i.i1343
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %737) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %736) #21
br label %ehcleanup675
lpad258: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1197
%849 = landingpad { i8*, i32 }
cleanup
%850 = extractvalue { i8*, i32 } %849, 0
%851 = extractvalue { i8*, i32 } %849, 1
%852 = load i8*, i8** %_M_p.i.i.i.i.i.i1178, align 8, !tbaa !2
%arraydecay.i.i.i.i1347 = bitcast %union.anon* %765 to i8*
%cmp.i.i.i1348 = icmp eq i8* %852, %arraydecay.i.i.i.i1347
br i1 %cmp.i.i.i1348, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1351, label %if.then.i.i1349
if.then.i.i1349: ; preds = %lpad258
call void @_ZdlPv(i8* %852) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1351
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1351: ; preds = %lpad258, %if.then.i.i1349
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %764) #21
br label %ehcleanup675
lpad265: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1230
%853 = landingpad { i8*, i32 }
cleanup
%854 = extractvalue { i8*, i32 } %853, 0
%855 = extractvalue { i8*, i32 } %853, 1
%856 = load i8*, i8** %_M_p.i.i.i.i.i.i1211, align 8, !tbaa !2
%arraydecay.i.i.i.i1353 = bitcast %union.anon* %782 to i8*
%cmp.i.i.i1354 = icmp eq i8* %856, %arraydecay.i.i.i.i1353
br i1 %cmp.i.i.i1354, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1357, label %if.then.i.i1355
if.then.i.i1355: ; preds = %lpad265
call void @_ZdlPv(i8* %856) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1357
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1357: ; preds = %lpad265, %if.then.i.i1355
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %781) #21
br label %ehcleanup675
lpad271: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1263
%857 = landingpad { i8*, i32 }
cleanup
%858 = extractvalue { i8*, i32 } %857, 0
%859 = extractvalue { i8*, i32 } %857, 1
br label %ehcleanup276
lpad273: ; preds = %invoke.cont272
%860 = landingpad { i8*, i32 }
cleanup
%861 = extractvalue { i8*, i32 } %860, 0
%862 = extractvalue { i8*, i32 } %860, 1
%_M_p.i.i.i.i1358 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp269, i64 0, i32 0, i32 0
%863 = load i8*, i8** %_M_p.i.i.i.i1358, align 8, !tbaa !2
%arraydecay.i.i.i.i1359 = bitcast %union.anon* %816 to i8*
%cmp.i.i.i1360 = icmp eq i8* %863, %arraydecay.i.i.i.i1359
br i1 %cmp.i.i.i1360, label %ehcleanup276, label %if.then.i.i1361
if.then.i.i1361: ; preds = %lpad273
call void @_ZdlPv(i8* %863) #21
br label %ehcleanup276
ehcleanup276: ; preds = %if.then.i.i1361, %lpad273, %lpad271
%exn.slot.3 = phi i8* [ %858, %lpad271 ], [ %861, %lpad273 ], [ %861, %if.then.i.i1361 ]
%ehselector.slot.3 = phi i32 [ %859, %lpad271 ], [ %862, %lpad273 ], [ %862, %if.then.i.i1361 ]
%864 = load i8*, i8** %_M_p.i.i.i.i.i.i1244, align 8, !tbaa !2
%arraydecay.i.i.i.i1365 = bitcast %union.anon* %800 to i8*
%cmp.i.i.i1366 = icmp eq i8* %864, %arraydecay.i.i.i.i1365
br i1 %cmp.i.i.i1366, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1369, label %if.then.i.i1367
if.then.i.i1367: ; preds = %ehcleanup276
call void @_ZdlPv(i8* %864) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1369
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1369: ; preds = %ehcleanup276, %if.then.i.i1367
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %799) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %798) #21
br label %ehcleanup675
lpad283: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1299, %if.then.i.i.i1294
%865 = landingpad { i8*, i32 }
cleanup
%866 = extractvalue { i8*, i32 } %865, 0
%867 = extractvalue { i8*, i32 } %865, 1
br label %ehcleanup291
lpad285: ; preds = %invoke.cont286, %invoke.cont284
%868 = landingpad { i8*, i32 }
cleanup
%869 = extractvalue { i8*, i32 } %868, 0
%870 = extractvalue { i8*, i32 } %868, 1
%871 = load i8*, i8** %_M_p.i.i.i1311, align 8, !tbaa !2
%arraydecay.i.i.i.i1371 = bitcast %union.anon* %829 to i8*
%cmp.i.i.i1372 = icmp eq i8* %871, %arraydecay.i.i.i.i1371
br i1 %cmp.i.i.i1372, label %ehcleanup291, label %if.then.i.i1373
if.then.i.i1373: ; preds = %lpad285
call void @_ZdlPv(i8* %871) #21
br label %ehcleanup291
ehcleanup291: ; preds = %if.then.i.i1373, %lpad285, %lpad283
%exn.slot.4 = phi i8* [ %866, %lpad283 ], [ %869, %lpad285 ], [ %869, %if.then.i.i1373 ]
%ehselector.slot.4 = phi i32 [ %867, %lpad283 ], [ %870, %lpad285 ], [ %870, %if.then.i.i1373 ]
%_M_p.i.i.i.i1376 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp282, i64 0, i32 0, i32 0
%872 = load i8*, i8** %_M_p.i.i.i.i1376, align 8, !tbaa !2
%873 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp282, i64 0, i32 2
%arraydecay.i.i.i.i1377 = bitcast %union.anon* %873 to i8*
%cmp.i.i.i1378 = icmp eq i8* %872, %arraydecay.i.i.i.i1377
br i1 %cmp.i.i.i1378, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1381, label %if.then.i.i1379
if.then.i.i1379: ; preds = %ehcleanup291
call void @_ZdlPv(i8* %872) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1381
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1381: ; preds = %ehcleanup291, %if.then.i.i1379
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %827) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %826) #21
br label %ehcleanup675
if.end294: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1289, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1333
%vtable.i1382 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1383 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1382, i64 9
%874 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1383, align 8
call void %874(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_csgio_start_h_class", %"struct.kc::view_gen_csgio_start_h_class"* @_ZN2kc22view_gen_csgio_start_hE, i64 0, i32 0))
%call295 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0), i32 -1)
%call296 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call295)
%call298 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.24, i64 0, i64 0), i32 -1)
%call299 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call298)
%inc_type300 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call299, i64 0, i32 0, i32 1
%875 = load i32, i32* %inc_type300, align 8, !tbaa !85
%cmp.i1384 = icmp eq i32 %875, 0
%inc1.i1385 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call296, i64 0, i32 0, i32 2, i32 0
%inc2.i1386 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call296, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i1387 = select i1 %cmp.i1384, %"class.kc::impl_includedeclarations"** %inc1.i1385, %"class.kc::impl_includedeclarations"** %inc2.i1386
%876 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i1387 to %"class.kc::impl_abstract_phylum"**
%877 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %876, align 8, !tbaa !9
%878 = bitcast %"class.kc::impl_abstract_phylum"* %877 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1388 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %878, align 8, !tbaa !19
%vfn.i1389 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1388, i64 9
%879 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1389, align 8
call void %879(%"class.kc::impl_abstract_phylum"* %877, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i1390 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1391 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1390, i64 9
%880 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1391, align 8
call void %880(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i1392 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1393 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1392, i64 9
%881 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1393, align 8
call void %881(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_csgio_h_class", %"struct.kc::view_gen_csgio_h_class"* @_ZN2kc16view_gen_csgio_hE, i64 0, i32 0))
%vtable.i1394 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1395 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1394, i64 9
%882 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1395, align 8
call void %882(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%vtable.i1396 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1397 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1396, i64 9
%883 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1397, align 8
call void %883(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_csgio_end_h_class", %"struct.kc::view_gen_csgio_end_h_class"* @_ZN2kc20view_gen_csgio_end_hE, i64 0, i32 0))
%vtable.i1398 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1399 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1398, i64 9
%884 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1399, align 8
call void %884(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_csgio_start_c_class", %"struct.kc::view_gen_csgio_start_c_class"* @_ZN2kc22view_gen_csgio_start_cE, i64 0, i32 0))
%call302 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i64 0, i64 0), i32 -1)
%call303 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call302)
%call305 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i64 0, i64 0), i32 -1)
%call306 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call305)
%inc_type307 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call306, i64 0, i32 0, i32 1
%885 = load i32, i32* %inc_type307, align 8, !tbaa !85
%cmp.i1400 = icmp eq i32 %885, 0
%inc1.i1401 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call303, i64 0, i32 0, i32 2, i32 0
%inc2.i1402 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call303, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i1403 = select i1 %cmp.i1400, %"class.kc::impl_includedeclarations"** %inc1.i1401, %"class.kc::impl_includedeclarations"** %inc2.i1402
%886 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i1403 to %"class.kc::impl_abstract_phylum"**
%887 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %886, align 8, !tbaa !9
%888 = bitcast %"class.kc::impl_abstract_phylum"* %887 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1404 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %888, align 8, !tbaa !19
%vfn.i1405 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1404, i64 9
%889 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1405, align 8
call void %889(%"class.kc::impl_abstract_phylum"* %887, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i1406 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1407 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1406, i64 9
%890 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1407, align 8
call void %890(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i1408 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1409 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1408, i64 9
%891 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1409, align 8
call void %891(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_csgio_c_class", %"struct.kc::view_gen_csgio_c_class"* @_ZN2kc16view_gen_csgio_cE, i64 0, i32 0))
%vtable.i1410 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1411 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1410, i64 9
%892 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1411, align 8
call void %892(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%893 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i1412 = icmp eq %struct._IO_FILE* %893, null
br i1 %tobool.i1412, label %_ZN14kc_filePrinter6fcloseEv.exit1417.thread, label %_ZN14kc_filePrinter6fcloseEv.exit1417
_ZN14kc_filePrinter6fcloseEv.exit1417.thread: ; preds = %if.end294
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end315
_ZN14kc_filePrinter6fcloseEv.exit1417: ; preds = %if.end294
%call.i1413 = call i32 @fclose(%struct._IO_FILE* nonnull %893)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp310 = icmp eq i32 %call.i1413, -1
br i1 %cmp310, label %if.then311, label %if.end315
if.then311: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1417
%call312 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%894 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call312 to %"class.kc::impl_fileline"*
%call313 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.26, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call314 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %894, %"class.kc::impl_problem"* %call313)
%895 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call314, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %895)
br label %if.end315
if.end315: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1417.thread, %if.then311, %_ZN14kc_filePrinter6fcloseEv.exit1417
%896 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i1418 = icmp eq %struct._IO_FILE* %896, null
br i1 %tobool.i1418, label %_ZN14kc_filePrinter6fcloseEv.exit1423.thread, label %_ZN14kc_filePrinter6fcloseEv.exit1423
_ZN14kc_filePrinter6fcloseEv.exit1423.thread: ; preds = %if.end315
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end322
_ZN14kc_filePrinter6fcloseEv.exit1423: ; preds = %if.end315
%call.i1419 = call i32 @fclose(%struct._IO_FILE* nonnull %896)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp317 = icmp eq i32 %call.i1419, -1
br i1 %cmp317, label %if.then318, label %if.end322
if.then318: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1423
%call319 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%897 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call319 to %"class.kc::impl_fileline"*
%call320 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.27, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call321 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %897, %"class.kc::impl_problem"* %call320)
%898 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call321, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %898)
br label %if.end322
if.end322: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1423.thread, %if.then318, %_ZN14kc_filePrinter6fcloseEv.exit1423
%899 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp323 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %899) #21
%900 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp324 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %900) #21
%901 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp324, i64 0, i32 2
%902 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp324 to %union.anon**
store %union.anon* %901, %union.anon** %902, align 8, !tbaa !33, !alias.scope !148
%903 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !148
%904 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !148
%905 = bitcast i64* %__dnew.i.i.i.i.i1424 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %905) #21, !noalias !148
store i64 %904, i64* %__dnew.i.i.i.i.i1424, align 8, !tbaa !54, !noalias !148
%cmp3.i.i.i.i.i1425 = icmp ugt i64 %904, 15
br i1 %cmp3.i.i.i.i.i1425, label %if.then4.i.i.i.i.i1430, label %if.end.if.end6_crit_edge.i.i.i.i.i1426
if.end.if.end6_crit_edge.i.i.i.i.i1426: ; preds = %if.end322
%906 = bitcast %union.anon* %901 to i8*
br label %if.end6.i.i.i.i.i1432
if.then4.i.i.i.i.i1430: ; preds = %if.end322
%call5.i.i.i14.i.i1427 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp324, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1424, i64 0)
%_M_p.i18.i.i.i.i.i1428 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp324, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1427, i8** %_M_p.i18.i.i.i.i.i1428, align 8, !tbaa !2, !alias.scope !148
%907 = load i64, i64* %__dnew.i.i.i.i.i1424, align 8, !tbaa !54, !noalias !148
%_M_allocated_capacity.i.i.i.i.i.i1429 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp324, i64 0, i32 2, i32 0
store i64 %907, i64* %_M_allocated_capacity.i.i.i.i.i.i1429, align 8, !tbaa !25, !alias.scope !148
br label %if.end6.i.i.i.i.i1432
if.end6.i.i.i.i.i1432: ; preds = %if.then4.i.i.i.i.i1430, %if.end.if.end6_crit_edge.i.i.i.i.i1426
%908 = phi i8* [ %906, %if.end.if.end6_crit_edge.i.i.i.i.i1426 ], [ %call5.i.i.i14.i.i1427, %if.then4.i.i.i.i.i1430 ]
%_M_p.i.i.i.i.i.i1431 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp324, i64 0, i32 0, i32 0
switch i64 %904, label %if.end.i.i.i.i.i.i.i.i1434 [
i64 1, label %if.then.i.i.i.i.i.i.i1433
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1440
]
if.then.i.i.i.i.i.i.i1433: ; preds = %if.end6.i.i.i.i.i1432
%909 = load i8, i8* %903, align 1, !tbaa !25
store i8 %909, i8* %908, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1440
if.end.i.i.i.i.i.i.i.i1434: ; preds = %if.end6.i.i.i.i.i1432
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %908, i8* align 1 %903, i64 %904, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1440
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1440: ; preds = %if.end.i.i.i.i.i.i.i.i1434, %if.then.i.i.i.i.i.i.i1433, %if.end6.i.i.i.i.i1432
%910 = load i64, i64* %__dnew.i.i.i.i.i1424, align 8, !tbaa !54, !noalias !148
%_M_string_length.i.i.i.i.i.i.i1435 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp324, i64 0, i32 1
store i64 %910, i64* %_M_string_length.i.i.i.i.i.i.i1435, align 8, !tbaa !28, !alias.scope !148
%911 = load i8*, i8** %_M_p.i.i.i.i.i.i1431, align 8, !tbaa !2, !alias.scope !148
%arrayidx.i.i.i.i.i.i1436 = getelementptr inbounds i8, i8* %911, i64 %910
store i8 0, i8* %arrayidx.i.i.i.i.i.i1436, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %905) #21, !noalias !148
%912 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1435, align 8, !tbaa !28, !alias.scope !148
%sub3.i.i.i1438 = sub i64 4611686018427387903, %912
%cmp.i.i.i1439 = icmp ult i64 %sub3.i.i.i1438, 7
br i1 %cmp.i.i.i1439, label %if.then.i.i.i1441, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1444
if.then.i.i.i1441: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1440
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1442 unwind label %lpad.i1447
.noexc.i1442: ; preds = %if.then.i.i.i1441
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1444: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1440
%call2.i2.i1443 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp324, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0), i64 7)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1450 unwind label %lpad.i1447
lpad.i1447: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1444, %if.then.i.i.i1441
%913 = landingpad { i8*, i32 }
cleanup
%914 = load i8*, i8** %_M_p.i.i.i.i.i.i1431, align 8, !tbaa !2, !alias.scope !148
%arraydecay.i.i.i.i.i1445 = bitcast %union.anon* %901 to i8*
%cmp.i.i.i.i1446 = icmp eq i8* %914, %arraydecay.i.i.i.i.i1445
br i1 %cmp.i.i.i.i1446, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1449, label %if.then.i.i3.i1448
if.then.i.i3.i1448: ; preds = %lpad.i1447
call void @_ZdlPv(i8* %914) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1449
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1449: ; preds = %if.then.i.i3.i1448, %lpad.i1447
resume { i8*, i32 } %913
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1450: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1444
%915 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !151
%916 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !151
%call3.i.i14511463 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp324, i8* %915, i64 %916)
to label %call3.i.i1451.noexc unwind label %lpad325
call3.i.i1451.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1450
%917 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp323, i64 0, i32 2
%918 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp323 to %union.anon**
store %union.anon* %917, %union.anon** %918, align 8, !tbaa !33, !alias.scope !151
%_M_p.i.i34.i.i1452 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i14511463, i64 0, i32 0, i32 0
%919 = load i8*, i8** %_M_p.i.i34.i.i1452, align 8, !tbaa !2
%920 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i14511463, i64 0, i32 2
%arraydecay.i.i.i.i1453 = bitcast %union.anon* %920 to i8*
%cmp.i.i.i1454 = icmp eq i8* %919, %arraydecay.i.i.i.i1453
br i1 %cmp.i.i.i1454, label %if.then.i.i1456, label %if.else.i.i1460
if.then.i.i1456: ; preds = %call3.i.i1451.noexc
%arraydecay.i.i.i1455 = bitcast %union.anon* %917 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1455, i8* nonnull align 1 dereferenceable(16) %919, i64 16, i1 false) #21
br label %invoke.cont326
if.else.i.i1460: ; preds = %call3.i.i1451.noexc
%_M_p.i32.i.i1457 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp323, i64 0, i32 0, i32 0
store i8* %919, i8** %_M_p.i32.i.i1457, align 8, !tbaa !2, !alias.scope !151
%_M_allocated_capacity.i.i1458 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i14511463, i64 0, i32 2, i32 0
%921 = load i64, i64* %_M_allocated_capacity.i.i1458, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1459 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp323, i64 0, i32 2, i32 0
store i64 %921, i64* %_M_allocated_capacity.i.i.i1459, align 8, !tbaa !25, !alias.scope !151
br label %invoke.cont326
invoke.cont326: ; preds = %if.else.i.i1460, %if.then.i.i1456
%_M_string_length.i31.i.i1461 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i14511463, i64 0, i32 1
%922 = load i64, i64* %_M_string_length.i31.i.i1461, align 8, !tbaa !28
%_M_string_length.i.i2.i1462 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp323, i64 0, i32 1
store i64 %922, i64* %_M_string_length.i.i2.i1462, align 8, !tbaa !28, !alias.scope !151
%923 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i14511463 to %union.anon**
store %union.anon* %920, %union.anon** %923, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1461, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1453, align 1, !tbaa !25
%ref.tmp323.idx = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp323, i64 0, i32 0, i32 0
%ref.tmp323.idx.val = load i8*, i8** %ref.tmp323.idx, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* %ref.tmp323.idx.val)
to label %invoke.cont328 unwind label %lpad327
invoke.cont328: ; preds = %invoke.cont326
%924 = load i8*, i8** %ref.tmp323.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i1466 = bitcast %union.anon* %917 to i8*
%cmp.i.i.i1467 = icmp eq i8* %924, %arraydecay.i.i.i.i1466
br i1 %cmp.i.i.i1467, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1470, label %if.then.i.i1468
if.then.i.i1468: ; preds = %invoke.cont328
call void @_ZdlPv(i8* %924) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1470
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1470: ; preds = %invoke.cont328, %if.then.i.i1468
%925 = load i8*, i8** %_M_p.i.i.i.i.i.i1431, align 8, !tbaa !2
%arraydecay.i.i.i.i1472 = bitcast %union.anon* %901 to i8*
%cmp.i.i.i1473 = icmp eq i8* %925, %arraydecay.i.i.i.i1472
br i1 %cmp.i.i.i1473, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1476, label %if.then.i.i1474
if.then.i.i1474: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1470
call void @_ZdlPv(i8* %925) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1476
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1476: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1470, %if.then.i.i1474
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %900) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %899) #21
%926 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp333 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %926) #21
%927 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp333, i64 0, i32 2
%928 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp333 to %union.anon**
store %union.anon* %927, %union.anon** %928, align 8, !tbaa !33, !alias.scope !154
%929 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !154
%930 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !154
%931 = bitcast i64* %__dnew.i.i.i.i.i1477 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %931) #21, !noalias !154
store i64 %930, i64* %__dnew.i.i.i.i.i1477, align 8, !tbaa !54, !noalias !154
%cmp3.i.i.i.i.i1478 = icmp ugt i64 %930, 15
br i1 %cmp3.i.i.i.i.i1478, label %if.then4.i.i.i.i.i1483, label %if.end.if.end6_crit_edge.i.i.i.i.i1479
if.end.if.end6_crit_edge.i.i.i.i.i1479: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1476
%932 = bitcast %union.anon* %927 to i8*
br label %if.end6.i.i.i.i.i1485
if.then4.i.i.i.i.i1483: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1476
%call5.i.i.i14.i.i1480 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp333, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1477, i64 0)
%_M_p.i18.i.i.i.i.i1481 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp333, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1480, i8** %_M_p.i18.i.i.i.i.i1481, align 8, !tbaa !2, !alias.scope !154
%933 = load i64, i64* %__dnew.i.i.i.i.i1477, align 8, !tbaa !54, !noalias !154
%_M_allocated_capacity.i.i.i.i.i.i1482 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp333, i64 0, i32 2, i32 0
store i64 %933, i64* %_M_allocated_capacity.i.i.i.i.i.i1482, align 8, !tbaa !25, !alias.scope !154
br label %if.end6.i.i.i.i.i1485
if.end6.i.i.i.i.i1485: ; preds = %if.then4.i.i.i.i.i1483, %if.end.if.end6_crit_edge.i.i.i.i.i1479
%934 = phi i8* [ %932, %if.end.if.end6_crit_edge.i.i.i.i.i1479 ], [ %call5.i.i.i14.i.i1480, %if.then4.i.i.i.i.i1483 ]
%_M_p.i.i.i.i.i.i1484 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp333, i64 0, i32 0, i32 0
switch i64 %930, label %if.end.i.i.i.i.i.i.i.i1487 [
i64 1, label %if.then.i.i.i.i.i.i.i1486
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1493
]
if.then.i.i.i.i.i.i.i1486: ; preds = %if.end6.i.i.i.i.i1485
%935 = load i8, i8* %929, align 1, !tbaa !25
store i8 %935, i8* %934, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1493
if.end.i.i.i.i.i.i.i.i1487: ; preds = %if.end6.i.i.i.i.i1485
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %934, i8* align 1 %929, i64 %930, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1493
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1493: ; preds = %if.end.i.i.i.i.i.i.i.i1487, %if.then.i.i.i.i.i.i.i1486, %if.end6.i.i.i.i.i1485
%936 = load i64, i64* %__dnew.i.i.i.i.i1477, align 8, !tbaa !54, !noalias !154
%_M_string_length.i.i.i.i.i.i.i1488 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp333, i64 0, i32 1
store i64 %936, i64* %_M_string_length.i.i.i.i.i.i.i1488, align 8, !tbaa !28, !alias.scope !154
%937 = load i8*, i8** %_M_p.i.i.i.i.i.i1484, align 8, !tbaa !2, !alias.scope !154
%arrayidx.i.i.i.i.i.i1489 = getelementptr inbounds i8, i8* %937, i64 %936
store i8 0, i8* %arrayidx.i.i.i.i.i.i1489, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %931) #21, !noalias !154
%938 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1488, align 8, !tbaa !28, !alias.scope !154
%939 = or i64 %938, 7
%cmp.i.i.i1492 = icmp eq i64 %939, 4611686018427387903
br i1 %cmp.i.i.i1492, label %if.then.i.i.i1494, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1497
if.then.i.i.i1494: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1493
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1495 unwind label %lpad.i1500
.noexc.i1495: ; preds = %if.then.i.i.i1494
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1497: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1493
%call2.i2.i1496 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp333, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.21, i64 0, i64 0), i64 8)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1503 unwind label %lpad.i1500
lpad.i1500: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1497, %if.then.i.i.i1494
%940 = landingpad { i8*, i32 }
cleanup
%941 = load i8*, i8** %_M_p.i.i.i.i.i.i1484, align 8, !tbaa !2, !alias.scope !154
%arraydecay.i.i.i.i.i1498 = bitcast %union.anon* %927 to i8*
%cmp.i.i.i.i1499 = icmp eq i8* %941, %arraydecay.i.i.i.i.i1498
br i1 %cmp.i.i.i.i1499, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1502, label %if.then.i.i3.i1501
if.then.i.i3.i1501: ; preds = %lpad.i1500
call void @_ZdlPv(i8* %941) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1502
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1502: ; preds = %if.then.i.i3.i1501, %lpad.i1500
resume { i8*, i32 } %940
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1503: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1497
%ref.tmp333.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i1484, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp333.idx.val)
to label %invoke.cont335 unwind label %lpad334
invoke.cont335: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1503
%942 = load i8*, i8** %_M_p.i.i.i.i.i.i1484, align 8, !tbaa !2
%arraydecay.i.i.i.i1505 = bitcast %union.anon* %927 to i8*
%cmp.i.i.i1506 = icmp eq i8* %942, %arraydecay.i.i.i.i1505
br i1 %cmp.i.i.i1506, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1509, label %if.then.i.i1507
if.then.i.i1507: ; preds = %invoke.cont335
call void @_ZdlPv(i8* %942) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1509
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1509: ; preds = %invoke.cont335, %if.then.i.i1507
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %926) #21
br label %if.end338
lpad325: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1450
%943 = landingpad { i8*, i32 }
cleanup
%944 = extractvalue { i8*, i32 } %943, 0
%945 = extractvalue { i8*, i32 } %943, 1
br label %ehcleanup330
lpad327: ; preds = %invoke.cont326
%946 = landingpad { i8*, i32 }
cleanup
%947 = extractvalue { i8*, i32 } %946, 0
%948 = extractvalue { i8*, i32 } %946, 1
%949 = load i8*, i8** %ref.tmp323.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i1511 = bitcast %union.anon* %917 to i8*
%cmp.i.i.i1512 = icmp eq i8* %949, %arraydecay.i.i.i.i1511
br i1 %cmp.i.i.i1512, label %ehcleanup330, label %if.then.i.i1513
if.then.i.i1513: ; preds = %lpad327
call void @_ZdlPv(i8* %949) #21
br label %ehcleanup330
ehcleanup330: ; preds = %if.then.i.i1513, %lpad327, %lpad325
%exn.slot.5 = phi i8* [ %944, %lpad325 ], [ %947, %lpad327 ], [ %947, %if.then.i.i1513 ]
%ehselector.slot.5 = phi i32 [ %945, %lpad325 ], [ %948, %lpad327 ], [ %948, %if.then.i.i1513 ]
%950 = load i8*, i8** %_M_p.i.i.i.i.i.i1431, align 8, !tbaa !2
%arraydecay.i.i.i.i1517 = bitcast %union.anon* %901 to i8*
%cmp.i.i.i1518 = icmp eq i8* %950, %arraydecay.i.i.i.i1517
br i1 %cmp.i.i.i1518, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1521, label %if.then.i.i1519
if.then.i.i1519: ; preds = %ehcleanup330
call void @_ZdlPv(i8* %950) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1521
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1521: ; preds = %ehcleanup330, %if.then.i.i1519
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %900) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %899) #21
br label %ehcleanup675
lpad334: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1503
%951 = landingpad { i8*, i32 }
cleanup
%952 = extractvalue { i8*, i32 } %951, 0
%953 = extractvalue { i8*, i32 } %951, 1
%954 = load i8*, i8** %_M_p.i.i.i.i.i.i1484, align 8, !tbaa !2
%arraydecay.i.i.i.i1523 = bitcast %union.anon* %927 to i8*
%cmp.i.i.i1524 = icmp eq i8* %954, %arraydecay.i.i.i.i1523
br i1 %cmp.i.i.i1524, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1527, label %if.then.i.i1525
if.then.i.i1525: ; preds = %lpad334
call void @_ZdlPv(i8* %954) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1527
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1527: ; preds = %lpad334, %if.then.i.i1525
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %926) #21
br label %ehcleanup675
if.end338: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1203, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1509
%955 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 5), align 1, !tbaa !40, !range !18
%tobool339 = icmp eq i8 %955, 0
br i1 %tobool339, label %if.then340, label %if.end418
if.then340: ; preds = %if.end338
%956 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp341 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %956) #21
%957 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp341, i64 0, i32 2
%958 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp341 to %union.anon**
store %union.anon* %957, %union.anon** %958, align 8, !tbaa !33, !alias.scope !157
%959 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !157
%960 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !157
%961 = bitcast i64* %__dnew.i.i.i.i.i1528 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %961) #21, !noalias !157
store i64 %960, i64* %__dnew.i.i.i.i.i1528, align 8, !tbaa !54, !noalias !157
%cmp3.i.i.i.i.i1529 = icmp ugt i64 %960, 15
br i1 %cmp3.i.i.i.i.i1529, label %if.then4.i.i.i.i.i1534, label %if.end.if.end6_crit_edge.i.i.i.i.i1530
if.end.if.end6_crit_edge.i.i.i.i.i1530: ; preds = %if.then340
%962 = bitcast %union.anon* %957 to i8*
br label %if.end6.i.i.i.i.i1536
if.then4.i.i.i.i.i1534: ; preds = %if.then340
%call5.i.i.i14.i.i1531 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp341, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1528, i64 0)
%_M_p.i18.i.i.i.i.i1532 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp341, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1531, i8** %_M_p.i18.i.i.i.i.i1532, align 8, !tbaa !2, !alias.scope !157
%963 = load i64, i64* %__dnew.i.i.i.i.i1528, align 8, !tbaa !54, !noalias !157
%_M_allocated_capacity.i.i.i.i.i.i1533 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp341, i64 0, i32 2, i32 0
store i64 %963, i64* %_M_allocated_capacity.i.i.i.i.i.i1533, align 8, !tbaa !25, !alias.scope !157
br label %if.end6.i.i.i.i.i1536
if.end6.i.i.i.i.i1536: ; preds = %if.then4.i.i.i.i.i1534, %if.end.if.end6_crit_edge.i.i.i.i.i1530
%964 = phi i8* [ %962, %if.end.if.end6_crit_edge.i.i.i.i.i1530 ], [ %call5.i.i.i14.i.i1531, %if.then4.i.i.i.i.i1534 ]
%_M_p.i.i.i.i.i.i1535 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp341, i64 0, i32 0, i32 0
switch i64 %960, label %if.end.i.i.i.i.i.i.i.i1538 [
i64 1, label %if.then.i.i.i.i.i.i.i1537
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1544
]
if.then.i.i.i.i.i.i.i1537: ; preds = %if.end6.i.i.i.i.i1536
%965 = load i8, i8* %959, align 1, !tbaa !25
store i8 %965, i8* %964, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1544
if.end.i.i.i.i.i.i.i.i1538: ; preds = %if.end6.i.i.i.i.i1536
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %964, i8* align 1 %959, i64 %960, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1544
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1544: ; preds = %if.end.i.i.i.i.i.i.i.i1538, %if.then.i.i.i.i.i.i.i1537, %if.end6.i.i.i.i.i1536
%966 = load i64, i64* %__dnew.i.i.i.i.i1528, align 8, !tbaa !54, !noalias !157
%_M_string_length.i.i.i.i.i.i.i1539 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp341, i64 0, i32 1
store i64 %966, i64* %_M_string_length.i.i.i.i.i.i.i1539, align 8, !tbaa !28, !alias.scope !157
%967 = load i8*, i8** %_M_p.i.i.i.i.i.i1535, align 8, !tbaa !2, !alias.scope !157
%arrayidx.i.i.i.i.i.i1540 = getelementptr inbounds i8, i8* %967, i64 %966
store i8 0, i8* %arrayidx.i.i.i.i.i.i1540, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %961) #21, !noalias !157
%968 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1539, align 8, !tbaa !28, !alias.scope !157
%sub3.i.i.i1542 = sub i64 4611686018427387903, %968
%cmp.i.i.i1543 = icmp ult i64 %sub3.i.i.i1542, 6
br i1 %cmp.i.i.i1543, label %if.then.i.i.i1545, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1548
if.then.i.i.i1545: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1544
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1546 unwind label %lpad.i1551
.noexc.i1546: ; preds = %if.then.i.i.i1545
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1548: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1544
%call2.i2.i1547 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp341, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0), i64 6)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1554 unwind label %lpad.i1551
lpad.i1551: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1548, %if.then.i.i.i1545
%969 = landingpad { i8*, i32 }
cleanup
%970 = load i8*, i8** %_M_p.i.i.i.i.i.i1535, align 8, !tbaa !2, !alias.scope !157
%arraydecay.i.i.i.i.i1549 = bitcast %union.anon* %957 to i8*
%cmp.i.i.i.i1550 = icmp eq i8* %970, %arraydecay.i.i.i.i.i1549
br i1 %cmp.i.i.i.i1550, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1553, label %if.then.i.i3.i1552
if.then.i.i3.i1552: ; preds = %lpad.i1551
call void @_ZdlPv(i8* %970) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1553
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1553: ; preds = %if.then.i.i3.i1552, %lpad.i1551
resume { i8*, i32 } %969
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1554: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1548
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp341)
to label %invoke.cont343 unwind label %lpad342
invoke.cont343: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1554
%971 = load i8*, i8** %_M_p.i.i.i.i.i.i1535, align 8, !tbaa !2
%arraydecay.i.i.i.i1556 = bitcast %union.anon* %957 to i8*
%cmp.i.i.i1557 = icmp eq i8* %971, %arraydecay.i.i.i.i1556
br i1 %cmp.i.i.i1557, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1560, label %if.then.i.i1558
if.then.i.i1558: ; preds = %invoke.cont343
call void @_ZdlPv(i8* %971) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1560
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1560: ; preds = %invoke.cont343, %if.then.i.i1558
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %956) #21
%972 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp346 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %972) #21
%973 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp347 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %973) #21
%974 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp347, i64 0, i32 2
%975 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp347 to %union.anon**
store %union.anon* %974, %union.anon** %975, align 8, !tbaa !33, !alias.scope !160
%976 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !160
%977 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !160
%978 = bitcast i64* %__dnew.i.i.i.i.i1561 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %978) #21, !noalias !160
store i64 %977, i64* %__dnew.i.i.i.i.i1561, align 8, !tbaa !54, !noalias !160
%cmp3.i.i.i.i.i1562 = icmp ugt i64 %977, 15
br i1 %cmp3.i.i.i.i.i1562, label %if.then4.i.i.i.i.i1567, label %if.end.if.end6_crit_edge.i.i.i.i.i1563
if.end.if.end6_crit_edge.i.i.i.i.i1563: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1560
%979 = bitcast %union.anon* %974 to i8*
br label %if.end6.i.i.i.i.i1569
if.then4.i.i.i.i.i1567: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1560
%call5.i.i.i14.i.i1564 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp347, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1561, i64 0)
%_M_p.i18.i.i.i.i.i1565 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp347, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1564, i8** %_M_p.i18.i.i.i.i.i1565, align 8, !tbaa !2, !alias.scope !160
%980 = load i64, i64* %__dnew.i.i.i.i.i1561, align 8, !tbaa !54, !noalias !160
%_M_allocated_capacity.i.i.i.i.i.i1566 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp347, i64 0, i32 2, i32 0
store i64 %980, i64* %_M_allocated_capacity.i.i.i.i.i.i1566, align 8, !tbaa !25, !alias.scope !160
br label %if.end6.i.i.i.i.i1569
if.end6.i.i.i.i.i1569: ; preds = %if.then4.i.i.i.i.i1567, %if.end.if.end6_crit_edge.i.i.i.i.i1563
%981 = phi i8* [ %979, %if.end.if.end6_crit_edge.i.i.i.i.i1563 ], [ %call5.i.i.i14.i.i1564, %if.then4.i.i.i.i.i1567 ]
%_M_p.i.i.i.i.i.i1568 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp347, i64 0, i32 0, i32 0
switch i64 %977, label %if.end.i.i.i.i.i.i.i.i1571 [
i64 1, label %if.then.i.i.i.i.i.i.i1570
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1577
]
if.then.i.i.i.i.i.i.i1570: ; preds = %if.end6.i.i.i.i.i1569
%982 = load i8, i8* %976, align 1, !tbaa !25
store i8 %982, i8* %981, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1577
if.end.i.i.i.i.i.i.i.i1571: ; preds = %if.end6.i.i.i.i.i1569
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %981, i8* align 1 %976, i64 %977, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1577
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1577: ; preds = %if.end.i.i.i.i.i.i.i.i1571, %if.then.i.i.i.i.i.i.i1570, %if.end6.i.i.i.i.i1569
%983 = load i64, i64* %__dnew.i.i.i.i.i1561, align 8, !tbaa !54, !noalias !160
%_M_string_length.i.i.i.i.i.i.i1572 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp347, i64 0, i32 1
store i64 %983, i64* %_M_string_length.i.i.i.i.i.i.i1572, align 8, !tbaa !28, !alias.scope !160
%984 = load i8*, i8** %_M_p.i.i.i.i.i.i1568, align 8, !tbaa !2, !alias.scope !160
%arrayidx.i.i.i.i.i.i1573 = getelementptr inbounds i8, i8* %984, i64 %983
store i8 0, i8* %arrayidx.i.i.i.i.i.i1573, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %978) #21, !noalias !160
%985 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1572, align 8, !tbaa !28, !alias.scope !160
%sub3.i.i.i1575 = sub i64 4611686018427387903, %985
%cmp.i.i.i1576 = icmp ult i64 %sub3.i.i.i1575, 5
br i1 %cmp.i.i.i1576, label %if.then.i.i.i1578, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1581
if.then.i.i.i1578: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1577
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1579 unwind label %lpad.i1584
.noexc.i1579: ; preds = %if.then.i.i.i1578
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1581: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1577
%call2.i2.i1580 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp347, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.29, i64 0, i64 0), i64 5)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1587 unwind label %lpad.i1584
lpad.i1584: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1581, %if.then.i.i.i1578
%986 = landingpad { i8*, i32 }
cleanup
%987 = load i8*, i8** %_M_p.i.i.i.i.i.i1568, align 8, !tbaa !2, !alias.scope !160
%arraydecay.i.i.i.i.i1582 = bitcast %union.anon* %974 to i8*
%cmp.i.i.i.i1583 = icmp eq i8* %987, %arraydecay.i.i.i.i.i1582
br i1 %cmp.i.i.i.i1583, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1586, label %if.then.i.i3.i1585
if.then.i.i3.i1585: ; preds = %lpad.i1584
call void @_ZdlPv(i8* %987) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1586
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1586: ; preds = %if.then.i.i3.i1585, %lpad.i1584
resume { i8*, i32 } %986
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1587: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1581
%988 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !163
%989 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !163
%call3.i.i15881600 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp347, i8* %988, i64 %989)
to label %call3.i.i1588.noexc unwind label %lpad348
call3.i.i1588.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1587
%990 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp346, i64 0, i32 2
%991 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp346 to %union.anon**
store %union.anon* %990, %union.anon** %991, align 8, !tbaa !33, !alias.scope !163
%_M_p.i.i34.i.i1589 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i15881600, i64 0, i32 0, i32 0
%992 = load i8*, i8** %_M_p.i.i34.i.i1589, align 8, !tbaa !2
%993 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i15881600, i64 0, i32 2
%arraydecay.i.i.i.i1590 = bitcast %union.anon* %993 to i8*
%cmp.i.i.i1591 = icmp eq i8* %992, %arraydecay.i.i.i.i1590
br i1 %cmp.i.i.i1591, label %if.then.i.i1593, label %if.else.i.i1597
if.then.i.i1593: ; preds = %call3.i.i1588.noexc
%arraydecay.i.i.i1592 = bitcast %union.anon* %990 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1592, i8* nonnull align 1 dereferenceable(16) %992, i64 16, i1 false) #21
br label %invoke.cont349
if.else.i.i1597: ; preds = %call3.i.i1588.noexc
%_M_p.i32.i.i1594 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp346, i64 0, i32 0, i32 0
store i8* %992, i8** %_M_p.i32.i.i1594, align 8, !tbaa !2, !alias.scope !163
%_M_allocated_capacity.i.i1595 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i15881600, i64 0, i32 2, i32 0
%994 = load i64, i64* %_M_allocated_capacity.i.i1595, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1596 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp346, i64 0, i32 2, i32 0
store i64 %994, i64* %_M_allocated_capacity.i.i.i1596, align 8, !tbaa !25, !alias.scope !163
br label %invoke.cont349
invoke.cont349: ; preds = %if.else.i.i1597, %if.then.i.i1593
%_M_string_length.i31.i.i1598 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i15881600, i64 0, i32 1
%995 = load i64, i64* %_M_string_length.i31.i.i1598, align 8, !tbaa !28
%_M_string_length.i.i2.i1599 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp346, i64 0, i32 1
store i64 %995, i64* %_M_string_length.i.i2.i1599, align 8, !tbaa !28, !alias.scope !163
%996 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i15881600 to %union.anon**
store %union.anon* %993, %union.anon** %996, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1598, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1590, align 1, !tbaa !25
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_ccfile_printer, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp346)
to label %invoke.cont351 unwind label %lpad350
invoke.cont351: ; preds = %invoke.cont349
%_M_p.i.i.i.i1602 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp346, i64 0, i32 0, i32 0
%997 = load i8*, i8** %_M_p.i.i.i.i1602, align 8, !tbaa !2
%arraydecay.i.i.i.i1603 = bitcast %union.anon* %990 to i8*
%cmp.i.i.i1604 = icmp eq i8* %997, %arraydecay.i.i.i.i1603
br i1 %cmp.i.i.i1604, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1607, label %if.then.i.i1605
if.then.i.i1605: ; preds = %invoke.cont351
call void @_ZdlPv(i8* %997) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1607
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1607: ; preds = %invoke.cont351, %if.then.i.i1605
%998 = load i8*, i8** %_M_p.i.i.i.i.i.i1568, align 8, !tbaa !2
%arraydecay.i.i.i.i1609 = bitcast %union.anon* %974 to i8*
%cmp.i.i.i1610 = icmp eq i8* %998, %arraydecay.i.i.i.i1609
br i1 %cmp.i.i.i1610, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1613, label %if.then.i.i1611
if.then.i.i1611: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1607
call void @_ZdlPv(i8* %998) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1613
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1613: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1607, %if.then.i.i1611
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %973) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %972) #21
%999 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool356 = icmp eq i8 %999, 0
br i1 %tobool356, label %if.end371, label %if.then357
if.then357: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1613
%1000 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp358 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1000) #21
%1001 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp359 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1001) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp359, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%_M_string_length.i.i.i.i1615 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp359, i64 0, i32 1
%1002 = load i64, i64* %_M_string_length.i.i.i.i1615, align 8, !tbaa !28, !noalias !166
%1003 = or i64 %1002, 3
%cmp.i.i.i1617 = icmp eq i64 %1003, 4611686018427387903
br i1 %cmp.i.i.i1617, label %if.then.i.i.i1618, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1623
if.then.i.i.i1618: ; preds = %if.then357
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc1632 unwind label %lpad360
.noexc1632: ; preds = %if.then.i.i.i1618
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1623: ; preds = %if.then357
%call2.i.i16191633 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp359, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0), i64 4)
to label %call2.i.i1619.noexc unwind label %lpad360
call2.i.i1619.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1623
%1004 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp358, i64 0, i32 2
%1005 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp358 to %union.anon**
store %union.anon* %1004, %union.anon** %1005, align 8, !tbaa !33, !alias.scope !166
%_M_p.i.i34.i.i1620 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i16191633, i64 0, i32 0, i32 0
%1006 = load i8*, i8** %_M_p.i.i34.i.i1620, align 8, !tbaa !2
%1007 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i16191633, i64 0, i32 2
%arraydecay.i.i.i.i1621 = bitcast %union.anon* %1007 to i8*
%cmp.i.i2.i1622 = icmp eq i8* %1006, %arraydecay.i.i.i.i1621
br i1 %cmp.i.i2.i1622, label %if.then.i.i1625, label %if.else.i.i1629
if.then.i.i1625: ; preds = %call2.i.i1619.noexc
%arraydecay.i.i.i1624 = bitcast %union.anon* %1004 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1624, i8* nonnull align 1 dereferenceable(16) %1006, i64 16, i1 false) #21
br label %invoke.cont361
if.else.i.i1629: ; preds = %call2.i.i1619.noexc
%_M_p.i32.i.i1626 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp358, i64 0, i32 0, i32 0
store i8* %1006, i8** %_M_p.i32.i.i1626, align 8, !tbaa !2, !alias.scope !166
%_M_allocated_capacity.i.i1627 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i16191633, i64 0, i32 2, i32 0
%1008 = load i64, i64* %_M_allocated_capacity.i.i1627, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1628 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp358, i64 0, i32 2, i32 0
store i64 %1008, i64* %_M_allocated_capacity.i.i.i1628, align 8, !tbaa !25, !alias.scope !166
br label %invoke.cont361
invoke.cont361: ; preds = %if.else.i.i1629, %if.then.i.i1625
%_M_string_length.i31.i.i1630 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i16191633, i64 0, i32 1
%1009 = load i64, i64* %_M_string_length.i31.i.i1630, align 8, !tbaa !28
%_M_string_length.i.i.i1631 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp358, i64 0, i32 1
store i64 %1009, i64* %_M_string_length.i.i.i1631, align 8, !tbaa !28, !alias.scope !166
%1010 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i16191633 to %union.anon**
store %union.anon* %1007, %union.anon** %1010, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1630, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1621, align 1, !tbaa !25
%_M_p.i.i.i1635 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp358, i64 0, i32 0, i32 0
%1011 = load i8*, i8** %_M_p.i.i.i1635, align 8, !tbaa !2
%1012 = load i64, i64* %_M_string_length.i.i.i1631, align 8, !tbaa !28
%call2.i16371638 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %1011, i64 %1012)
to label %invoke.cont363 unwind label %lpad362
invoke.cont363: ; preds = %invoke.cont361
%call.i16431644 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i16371638)
to label %invoke.cont365 unwind label %lpad362
invoke.cont365: ; preds = %invoke.cont363
%1013 = load i8*, i8** %_M_p.i.i.i1635, align 8, !tbaa !2
%arraydecay.i.i.i.i1647 = bitcast %union.anon* %1004 to i8*
%cmp.i.i.i1648 = icmp eq i8* %1013, %arraydecay.i.i.i.i1647
br i1 %cmp.i.i.i1648, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1651, label %if.then.i.i1649
if.then.i.i1649: ; preds = %invoke.cont365
call void @_ZdlPv(i8* %1013) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1651
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1651: ; preds = %invoke.cont365, %if.then.i.i1649
%_M_p.i.i.i.i1652 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp359, i64 0, i32 0, i32 0
%1014 = load i8*, i8** %_M_p.i.i.i.i1652, align 8, !tbaa !2
%1015 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp359, i64 0, i32 2
%arraydecay.i.i.i.i1653 = bitcast %union.anon* %1015 to i8*
%cmp.i.i.i1654 = icmp eq i8* %1014, %arraydecay.i.i.i.i1653
br i1 %cmp.i.i.i1654, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1657, label %if.then.i.i1655
if.then.i.i1655: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1651
call void @_ZdlPv(i8* %1014) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1657
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1657: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1651, %if.then.i.i1655
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1001) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1000) #21
br label %if.end371
lpad342: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1554
%1016 = landingpad { i8*, i32 }
cleanup
%1017 = extractvalue { i8*, i32 } %1016, 0
%1018 = extractvalue { i8*, i32 } %1016, 1
%1019 = load i8*, i8** %_M_p.i.i.i.i.i.i1535, align 8, !tbaa !2
%arraydecay.i.i.i.i1659 = bitcast %union.anon* %957 to i8*
%cmp.i.i.i1660 = icmp eq i8* %1019, %arraydecay.i.i.i.i1659
br i1 %cmp.i.i.i1660, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1663, label %if.then.i.i1661
if.then.i.i1661: ; preds = %lpad342
call void @_ZdlPv(i8* %1019) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1663
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1663: ; preds = %lpad342, %if.then.i.i1661
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %956) #21
br label %ehcleanup675
lpad348: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1587
%1020 = landingpad { i8*, i32 }
cleanup
%1021 = extractvalue { i8*, i32 } %1020, 0
%1022 = extractvalue { i8*, i32 } %1020, 1
br label %ehcleanup353
lpad350: ; preds = %invoke.cont349
%1023 = landingpad { i8*, i32 }
cleanup
%1024 = extractvalue { i8*, i32 } %1023, 0
%1025 = extractvalue { i8*, i32 } %1023, 1
%_M_p.i.i.i.i1664 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp346, i64 0, i32 0, i32 0
%1026 = load i8*, i8** %_M_p.i.i.i.i1664, align 8, !tbaa !2
%arraydecay.i.i.i.i1665 = bitcast %union.anon* %990 to i8*
%cmp.i.i.i1666 = icmp eq i8* %1026, %arraydecay.i.i.i.i1665
br i1 %cmp.i.i.i1666, label %ehcleanup353, label %if.then.i.i1667
if.then.i.i1667: ; preds = %lpad350
call void @_ZdlPv(i8* %1026) #21
br label %ehcleanup353
ehcleanup353: ; preds = %if.then.i.i1667, %lpad350, %lpad348
%exn.slot.6 = phi i8* [ %1021, %lpad348 ], [ %1024, %lpad350 ], [ %1024, %if.then.i.i1667 ]
%ehselector.slot.6 = phi i32 [ %1022, %lpad348 ], [ %1025, %lpad350 ], [ %1025, %if.then.i.i1667 ]
%1027 = load i8*, i8** %_M_p.i.i.i.i.i.i1568, align 8, !tbaa !2
%arraydecay.i.i.i.i1671 = bitcast %union.anon* %974 to i8*
%cmp.i.i.i1672 = icmp eq i8* %1027, %arraydecay.i.i.i.i1671
br i1 %cmp.i.i.i1672, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1675, label %if.then.i.i1673
if.then.i.i1673: ; preds = %ehcleanup353
call void @_ZdlPv(i8* %1027) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1675
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1675: ; preds = %ehcleanup353, %if.then.i.i1673
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %973) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %972) #21
br label %ehcleanup675
lpad360: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1623, %if.then.i.i.i1618
%1028 = landingpad { i8*, i32 }
cleanup
%1029 = extractvalue { i8*, i32 } %1028, 0
%1030 = extractvalue { i8*, i32 } %1028, 1
br label %ehcleanup368
lpad362: ; preds = %invoke.cont363, %invoke.cont361
%1031 = landingpad { i8*, i32 }
cleanup
%1032 = extractvalue { i8*, i32 } %1031, 0
%1033 = extractvalue { i8*, i32 } %1031, 1
%1034 = load i8*, i8** %_M_p.i.i.i1635, align 8, !tbaa !2
%arraydecay.i.i.i.i1677 = bitcast %union.anon* %1004 to i8*
%cmp.i.i.i1678 = icmp eq i8* %1034, %arraydecay.i.i.i.i1677
br i1 %cmp.i.i.i1678, label %ehcleanup368, label %if.then.i.i1679
if.then.i.i1679: ; preds = %lpad362
call void @_ZdlPv(i8* %1034) #21
br label %ehcleanup368
ehcleanup368: ; preds = %if.then.i.i1679, %lpad362, %lpad360
%exn.slot.7 = phi i8* [ %1029, %lpad360 ], [ %1032, %lpad362 ], [ %1032, %if.then.i.i1679 ]
%ehselector.slot.7 = phi i32 [ %1030, %lpad360 ], [ %1033, %lpad362 ], [ %1033, %if.then.i.i1679 ]
%_M_p.i.i.i.i1682 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp359, i64 0, i32 0, i32 0
%1035 = load i8*, i8** %_M_p.i.i.i.i1682, align 8, !tbaa !2
%1036 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp359, i64 0, i32 2
%arraydecay.i.i.i.i1683 = bitcast %union.anon* %1036 to i8*
%cmp.i.i.i1684 = icmp eq i8* %1035, %arraydecay.i.i.i.i1683
br i1 %cmp.i.i.i1684, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1687, label %if.then.i.i1685
if.then.i.i1685: ; preds = %ehcleanup368
call void @_ZdlPv(i8* %1035) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1687
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1687: ; preds = %ehcleanup368, %if.then.i.i1685
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1001) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1000) #21
br label %ehcleanup675
if.end371: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1613, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1657
%vtable.i1688 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1689 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1688, i64 9
%1037 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1689, align 8
call void %1037(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_unpk_h_class", %"struct.kc::view_gen_unpk_h_class"* @_ZN2kc15view_gen_unpk_hE, i64 0, i32 0))
%call372 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.31, i64 0, i64 0), i32 -1)
%call373 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call372)
%call375 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.31, i64 0, i64 0), i32 -1)
%call376 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call375)
%inc_type377 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call376, i64 0, i32 0, i32 1
%1038 = load i32, i32* %inc_type377, align 8, !tbaa !85
%cmp.i1690 = icmp eq i32 %1038, 0
%inc1.i1691 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call373, i64 0, i32 0, i32 2, i32 0
%inc2.i1692 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call373, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i1693 = select i1 %cmp.i1690, %"class.kc::impl_includedeclarations"** %inc1.i1691, %"class.kc::impl_includedeclarations"** %inc2.i1692
%1039 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i1693 to %"class.kc::impl_abstract_phylum"**
%1040 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1039, align 8, !tbaa !9
%1041 = bitcast %"class.kc::impl_abstract_phylum"* %1040 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1694 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1041, align 8, !tbaa !19
%vfn.i1695 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1694, i64 9
%1042 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1695, align 8
call void %1042(%"class.kc::impl_abstract_phylum"* %1040, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i1696 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1697 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1696, i64 9
%1043 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1697, align 8
call void %1043(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i1698 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1699 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1698, i64 9
%1044 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1699, align 8
call void %1044(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_uview_class_decl_class", %"struct.kc::view_uview_class_decl_class"* @_ZN2kc21view_uview_class_declE, i64 0, i32 0))
%vtable.i1700 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1701 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1700, i64 9
%1045 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1701, align 8
call void %1045(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_unparsedecls_h_class", %"struct.kc::view_gen_unparsedecls_h_class"* @_ZN2kc23view_gen_unparsedecls_hE, i64 0, i32 0))
%vtable.i1702 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1703 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1702, i64 9
%1046 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1703, align 8
call void %1046(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%vtable.i1704 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1705 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1704, i64 9
%1047 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1705, align 8
call void %1047(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_end_unpk_h_class", %"struct.kc::view_gen_end_unpk_h_class"* @_ZN2kc19view_gen_end_unpk_hE, i64 0, i32 0))
%vtable.i1706 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1707 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1706, i64 9
%1048 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1707, align 8
call void %1048(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_unpk_c_class", %"struct.kc::view_gen_unpk_c_class"* @_ZN2kc15view_gen_unpk_cE, i64 0, i32 0))
%vtable.i1708 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1709 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1708, i64 9
%1049 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1709, align 8
call void %1049(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%call379 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.32, i64 0, i64 0), i32 -1)
%call380 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call379)
%call382 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.32, i64 0, i64 0), i32 -1)
%call383 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call382)
%inc_type384 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call383, i64 0, i32 0, i32 1
%1050 = load i32, i32* %inc_type384, align 8, !tbaa !85
%cmp.i1710 = icmp eq i32 %1050, 0
%inc1.i1711 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call380, i64 0, i32 0, i32 2, i32 0
%inc2.i1712 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call380, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i1713 = select i1 %cmp.i1710, %"class.kc::impl_includedeclarations"** %inc1.i1711, %"class.kc::impl_includedeclarations"** %inc2.i1712
%1051 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i1713 to %"class.kc::impl_abstract_phylum"**
%1052 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1051, align 8, !tbaa !9
%1053 = bitcast %"class.kc::impl_abstract_phylum"* %1052 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i1714 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1053, align 8, !tbaa !19
%vfn.i1715 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1714, i64 9
%1054 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1715, align 8
call void %1054(%"class.kc::impl_abstract_phylum"* %1052, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i1716 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1717 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1716, i64 9
%1055 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1717, align 8
call void %1055(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i1718 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1719 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1718, i64 9
%1056 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1719, align 8
call void %1056(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_default_types_unpk_c_class", %"struct.kc::view_gen_default_types_unpk_c_class"* @_ZN2kc29view_gen_default_types_unpk_cE, i64 0, i32 0))
%vtable.i1720 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1721 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1720, i64 9
%1057 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1721, align 8
call void %1057(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_unparsedefs_c_class", %"struct.kc::view_gen_unparsedefs_c_class"* @_ZN2kc22view_gen_unparsedefs_cE, i64 0, i32 0))
%1058 = load i8, i8* @pg_languageshavebeendefined, align 1, !tbaa !26, !range !18
%tobool386 = icmp eq i8 %1058, 0
br i1 %tobool386, label %if.end388, label %if.then387
if.then387: ; preds = %if.end371
call void @_ZN2kc25unparse_string_collectionEv()
br label %if.end388
if.end388: ; preds = %if.end371, %if.then387
%vtable.i1722 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i1723 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i1722, i64 9
%1059 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i1723, align 8
call void %1059(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%1060 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i1724 = icmp eq %struct._IO_FILE* %1060, null
br i1 %tobool.i1724, label %_ZN14kc_filePrinter6fcloseEv.exit1729.thread, label %_ZN14kc_filePrinter6fcloseEv.exit1729
_ZN14kc_filePrinter6fcloseEv.exit1729.thread: ; preds = %if.end388
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end395
_ZN14kc_filePrinter6fcloseEv.exit1729: ; preds = %if.end388
%call.i1725 = call i32 @fclose(%struct._IO_FILE* nonnull %1060)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp390 = icmp eq i32 %call.i1725, -1
br i1 %cmp390, label %if.then391, label %if.end395
if.then391: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1729
%call392 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1061 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call392 to %"class.kc::impl_fileline"*
%call393 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.33, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call394 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1061, %"class.kc::impl_problem"* %call393)
%1062 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call394, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1062)
br label %if.end395
if.end395: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1729.thread, %if.then391, %_ZN14kc_filePrinter6fcloseEv.exit1729
%1063 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i1730 = icmp eq %struct._IO_FILE* %1063, null
br i1 %tobool.i1730, label %_ZN14kc_filePrinter6fcloseEv.exit1735.thread, label %_ZN14kc_filePrinter6fcloseEv.exit1735
_ZN14kc_filePrinter6fcloseEv.exit1735.thread: ; preds = %if.end395
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end402
_ZN14kc_filePrinter6fcloseEv.exit1735: ; preds = %if.end395
%call.i1731 = call i32 @fclose(%struct._IO_FILE* nonnull %1063)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp397 = icmp eq i32 %call.i1731, -1
br i1 %cmp397, label %if.then398, label %if.end402
if.then398: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1735
%call399 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1064 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call399 to %"class.kc::impl_fileline"*
%call400 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.34, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call401 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1064, %"class.kc::impl_problem"* %call400)
%1065 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call401, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1065)
br label %if.end402
if.end402: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit1735.thread, %if.then398, %_ZN14kc_filePrinter6fcloseEv.exit1735
%1066 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp403 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1066) #21
%1067 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp404 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1067) #21
%1068 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp404, i64 0, i32 2
%1069 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp404 to %union.anon**
store %union.anon* %1068, %union.anon** %1069, align 8, !tbaa !33, !alias.scope !169
%1070 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !169
%1071 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !169
%1072 = bitcast i64* %__dnew.i.i.i.i.i1736 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1072) #21, !noalias !169
store i64 %1071, i64* %__dnew.i.i.i.i.i1736, align 8, !tbaa !54, !noalias !169
%cmp3.i.i.i.i.i1737 = icmp ugt i64 %1071, 15
br i1 %cmp3.i.i.i.i.i1737, label %if.then4.i.i.i.i.i1742, label %if.end.if.end6_crit_edge.i.i.i.i.i1738
if.end.if.end6_crit_edge.i.i.i.i.i1738: ; preds = %if.end402
%1073 = bitcast %union.anon* %1068 to i8*
br label %if.end6.i.i.i.i.i1744
if.then4.i.i.i.i.i1742: ; preds = %if.end402
%call5.i.i.i14.i.i1739 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp404, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1736, i64 0)
%_M_p.i18.i.i.i.i.i1740 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp404, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1739, i8** %_M_p.i18.i.i.i.i.i1740, align 8, !tbaa !2, !alias.scope !169
%1074 = load i64, i64* %__dnew.i.i.i.i.i1736, align 8, !tbaa !54, !noalias !169
%_M_allocated_capacity.i.i.i.i.i.i1741 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp404, i64 0, i32 2, i32 0
store i64 %1074, i64* %_M_allocated_capacity.i.i.i.i.i.i1741, align 8, !tbaa !25, !alias.scope !169
br label %if.end6.i.i.i.i.i1744
if.end6.i.i.i.i.i1744: ; preds = %if.then4.i.i.i.i.i1742, %if.end.if.end6_crit_edge.i.i.i.i.i1738
%1075 = phi i8* [ %1073, %if.end.if.end6_crit_edge.i.i.i.i.i1738 ], [ %call5.i.i.i14.i.i1739, %if.then4.i.i.i.i.i1742 ]
%_M_p.i.i.i.i.i.i1743 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp404, i64 0, i32 0, i32 0
switch i64 %1071, label %if.end.i.i.i.i.i.i.i.i1746 [
i64 1, label %if.then.i.i.i.i.i.i.i1745
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1752
]
if.then.i.i.i.i.i.i.i1745: ; preds = %if.end6.i.i.i.i.i1744
%1076 = load i8, i8* %1070, align 1, !tbaa !25
store i8 %1076, i8* %1075, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1752
if.end.i.i.i.i.i.i.i.i1746: ; preds = %if.end6.i.i.i.i.i1744
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1075, i8* align 1 %1070, i64 %1071, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1752
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1752: ; preds = %if.end.i.i.i.i.i.i.i.i1746, %if.then.i.i.i.i.i.i.i1745, %if.end6.i.i.i.i.i1744
%1077 = load i64, i64* %__dnew.i.i.i.i.i1736, align 8, !tbaa !54, !noalias !169
%_M_string_length.i.i.i.i.i.i.i1747 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp404, i64 0, i32 1
store i64 %1077, i64* %_M_string_length.i.i.i.i.i.i.i1747, align 8, !tbaa !28, !alias.scope !169
%1078 = load i8*, i8** %_M_p.i.i.i.i.i.i1743, align 8, !tbaa !2, !alias.scope !169
%arrayidx.i.i.i.i.i.i1748 = getelementptr inbounds i8, i8* %1078, i64 %1077
store i8 0, i8* %arrayidx.i.i.i.i.i.i1748, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1072) #21, !noalias !169
%1079 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1747, align 8, !tbaa !28, !alias.scope !169
%sub3.i.i.i1750 = sub i64 4611686018427387903, %1079
%cmp.i.i.i1751 = icmp ult i64 %sub3.i.i.i1750, 5
br i1 %cmp.i.i.i1751, label %if.then.i.i.i1753, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1756
if.then.i.i.i1753: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1752
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1754 unwind label %lpad.i1759
.noexc.i1754: ; preds = %if.then.i.i.i1753
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1756: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1752
%call2.i2.i1755 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp404, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.29, i64 0, i64 0), i64 5)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1762 unwind label %lpad.i1759
lpad.i1759: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1756, %if.then.i.i.i1753
%1080 = landingpad { i8*, i32 }
cleanup
%1081 = load i8*, i8** %_M_p.i.i.i.i.i.i1743, align 8, !tbaa !2, !alias.scope !169
%arraydecay.i.i.i.i.i1757 = bitcast %union.anon* %1068 to i8*
%cmp.i.i.i.i1758 = icmp eq i8* %1081, %arraydecay.i.i.i.i.i1757
br i1 %cmp.i.i.i.i1758, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1761, label %if.then.i.i3.i1760
if.then.i.i3.i1760: ; preds = %lpad.i1759
call void @_ZdlPv(i8* %1081) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1761
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1761: ; preds = %if.then.i.i3.i1760, %lpad.i1759
resume { i8*, i32 } %1080
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1762: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1756
%1082 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !172
%1083 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !172
%call3.i.i17631775 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp404, i8* %1082, i64 %1083)
to label %call3.i.i1763.noexc unwind label %lpad405
call3.i.i1763.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1762
%1084 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp403, i64 0, i32 2
%1085 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp403 to %union.anon**
store %union.anon* %1084, %union.anon** %1085, align 8, !tbaa !33, !alias.scope !172
%_M_p.i.i34.i.i1764 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i17631775, i64 0, i32 0, i32 0
%1086 = load i8*, i8** %_M_p.i.i34.i.i1764, align 8, !tbaa !2
%1087 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i17631775, i64 0, i32 2
%arraydecay.i.i.i.i1765 = bitcast %union.anon* %1087 to i8*
%cmp.i.i.i1766 = icmp eq i8* %1086, %arraydecay.i.i.i.i1765
br i1 %cmp.i.i.i1766, label %if.then.i.i1768, label %if.else.i.i1772
if.then.i.i1768: ; preds = %call3.i.i1763.noexc
%arraydecay.i.i.i1767 = bitcast %union.anon* %1084 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1767, i8* nonnull align 1 dereferenceable(16) %1086, i64 16, i1 false) #21
br label %invoke.cont406
if.else.i.i1772: ; preds = %call3.i.i1763.noexc
%_M_p.i32.i.i1769 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp403, i64 0, i32 0, i32 0
store i8* %1086, i8** %_M_p.i32.i.i1769, align 8, !tbaa !2, !alias.scope !172
%_M_allocated_capacity.i.i1770 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i17631775, i64 0, i32 2, i32 0
%1088 = load i64, i64* %_M_allocated_capacity.i.i1770, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1771 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp403, i64 0, i32 2, i32 0
store i64 %1088, i64* %_M_allocated_capacity.i.i.i1771, align 8, !tbaa !25, !alias.scope !172
br label %invoke.cont406
invoke.cont406: ; preds = %if.else.i.i1772, %if.then.i.i1768
%_M_string_length.i31.i.i1773 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i17631775, i64 0, i32 1
%1089 = load i64, i64* %_M_string_length.i31.i.i1773, align 8, !tbaa !28
%_M_string_length.i.i2.i1774 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp403, i64 0, i32 1
store i64 %1089, i64* %_M_string_length.i.i2.i1774, align 8, !tbaa !28, !alias.scope !172
%1090 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i17631775 to %union.anon**
store %union.anon* %1087, %union.anon** %1090, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1773, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1765, align 1, !tbaa !25
%ref.tmp403.idx = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp403, i64 0, i32 0, i32 0
%ref.tmp403.idx.val = load i8*, i8** %ref.tmp403.idx, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* %ref.tmp403.idx.val)
to label %invoke.cont408 unwind label %lpad407
invoke.cont408: ; preds = %invoke.cont406
%1091 = load i8*, i8** %ref.tmp403.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i1778 = bitcast %union.anon* %1084 to i8*
%cmp.i.i.i1779 = icmp eq i8* %1091, %arraydecay.i.i.i.i1778
br i1 %cmp.i.i.i1779, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1782, label %if.then.i.i1780
if.then.i.i1780: ; preds = %invoke.cont408
call void @_ZdlPv(i8* %1091) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1782
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1782: ; preds = %invoke.cont408, %if.then.i.i1780
%1092 = load i8*, i8** %_M_p.i.i.i.i.i.i1743, align 8, !tbaa !2
%arraydecay.i.i.i.i1784 = bitcast %union.anon* %1068 to i8*
%cmp.i.i.i1785 = icmp eq i8* %1092, %arraydecay.i.i.i.i1784
br i1 %cmp.i.i.i1785, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1788, label %if.then.i.i1786
if.then.i.i1786: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1782
call void @_ZdlPv(i8* %1092) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1788
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1788: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1782, %if.then.i.i1786
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1067) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1066) #21
%1093 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp413 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1093) #21
%1094 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp413, i64 0, i32 2
%1095 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp413 to %union.anon**
store %union.anon* %1094, %union.anon** %1095, align 8, !tbaa !33, !alias.scope !175
%1096 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !175
%1097 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !175
%1098 = bitcast i64* %__dnew.i.i.i.i.i1789 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1098) #21, !noalias !175
store i64 %1097, i64* %__dnew.i.i.i.i.i1789, align 8, !tbaa !54, !noalias !175
%cmp3.i.i.i.i.i1790 = icmp ugt i64 %1097, 15
br i1 %cmp3.i.i.i.i.i1790, label %if.then4.i.i.i.i.i1795, label %if.end.if.end6_crit_edge.i.i.i.i.i1791
if.end.if.end6_crit_edge.i.i.i.i.i1791: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1788
%1099 = bitcast %union.anon* %1094 to i8*
br label %if.end6.i.i.i.i.i1797
if.then4.i.i.i.i.i1795: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1788
%call5.i.i.i14.i.i1792 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp413, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1789, i64 0)
%_M_p.i18.i.i.i.i.i1793 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp413, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1792, i8** %_M_p.i18.i.i.i.i.i1793, align 8, !tbaa !2, !alias.scope !175
%1100 = load i64, i64* %__dnew.i.i.i.i.i1789, align 8, !tbaa !54, !noalias !175
%_M_allocated_capacity.i.i.i.i.i.i1794 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp413, i64 0, i32 2, i32 0
store i64 %1100, i64* %_M_allocated_capacity.i.i.i.i.i.i1794, align 8, !tbaa !25, !alias.scope !175
br label %if.end6.i.i.i.i.i1797
if.end6.i.i.i.i.i1797: ; preds = %if.then4.i.i.i.i.i1795, %if.end.if.end6_crit_edge.i.i.i.i.i1791
%1101 = phi i8* [ %1099, %if.end.if.end6_crit_edge.i.i.i.i.i1791 ], [ %call5.i.i.i14.i.i1792, %if.then4.i.i.i.i.i1795 ]
%_M_p.i.i.i.i.i.i1796 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp413, i64 0, i32 0, i32 0
switch i64 %1097, label %if.end.i.i.i.i.i.i.i.i1799 [
i64 1, label %if.then.i.i.i.i.i.i.i1798
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1805
]
if.then.i.i.i.i.i.i.i1798: ; preds = %if.end6.i.i.i.i.i1797
%1102 = load i8, i8* %1096, align 1, !tbaa !25
store i8 %1102, i8* %1101, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1805
if.end.i.i.i.i.i.i.i.i1799: ; preds = %if.end6.i.i.i.i.i1797
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1101, i8* align 1 %1096, i64 %1097, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1805
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1805: ; preds = %if.end.i.i.i.i.i.i.i.i1799, %if.then.i.i.i.i.i.i.i1798, %if.end6.i.i.i.i.i1797
%1103 = load i64, i64* %__dnew.i.i.i.i.i1789, align 8, !tbaa !54, !noalias !175
%_M_string_length.i.i.i.i.i.i.i1800 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp413, i64 0, i32 1
store i64 %1103, i64* %_M_string_length.i.i.i.i.i.i.i1800, align 8, !tbaa !28, !alias.scope !175
%1104 = load i8*, i8** %_M_p.i.i.i.i.i.i1796, align 8, !tbaa !2, !alias.scope !175
%arrayidx.i.i.i.i.i.i1801 = getelementptr inbounds i8, i8* %1104, i64 %1103
store i8 0, i8* %arrayidx.i.i.i.i.i.i1801, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1098) #21, !noalias !175
%1105 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1800, align 8, !tbaa !28, !alias.scope !175
%sub3.i.i.i1803 = sub i64 4611686018427387903, %1105
%cmp.i.i.i1804 = icmp ult i64 %sub3.i.i.i1803, 6
br i1 %cmp.i.i.i1804, label %if.then.i.i.i1806, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1809
if.then.i.i.i1806: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1805
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1807 unwind label %lpad.i1812
.noexc.i1807: ; preds = %if.then.i.i.i1806
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1809: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1805
%call2.i2.i1808 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp413, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0), i64 6)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1815 unwind label %lpad.i1812
lpad.i1812: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1809, %if.then.i.i.i1806
%1106 = landingpad { i8*, i32 }
cleanup
%1107 = load i8*, i8** %_M_p.i.i.i.i.i.i1796, align 8, !tbaa !2, !alias.scope !175
%arraydecay.i.i.i.i.i1810 = bitcast %union.anon* %1094 to i8*
%cmp.i.i.i.i1811 = icmp eq i8* %1107, %arraydecay.i.i.i.i.i1810
br i1 %cmp.i.i.i.i1811, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1814, label %if.then.i.i3.i1813
if.then.i.i3.i1813: ; preds = %lpad.i1812
call void @_ZdlPv(i8* %1107) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1814
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1814: ; preds = %if.then.i.i3.i1813, %lpad.i1812
resume { i8*, i32 } %1106
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1815: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1809
%ref.tmp413.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i1796, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp413.idx.val)
to label %invoke.cont415 unwind label %lpad414
invoke.cont415: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1815
%1108 = load i8*, i8** %_M_p.i.i.i.i.i.i1796, align 8, !tbaa !2
%arraydecay.i.i.i.i1817 = bitcast %union.anon* %1094 to i8*
%cmp.i.i.i1818 = icmp eq i8* %1108, %arraydecay.i.i.i.i1817
br i1 %cmp.i.i.i1818, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1821, label %if.then.i.i1819
if.then.i.i1819: ; preds = %invoke.cont415
call void @_ZdlPv(i8* %1108) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1821
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1821: ; preds = %invoke.cont415, %if.then.i.i1819
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1093) #21
br label %if.end418
lpad405: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1762
%1109 = landingpad { i8*, i32 }
cleanup
%1110 = extractvalue { i8*, i32 } %1109, 0
%1111 = extractvalue { i8*, i32 } %1109, 1
br label %ehcleanup410
lpad407: ; preds = %invoke.cont406
%1112 = landingpad { i8*, i32 }
cleanup
%1113 = extractvalue { i8*, i32 } %1112, 0
%1114 = extractvalue { i8*, i32 } %1112, 1
%1115 = load i8*, i8** %ref.tmp403.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i1823 = bitcast %union.anon* %1084 to i8*
%cmp.i.i.i1824 = icmp eq i8* %1115, %arraydecay.i.i.i.i1823
br i1 %cmp.i.i.i1824, label %ehcleanup410, label %if.then.i.i1825
if.then.i.i1825: ; preds = %lpad407
call void @_ZdlPv(i8* %1115) #21
br label %ehcleanup410
ehcleanup410: ; preds = %if.then.i.i1825, %lpad407, %lpad405
%exn.slot.8 = phi i8* [ %1110, %lpad405 ], [ %1113, %lpad407 ], [ %1113, %if.then.i.i1825 ]
%ehselector.slot.8 = phi i32 [ %1111, %lpad405 ], [ %1114, %lpad407 ], [ %1114, %if.then.i.i1825 ]
%1116 = load i8*, i8** %_M_p.i.i.i.i.i.i1743, align 8, !tbaa !2
%arraydecay.i.i.i.i1829 = bitcast %union.anon* %1068 to i8*
%cmp.i.i.i1830 = icmp eq i8* %1116, %arraydecay.i.i.i.i1829
br i1 %cmp.i.i.i1830, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1833, label %if.then.i.i1831
if.then.i.i1831: ; preds = %ehcleanup410
call void @_ZdlPv(i8* %1116) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1833
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1833: ; preds = %ehcleanup410, %if.then.i.i1831
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1067) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1066) #21
br label %ehcleanup675
lpad414: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1815
%1117 = landingpad { i8*, i32 }
cleanup
%1118 = extractvalue { i8*, i32 } %1117, 0
%1119 = extractvalue { i8*, i32 } %1117, 1
%1120 = load i8*, i8** %_M_p.i.i.i.i.i.i1796, align 8, !tbaa !2
%arraydecay.i.i.i.i1835 = bitcast %union.anon* %1094 to i8*
%cmp.i.i.i1836 = icmp eq i8* %1120, %arraydecay.i.i.i.i1835
br i1 %cmp.i.i.i1836, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1839, label %if.then.i.i1837
if.then.i.i1837: ; preds = %lpad414
call void @_ZdlPv(i8* %1120) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1839
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1839: ; preds = %lpad414, %if.then.i.i1837
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1093) #21
br label %ehcleanup675
if.end418: ; preds = %if.end338, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1821
%1121 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 6), align 4, !tbaa !41, !range !18
%tobool419 = icmp eq i8 %1121, 0
br i1 %tobool419, label %if.then420, label %if.end495
if.then420: ; preds = %if.end418
%1122 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp421 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1122) #21
%1123 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp421, i64 0, i32 2
%1124 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp421 to %union.anon**
store %union.anon* %1123, %union.anon** %1124, align 8, !tbaa !33, !alias.scope !178
%1125 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !178
%1126 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !178
%1127 = bitcast i64* %__dnew.i.i.i.i.i1840 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1127) #21, !noalias !178
store i64 %1126, i64* %__dnew.i.i.i.i.i1840, align 8, !tbaa !54, !noalias !178
%cmp3.i.i.i.i.i1841 = icmp ugt i64 %1126, 15
br i1 %cmp3.i.i.i.i.i1841, label %if.then4.i.i.i.i.i1846, label %if.end.if.end6_crit_edge.i.i.i.i.i1842
if.end.if.end6_crit_edge.i.i.i.i.i1842: ; preds = %if.then420
%1128 = bitcast %union.anon* %1123 to i8*
br label %if.end6.i.i.i.i.i1848
if.then4.i.i.i.i.i1846: ; preds = %if.then420
%call5.i.i.i14.i.i1843 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp421, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1840, i64 0)
%_M_p.i18.i.i.i.i.i1844 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp421, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1843, i8** %_M_p.i18.i.i.i.i.i1844, align 8, !tbaa !2, !alias.scope !178
%1129 = load i64, i64* %__dnew.i.i.i.i.i1840, align 8, !tbaa !54, !noalias !178
%_M_allocated_capacity.i.i.i.i.i.i1845 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp421, i64 0, i32 2, i32 0
store i64 %1129, i64* %_M_allocated_capacity.i.i.i.i.i.i1845, align 8, !tbaa !25, !alias.scope !178
br label %if.end6.i.i.i.i.i1848
if.end6.i.i.i.i.i1848: ; preds = %if.then4.i.i.i.i.i1846, %if.end.if.end6_crit_edge.i.i.i.i.i1842
%1130 = phi i8* [ %1128, %if.end.if.end6_crit_edge.i.i.i.i.i1842 ], [ %call5.i.i.i14.i.i1843, %if.then4.i.i.i.i.i1846 ]
%_M_p.i.i.i.i.i.i1847 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp421, i64 0, i32 0, i32 0
switch i64 %1126, label %if.end.i.i.i.i.i.i.i.i1850 [
i64 1, label %if.then.i.i.i.i.i.i.i1849
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1856
]
if.then.i.i.i.i.i.i.i1849: ; preds = %if.end6.i.i.i.i.i1848
%1131 = load i8, i8* %1125, align 1, !tbaa !25
store i8 %1131, i8* %1130, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1856
if.end.i.i.i.i.i.i.i.i1850: ; preds = %if.end6.i.i.i.i.i1848
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1130, i8* align 1 %1125, i64 %1126, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1856
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1856: ; preds = %if.end.i.i.i.i.i.i.i.i1850, %if.then.i.i.i.i.i.i.i1849, %if.end6.i.i.i.i.i1848
%1132 = load i64, i64* %__dnew.i.i.i.i.i1840, align 8, !tbaa !54, !noalias !178
%_M_string_length.i.i.i.i.i.i.i1851 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp421, i64 0, i32 1
store i64 %1132, i64* %_M_string_length.i.i.i.i.i.i.i1851, align 8, !tbaa !28, !alias.scope !178
%1133 = load i8*, i8** %_M_p.i.i.i.i.i.i1847, align 8, !tbaa !2, !alias.scope !178
%arrayidx.i.i.i.i.i.i1852 = getelementptr inbounds i8, i8* %1133, i64 %1132
store i8 0, i8* %arrayidx.i.i.i.i.i.i1852, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1127) #21, !noalias !178
%1134 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1851, align 8, !tbaa !28, !alias.scope !178
%1135 = or i64 %1134, 3
%cmp.i.i.i1855 = icmp eq i64 %1135, 4611686018427387903
br i1 %cmp.i.i.i1855, label %if.then.i.i.i1857, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1860
if.then.i.i.i1857: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1856
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1858 unwind label %lpad.i1863
.noexc.i1858: ; preds = %if.then.i.i.i1857
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1860: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1856
%call2.i2.i1859 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp421, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0), i64 4)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1866 unwind label %lpad.i1863
lpad.i1863: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1860, %if.then.i.i.i1857
%1136 = landingpad { i8*, i32 }
cleanup
%1137 = load i8*, i8** %_M_p.i.i.i.i.i.i1847, align 8, !tbaa !2, !alias.scope !178
%arraydecay.i.i.i.i.i1861 = bitcast %union.anon* %1123 to i8*
%cmp.i.i.i.i1862 = icmp eq i8* %1137, %arraydecay.i.i.i.i.i1861
br i1 %cmp.i.i.i.i1862, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1865, label %if.then.i.i3.i1864
if.then.i.i3.i1864: ; preds = %lpad.i1863
call void @_ZdlPv(i8* %1137) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1865
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1865: ; preds = %if.then.i.i3.i1864, %lpad.i1863
resume { i8*, i32 } %1136
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1866: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1860
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp421)
to label %invoke.cont423 unwind label %lpad422
invoke.cont423: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1866
%1138 = load i8*, i8** %_M_p.i.i.i.i.i.i1847, align 8, !tbaa !2
%arraydecay.i.i.i.i1868 = bitcast %union.anon* %1123 to i8*
%cmp.i.i.i1869 = icmp eq i8* %1138, %arraydecay.i.i.i.i1868
br i1 %cmp.i.i.i1869, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1872, label %if.then.i.i1870
if.then.i.i1870: ; preds = %invoke.cont423
call void @_ZdlPv(i8* %1138) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1872
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1872: ; preds = %invoke.cont423, %if.then.i.i1870
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1122) #21
%1139 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp426 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1139) #21
%1140 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp427 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1140) #21
%1141 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp427, i64 0, i32 2
%1142 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp427 to %union.anon**
store %union.anon* %1141, %union.anon** %1142, align 8, !tbaa !33, !alias.scope !181
%1143 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !181
%1144 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !181
%1145 = bitcast i64* %__dnew.i.i.i.i.i1873 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1145) #21, !noalias !181
store i64 %1144, i64* %__dnew.i.i.i.i.i1873, align 8, !tbaa !54, !noalias !181
%cmp3.i.i.i.i.i1874 = icmp ugt i64 %1144, 15
br i1 %cmp3.i.i.i.i.i1874, label %if.then4.i.i.i.i.i1879, label %if.end.if.end6_crit_edge.i.i.i.i.i1875
if.end.if.end6_crit_edge.i.i.i.i.i1875: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1872
%1146 = bitcast %union.anon* %1141 to i8*
br label %if.end6.i.i.i.i.i1881
if.then4.i.i.i.i.i1879: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1872
%call5.i.i.i14.i.i1876 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp427, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i1873, i64 0)
%_M_p.i18.i.i.i.i.i1877 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp427, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i1876, i8** %_M_p.i18.i.i.i.i.i1877, align 8, !tbaa !2, !alias.scope !181
%1147 = load i64, i64* %__dnew.i.i.i.i.i1873, align 8, !tbaa !54, !noalias !181
%_M_allocated_capacity.i.i.i.i.i.i1878 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp427, i64 0, i32 2, i32 0
store i64 %1147, i64* %_M_allocated_capacity.i.i.i.i.i.i1878, align 8, !tbaa !25, !alias.scope !181
br label %if.end6.i.i.i.i.i1881
if.end6.i.i.i.i.i1881: ; preds = %if.then4.i.i.i.i.i1879, %if.end.if.end6_crit_edge.i.i.i.i.i1875
%1148 = phi i8* [ %1146, %if.end.if.end6_crit_edge.i.i.i.i.i1875 ], [ %call5.i.i.i14.i.i1876, %if.then4.i.i.i.i.i1879 ]
%_M_p.i.i.i.i.i.i1880 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp427, i64 0, i32 0, i32 0
switch i64 %1144, label %if.end.i.i.i.i.i.i.i.i1883 [
i64 1, label %if.then.i.i.i.i.i.i.i1882
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1889
]
if.then.i.i.i.i.i.i.i1882: ; preds = %if.end6.i.i.i.i.i1881
%1149 = load i8, i8* %1143, align 1, !tbaa !25
store i8 %1149, i8* %1148, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1889
if.end.i.i.i.i.i.i.i.i1883: ; preds = %if.end6.i.i.i.i.i1881
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1148, i8* align 1 %1143, i64 %1144, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1889
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1889: ; preds = %if.end.i.i.i.i.i.i.i.i1883, %if.then.i.i.i.i.i.i.i1882, %if.end6.i.i.i.i.i1881
%1150 = load i64, i64* %__dnew.i.i.i.i.i1873, align 8, !tbaa !54, !noalias !181
%_M_string_length.i.i.i.i.i.i.i1884 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp427, i64 0, i32 1
store i64 %1150, i64* %_M_string_length.i.i.i.i.i.i.i1884, align 8, !tbaa !28, !alias.scope !181
%1151 = load i8*, i8** %_M_p.i.i.i.i.i.i1880, align 8, !tbaa !2, !alias.scope !181
%arrayidx.i.i.i.i.i.i1885 = getelementptr inbounds i8, i8* %1151, i64 %1150
store i8 0, i8* %arrayidx.i.i.i.i.i.i1885, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1145) #21, !noalias !181
%1152 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i1884, align 8, !tbaa !28, !alias.scope !181
%sub3.i.i.i1887 = sub i64 4611686018427387903, %1152
%cmp.i.i.i1888 = icmp ult i64 %sub3.i.i.i1887, 3
br i1 %cmp.i.i.i1888, label %if.then.i.i.i1890, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1893
if.then.i.i.i1890: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1889
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i1891 unwind label %lpad.i1896
.noexc.i1891: ; preds = %if.then.i.i.i1890
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1893: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i1889
%call2.i2.i1892 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp427, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0), i64 3)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1899 unwind label %lpad.i1896
lpad.i1896: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1893, %if.then.i.i.i1890
%1153 = landingpad { i8*, i32 }
cleanup
%1154 = load i8*, i8** %_M_p.i.i.i.i.i.i1880, align 8, !tbaa !2, !alias.scope !181
%arraydecay.i.i.i.i.i1894 = bitcast %union.anon* %1141 to i8*
%cmp.i.i.i.i1895 = icmp eq i8* %1154, %arraydecay.i.i.i.i.i1894
br i1 %cmp.i.i.i.i1895, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1898, label %if.then.i.i3.i1897
if.then.i.i3.i1897: ; preds = %lpad.i1896
call void @_ZdlPv(i8* %1154) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1898
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i1898: ; preds = %if.then.i.i3.i1897, %lpad.i1896
resume { i8*, i32 } %1153
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1899: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i1893
%1155 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !184
%1156 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !184
%call3.i.i19001912 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp427, i8* %1155, i64 %1156)
to label %call3.i.i1900.noexc unwind label %lpad428
call3.i.i1900.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1899
%1157 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp426, i64 0, i32 2
%1158 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp426 to %union.anon**
store %union.anon* %1157, %union.anon** %1158, align 8, !tbaa !33, !alias.scope !184
%_M_p.i.i34.i.i1901 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i19001912, i64 0, i32 0, i32 0
%1159 = load i8*, i8** %_M_p.i.i34.i.i1901, align 8, !tbaa !2
%1160 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i19001912, i64 0, i32 2
%arraydecay.i.i.i.i1902 = bitcast %union.anon* %1160 to i8*
%cmp.i.i.i1903 = icmp eq i8* %1159, %arraydecay.i.i.i.i1902
br i1 %cmp.i.i.i1903, label %if.then.i.i1905, label %if.else.i.i1909
if.then.i.i1905: ; preds = %call3.i.i1900.noexc
%arraydecay.i.i.i1904 = bitcast %union.anon* %1157 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1904, i8* nonnull align 1 dereferenceable(16) %1159, i64 16, i1 false) #21
br label %invoke.cont429
if.else.i.i1909: ; preds = %call3.i.i1900.noexc
%_M_p.i32.i.i1906 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp426, i64 0, i32 0, i32 0
store i8* %1159, i8** %_M_p.i32.i.i1906, align 8, !tbaa !2, !alias.scope !184
%_M_allocated_capacity.i.i1907 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i19001912, i64 0, i32 2, i32 0
%1161 = load i64, i64* %_M_allocated_capacity.i.i1907, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1908 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp426, i64 0, i32 2, i32 0
store i64 %1161, i64* %_M_allocated_capacity.i.i.i1908, align 8, !tbaa !25, !alias.scope !184
br label %invoke.cont429
invoke.cont429: ; preds = %if.else.i.i1909, %if.then.i.i1905
%_M_string_length.i31.i.i1910 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i19001912, i64 0, i32 1
%1162 = load i64, i64* %_M_string_length.i31.i.i1910, align 8, !tbaa !28
%_M_string_length.i.i2.i1911 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp426, i64 0, i32 1
store i64 %1162, i64* %_M_string_length.i.i2.i1911, align 8, !tbaa !28, !alias.scope !184
%1163 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i19001912 to %union.anon**
store %union.anon* %1160, %union.anon** %1163, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1910, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1902, align 1, !tbaa !25
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_ccfile_printer, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp426)
to label %invoke.cont431 unwind label %lpad430
invoke.cont431: ; preds = %invoke.cont429
%_M_p.i.i.i.i1914 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp426, i64 0, i32 0, i32 0
%1164 = load i8*, i8** %_M_p.i.i.i.i1914, align 8, !tbaa !2
%arraydecay.i.i.i.i1915 = bitcast %union.anon* %1157 to i8*
%cmp.i.i.i1916 = icmp eq i8* %1164, %arraydecay.i.i.i.i1915
br i1 %cmp.i.i.i1916, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1919, label %if.then.i.i1917
if.then.i.i1917: ; preds = %invoke.cont431
call void @_ZdlPv(i8* %1164) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1919
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1919: ; preds = %invoke.cont431, %if.then.i.i1917
%1165 = load i8*, i8** %_M_p.i.i.i.i.i.i1880, align 8, !tbaa !2
%arraydecay.i.i.i.i1921 = bitcast %union.anon* %1141 to i8*
%cmp.i.i.i1922 = icmp eq i8* %1165, %arraydecay.i.i.i.i1921
br i1 %cmp.i.i.i1922, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1925, label %if.then.i.i1923
if.then.i.i1923: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1919
call void @_ZdlPv(i8* %1165) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1925
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1925: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1919, %if.then.i.i1923
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1140) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1139) #21
%1166 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool436 = icmp eq i8 %1166, 0
br i1 %tobool436, label %if.end451, label %if.then437
if.then437: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1925
%1167 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp438 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1167) #21
%1168 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp439 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1168) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp439, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%_M_string_length.i.i.i.i1927 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp439, i64 0, i32 1
%1169 = load i64, i64* %_M_string_length.i.i.i.i1927, align 8, !tbaa !28, !noalias !187
%1170 = or i64 %1169, 1
%cmp.i.i.i1929 = icmp eq i64 %1170, 4611686018427387903
br i1 %cmp.i.i.i1929, label %if.then.i.i.i1930, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1935
if.then.i.i.i1930: ; preds = %if.then437
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc1944 unwind label %lpad440
.noexc1944: ; preds = %if.then.i.i.i1930
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1935: ; preds = %if.then437
%call2.i.i19311945 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp439, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.37, i64 0, i64 0), i64 2)
to label %call2.i.i1931.noexc unwind label %lpad440
call2.i.i1931.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1935
%1171 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp438, i64 0, i32 2
%1172 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp438 to %union.anon**
store %union.anon* %1171, %union.anon** %1172, align 8, !tbaa !33, !alias.scope !187
%_M_p.i.i34.i.i1932 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i19311945, i64 0, i32 0, i32 0
%1173 = load i8*, i8** %_M_p.i.i34.i.i1932, align 8, !tbaa !2
%1174 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i19311945, i64 0, i32 2
%arraydecay.i.i.i.i1933 = bitcast %union.anon* %1174 to i8*
%cmp.i.i2.i1934 = icmp eq i8* %1173, %arraydecay.i.i.i.i1933
br i1 %cmp.i.i2.i1934, label %if.then.i.i1937, label %if.else.i.i1941
if.then.i.i1937: ; preds = %call2.i.i1931.noexc
%arraydecay.i.i.i1936 = bitcast %union.anon* %1171 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i1936, i8* nonnull align 1 dereferenceable(16) %1173, i64 16, i1 false) #21
br label %invoke.cont441
if.else.i.i1941: ; preds = %call2.i.i1931.noexc
%_M_p.i32.i.i1938 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp438, i64 0, i32 0, i32 0
store i8* %1173, i8** %_M_p.i32.i.i1938, align 8, !tbaa !2, !alias.scope !187
%_M_allocated_capacity.i.i1939 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i19311945, i64 0, i32 2, i32 0
%1175 = load i64, i64* %_M_allocated_capacity.i.i1939, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i1940 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp438, i64 0, i32 2, i32 0
store i64 %1175, i64* %_M_allocated_capacity.i.i.i1940, align 8, !tbaa !25, !alias.scope !187
br label %invoke.cont441
invoke.cont441: ; preds = %if.else.i.i1941, %if.then.i.i1937
%_M_string_length.i31.i.i1942 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i19311945, i64 0, i32 1
%1176 = load i64, i64* %_M_string_length.i31.i.i1942, align 8, !tbaa !28
%_M_string_length.i.i.i1943 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp438, i64 0, i32 1
store i64 %1176, i64* %_M_string_length.i.i.i1943, align 8, !tbaa !28, !alias.scope !187
%1177 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i19311945 to %union.anon**
store %union.anon* %1174, %union.anon** %1177, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i1942, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i1933, align 1, !tbaa !25
%_M_p.i.i.i1947 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp438, i64 0, i32 0, i32 0
%1178 = load i8*, i8** %_M_p.i.i.i1947, align 8, !tbaa !2
%1179 = load i64, i64* %_M_string_length.i.i.i1943, align 8, !tbaa !28
%call2.i19491950 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %1178, i64 %1179)
to label %invoke.cont443 unwind label %lpad442
invoke.cont443: ; preds = %invoke.cont441
%call.i19551956 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i19491950)
to label %invoke.cont445 unwind label %lpad442
invoke.cont445: ; preds = %invoke.cont443
%1180 = load i8*, i8** %_M_p.i.i.i1947, align 8, !tbaa !2
%arraydecay.i.i.i.i1959 = bitcast %union.anon* %1171 to i8*
%cmp.i.i.i1960 = icmp eq i8* %1180, %arraydecay.i.i.i.i1959
br i1 %cmp.i.i.i1960, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1963, label %if.then.i.i1961
if.then.i.i1961: ; preds = %invoke.cont445
call void @_ZdlPv(i8* %1180) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1963
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1963: ; preds = %invoke.cont445, %if.then.i.i1961
%_M_p.i.i.i.i1964 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp439, i64 0, i32 0, i32 0
%1181 = load i8*, i8** %_M_p.i.i.i.i1964, align 8, !tbaa !2
%1182 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp439, i64 0, i32 2
%arraydecay.i.i.i.i1965 = bitcast %union.anon* %1182 to i8*
%cmp.i.i.i1966 = icmp eq i8* %1181, %arraydecay.i.i.i.i1965
br i1 %cmp.i.i.i1966, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1969, label %if.then.i.i1967
if.then.i.i1967: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1963
call void @_ZdlPv(i8* %1181) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1969
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1969: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1963, %if.then.i.i1967
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1168) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1167) #21
br label %if.end451
lpad422: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1866
%1183 = landingpad { i8*, i32 }
cleanup
%1184 = extractvalue { i8*, i32 } %1183, 0
%1185 = extractvalue { i8*, i32 } %1183, 1
%1186 = load i8*, i8** %_M_p.i.i.i.i.i.i1847, align 8, !tbaa !2
%arraydecay.i.i.i.i1971 = bitcast %union.anon* %1123 to i8*
%cmp.i.i.i1972 = icmp eq i8* %1186, %arraydecay.i.i.i.i1971
br i1 %cmp.i.i.i1972, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1975, label %if.then.i.i1973
if.then.i.i1973: ; preds = %lpad422
call void @_ZdlPv(i8* %1186) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1975
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1975: ; preds = %lpad422, %if.then.i.i1973
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1122) #21
br label %ehcleanup675
lpad428: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit1899
%1187 = landingpad { i8*, i32 }
cleanup
%1188 = extractvalue { i8*, i32 } %1187, 0
%1189 = extractvalue { i8*, i32 } %1187, 1
br label %ehcleanup433
lpad430: ; preds = %invoke.cont429
%1190 = landingpad { i8*, i32 }
cleanup
%1191 = extractvalue { i8*, i32 } %1190, 0
%1192 = extractvalue { i8*, i32 } %1190, 1
%_M_p.i.i.i.i1976 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp426, i64 0, i32 0, i32 0
%1193 = load i8*, i8** %_M_p.i.i.i.i1976, align 8, !tbaa !2
%arraydecay.i.i.i.i1977 = bitcast %union.anon* %1157 to i8*
%cmp.i.i.i1978 = icmp eq i8* %1193, %arraydecay.i.i.i.i1977
br i1 %cmp.i.i.i1978, label %ehcleanup433, label %if.then.i.i1979
if.then.i.i1979: ; preds = %lpad430
call void @_ZdlPv(i8* %1193) #21
br label %ehcleanup433
ehcleanup433: ; preds = %if.then.i.i1979, %lpad430, %lpad428
%exn.slot.9 = phi i8* [ %1188, %lpad428 ], [ %1191, %lpad430 ], [ %1191, %if.then.i.i1979 ]
%ehselector.slot.9 = phi i32 [ %1189, %lpad428 ], [ %1192, %lpad430 ], [ %1192, %if.then.i.i1979 ]
%1194 = load i8*, i8** %_M_p.i.i.i.i.i.i1880, align 8, !tbaa !2
%arraydecay.i.i.i.i1983 = bitcast %union.anon* %1141 to i8*
%cmp.i.i.i1984 = icmp eq i8* %1194, %arraydecay.i.i.i.i1983
br i1 %cmp.i.i.i1984, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1987, label %if.then.i.i1985
if.then.i.i1985: ; preds = %ehcleanup433
call void @_ZdlPv(i8* %1194) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1987
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1987: ; preds = %ehcleanup433, %if.then.i.i1985
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1140) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1139) #21
br label %ehcleanup675
lpad440: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i1935, %if.then.i.i.i1930
%1195 = landingpad { i8*, i32 }
cleanup
%1196 = extractvalue { i8*, i32 } %1195, 0
%1197 = extractvalue { i8*, i32 } %1195, 1
br label %ehcleanup448
lpad442: ; preds = %invoke.cont443, %invoke.cont441
%1198 = landingpad { i8*, i32 }
cleanup
%1199 = extractvalue { i8*, i32 } %1198, 0
%1200 = extractvalue { i8*, i32 } %1198, 1
%1201 = load i8*, i8** %_M_p.i.i.i1947, align 8, !tbaa !2
%arraydecay.i.i.i.i1989 = bitcast %union.anon* %1171 to i8*
%cmp.i.i.i1990 = icmp eq i8* %1201, %arraydecay.i.i.i.i1989
br i1 %cmp.i.i.i1990, label %ehcleanup448, label %if.then.i.i1991
if.then.i.i1991: ; preds = %lpad442
call void @_ZdlPv(i8* %1201) #21
br label %ehcleanup448
ehcleanup448: ; preds = %if.then.i.i1991, %lpad442, %lpad440
%exn.slot.10 = phi i8* [ %1196, %lpad440 ], [ %1199, %lpad442 ], [ %1199, %if.then.i.i1991 ]
%ehselector.slot.10 = phi i32 [ %1197, %lpad440 ], [ %1200, %lpad442 ], [ %1200, %if.then.i.i1991 ]
%_M_p.i.i.i.i1994 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp439, i64 0, i32 0, i32 0
%1202 = load i8*, i8** %_M_p.i.i.i.i1994, align 8, !tbaa !2
%1203 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp439, i64 0, i32 2
%arraydecay.i.i.i.i1995 = bitcast %union.anon* %1203 to i8*
%cmp.i.i.i1996 = icmp eq i8* %1202, %arraydecay.i.i.i.i1995
br i1 %cmp.i.i.i1996, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1999, label %if.then.i.i1997
if.then.i.i1997: ; preds = %ehcleanup448
call void @_ZdlPv(i8* %1202) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1999
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1999: ; preds = %ehcleanup448, %if.then.i.i1997
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1168) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1167) #21
br label %ehcleanup675
if.end451: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1925, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1969
%vtable.i2000 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2001 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2000, i64 9
%1204 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2001, align 8
call void %1204(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_rewritek_h_class", %"struct.kc::view_gen_rewritek_h_class"* @_ZN2kc19view_gen_rewritek_hE, i64 0, i32 0))
%call452 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.38, i64 0, i64 0), i32 -1)
%call453 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call452)
%call455 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.38, i64 0, i64 0), i32 -1)
%call456 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call455)
%inc_type457 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call456, i64 0, i32 0, i32 1
%1205 = load i32, i32* %inc_type457, align 8, !tbaa !85
%cmp.i2002 = icmp eq i32 %1205, 0
%inc1.i2003 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call453, i64 0, i32 0, i32 2, i32 0
%inc2.i2004 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call453, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i2005 = select i1 %cmp.i2002, %"class.kc::impl_includedeclarations"** %inc1.i2003, %"class.kc::impl_includedeclarations"** %inc2.i2004
%1206 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i2005 to %"class.kc::impl_abstract_phylum"**
%1207 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1206, align 8, !tbaa !9
%1208 = bitcast %"class.kc::impl_abstract_phylum"* %1207 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2006 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1208, align 8, !tbaa !19
%vfn.i2007 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2006, i64 9
%1209 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2007, align 8
call void %1209(%"class.kc::impl_abstract_phylum"* %1207, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i2008 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2009 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2008, i64 9
%1210 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2009, align 8
call void %1210(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i2010 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2011 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2010, i64 9
%1211 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2011, align 8
call void %1211(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_rview_class_decl_class", %"struct.kc::view_rview_class_decl_class"* @_ZN2kc21view_rview_class_declE, i64 0, i32 0))
%vtable.i2012 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2013 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2012, i64 9
%1212 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2013, align 8
call void %1212(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_rewritedecls_h_class", %"struct.kc::view_gen_rewritedecls_h_class"* @_ZN2kc23view_gen_rewritedecls_hE, i64 0, i32 0))
%vtable.i2014 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2015 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2014, i64 9
%1213 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2015, align 8
call void %1213(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%vtable.i2016 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2017 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2016, i64 9
%1214 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2017, align 8
call void %1214(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_end_rewritek_h_class", %"struct.kc::view_gen_end_rewritek_h_class"* @_ZN2kc23view_gen_end_rewritek_hE, i64 0, i32 0))
%vtable.i2018 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2019 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2018, i64 9
%1215 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2019, align 8
call void %1215(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_rewritek_c_class", %"struct.kc::view_gen_rewritek_c_class"* @_ZN2kc19view_gen_rewritek_cE, i64 0, i32 0))
%vtable.i2020 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2021 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2020, i64 9
%1216 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2021, align 8
call void %1216(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%call459 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.39, i64 0, i64 0), i32 -1)
%call460 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call459)
%call462 = call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.39, i64 0, i64 0), i32 -1)
%call463 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call462)
%inc_type464 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call463, i64 0, i32 0, i32 1
%1217 = load i32, i32* %inc_type464, align 8, !tbaa !85
%cmp.i2022 = icmp eq i32 %1217, 0
%inc1.i2023 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call460, i64 0, i32 0, i32 2, i32 0
%inc2.i2024 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call460, i64 0, i32 0, i32 2, i32 1
%cond-lvalue.i2025 = select i1 %cmp.i2022, %"class.kc::impl_includedeclarations"** %inc1.i2023, %"class.kc::impl_includedeclarations"** %inc2.i2024
%1218 = bitcast %"class.kc::impl_includedeclarations"** %cond-lvalue.i2025 to %"class.kc::impl_abstract_phylum"**
%1219 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1218, align 8, !tbaa !9
%1220 = bitcast %"class.kc::impl_abstract_phylum"* %1219 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2026 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1220, align 8, !tbaa !19
%vfn.i2027 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2026, i64 9
%1221 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2027, align 8
call void %1221(%"class.kc::impl_abstract_phylum"* %1219, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i2028 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2029 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2028, i64 9
%1222 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2029, align 8
call void %1222(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%vtable.i2030 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2031 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2030, i64 9
%1223 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2031, align 8
call void %1223(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_rewritedefs_c_class", %"struct.kc::view_gen_rewritedefs_c_class"* @_ZN2kc22view_gen_rewritedefs_cE, i64 0, i32 0))
%vtable.i2032 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2033 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2032, i64 9
%1224 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2033, align 8
call void %1224(%"class.kc::impl_abstract_phylum"* nonnull %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%1225 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2034 = icmp eq %struct._IO_FILE* %1225, null
br i1 %tobool.i2034, label %_ZN14kc_filePrinter6fcloseEv.exit2039.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2039
_ZN14kc_filePrinter6fcloseEv.exit2039.thread: ; preds = %if.end451
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end472
_ZN14kc_filePrinter6fcloseEv.exit2039: ; preds = %if.end451
%call.i2035 = call i32 @fclose(%struct._IO_FILE* nonnull %1225)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp467 = icmp eq i32 %call.i2035, -1
br i1 %cmp467, label %if.then468, label %if.end472
if.then468: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2039
%call469 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1226 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call469 to %"class.kc::impl_fileline"*
%call470 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.40, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call471 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1226, %"class.kc::impl_problem"* %call470)
%1227 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call471, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1227)
br label %if.end472
if.end472: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2039.thread, %if.then468, %_ZN14kc_filePrinter6fcloseEv.exit2039
%1228 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2040 = icmp eq %struct._IO_FILE* %1228, null
br i1 %tobool.i2040, label %_ZN14kc_filePrinter6fcloseEv.exit2045.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2045
_ZN14kc_filePrinter6fcloseEv.exit2045.thread: ; preds = %if.end472
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end479
_ZN14kc_filePrinter6fcloseEv.exit2045: ; preds = %if.end472
%call.i2041 = call i32 @fclose(%struct._IO_FILE* nonnull %1228)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp474 = icmp eq i32 %call.i2041, -1
br i1 %cmp474, label %if.then475, label %if.end479
if.then475: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2045
%call476 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1229 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call476 to %"class.kc::impl_fileline"*
%call477 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.41, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call478 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1229, %"class.kc::impl_problem"* %call477)
%1230 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call478, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1230)
br label %if.end479
if.end479: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2045.thread, %if.then475, %_ZN14kc_filePrinter6fcloseEv.exit2045
%1231 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp480 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1231) #21
%1232 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp481 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1232) #21
%1233 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp481, i64 0, i32 2
%1234 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp481 to %union.anon**
store %union.anon* %1233, %union.anon** %1234, align 8, !tbaa !33, !alias.scope !190
%1235 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !190
%1236 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !190
%1237 = bitcast i64* %__dnew.i.i.i.i.i2046 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1237) #21, !noalias !190
store i64 %1236, i64* %__dnew.i.i.i.i.i2046, align 8, !tbaa !54, !noalias !190
%cmp3.i.i.i.i.i2047 = icmp ugt i64 %1236, 15
br i1 %cmp3.i.i.i.i.i2047, label %if.then4.i.i.i.i.i2052, label %if.end.if.end6_crit_edge.i.i.i.i.i2048
if.end.if.end6_crit_edge.i.i.i.i.i2048: ; preds = %if.end479
%1238 = bitcast %union.anon* %1233 to i8*
br label %if.end6.i.i.i.i.i2054
if.then4.i.i.i.i.i2052: ; preds = %if.end479
%call5.i.i.i14.i.i2049 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp481, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2046, i64 0)
%_M_p.i18.i.i.i.i.i2050 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp481, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2049, i8** %_M_p.i18.i.i.i.i.i2050, align 8, !tbaa !2, !alias.scope !190
%1239 = load i64, i64* %__dnew.i.i.i.i.i2046, align 8, !tbaa !54, !noalias !190
%_M_allocated_capacity.i.i.i.i.i.i2051 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp481, i64 0, i32 2, i32 0
store i64 %1239, i64* %_M_allocated_capacity.i.i.i.i.i.i2051, align 8, !tbaa !25, !alias.scope !190
br label %if.end6.i.i.i.i.i2054
if.end6.i.i.i.i.i2054: ; preds = %if.then4.i.i.i.i.i2052, %if.end.if.end6_crit_edge.i.i.i.i.i2048
%1240 = phi i8* [ %1238, %if.end.if.end6_crit_edge.i.i.i.i.i2048 ], [ %call5.i.i.i14.i.i2049, %if.then4.i.i.i.i.i2052 ]
%_M_p.i.i.i.i.i.i2053 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp481, i64 0, i32 0, i32 0
switch i64 %1236, label %if.end.i.i.i.i.i.i.i.i2056 [
i64 1, label %if.then.i.i.i.i.i.i.i2055
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2062
]
if.then.i.i.i.i.i.i.i2055: ; preds = %if.end6.i.i.i.i.i2054
%1241 = load i8, i8* %1235, align 1, !tbaa !25
store i8 %1241, i8* %1240, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2062
if.end.i.i.i.i.i.i.i.i2056: ; preds = %if.end6.i.i.i.i.i2054
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1240, i8* align 1 %1235, i64 %1236, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2062
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2062: ; preds = %if.end.i.i.i.i.i.i.i.i2056, %if.then.i.i.i.i.i.i.i2055, %if.end6.i.i.i.i.i2054
%1242 = load i64, i64* %__dnew.i.i.i.i.i2046, align 8, !tbaa !54, !noalias !190
%_M_string_length.i.i.i.i.i.i.i2057 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp481, i64 0, i32 1
store i64 %1242, i64* %_M_string_length.i.i.i.i.i.i.i2057, align 8, !tbaa !28, !alias.scope !190
%1243 = load i8*, i8** %_M_p.i.i.i.i.i.i2053, align 8, !tbaa !2, !alias.scope !190
%arrayidx.i.i.i.i.i.i2058 = getelementptr inbounds i8, i8* %1243, i64 %1242
store i8 0, i8* %arrayidx.i.i.i.i.i.i2058, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1237) #21, !noalias !190
%1244 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i2057, align 8, !tbaa !28, !alias.scope !190
%sub3.i.i.i2060 = sub i64 4611686018427387903, %1244
%cmp.i.i.i2061 = icmp ult i64 %sub3.i.i.i2060, 3
br i1 %cmp.i.i.i2061, label %if.then.i.i.i2063, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2066
if.then.i.i.i2063: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2062
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i2064 unwind label %lpad.i2069
.noexc.i2064: ; preds = %if.then.i.i.i2063
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2066: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2062
%call2.i2.i2065 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp481, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0), i64 3)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2072 unwind label %lpad.i2069
lpad.i2069: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2066, %if.then.i.i.i2063
%1245 = landingpad { i8*, i32 }
cleanup
%1246 = load i8*, i8** %_M_p.i.i.i.i.i.i2053, align 8, !tbaa !2, !alias.scope !190
%arraydecay.i.i.i.i.i2067 = bitcast %union.anon* %1233 to i8*
%cmp.i.i.i.i2068 = icmp eq i8* %1246, %arraydecay.i.i.i.i.i2067
br i1 %cmp.i.i.i.i2068, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2071, label %if.then.i.i3.i2070
if.then.i.i3.i2070: ; preds = %lpad.i2069
call void @_ZdlPv(i8* %1246) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2071
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2071: ; preds = %if.then.i.i3.i2070, %lpad.i2069
resume { i8*, i32 } %1245
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2072: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2066
%1247 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 0, i32 0), align 8, !tbaa !2, !noalias !193
%1248 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23, i32 1), align 8, !tbaa !28, !noalias !193
%call3.i.i20732085 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp481, i8* %1247, i64 %1248)
to label %call3.i.i2073.noexc unwind label %lpad482
call3.i.i2073.noexc: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2072
%1249 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp480, i64 0, i32 2
%1250 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp480 to %union.anon**
store %union.anon* %1249, %union.anon** %1250, align 8, !tbaa !33, !alias.scope !193
%_M_p.i.i34.i.i2074 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i20732085, i64 0, i32 0, i32 0
%1251 = load i8*, i8** %_M_p.i.i34.i.i2074, align 8, !tbaa !2
%1252 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i20732085, i64 0, i32 2
%arraydecay.i.i.i.i2075 = bitcast %union.anon* %1252 to i8*
%cmp.i.i.i2076 = icmp eq i8* %1251, %arraydecay.i.i.i.i2075
br i1 %cmp.i.i.i2076, label %if.then.i.i2078, label %if.else.i.i2082
if.then.i.i2078: ; preds = %call3.i.i2073.noexc
%arraydecay.i.i.i2077 = bitcast %union.anon* %1249 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i2077, i8* nonnull align 1 dereferenceable(16) %1251, i64 16, i1 false) #21
br label %invoke.cont483
if.else.i.i2082: ; preds = %call3.i.i2073.noexc
%_M_p.i32.i.i2079 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp480, i64 0, i32 0, i32 0
store i8* %1251, i8** %_M_p.i32.i.i2079, align 8, !tbaa !2, !alias.scope !193
%_M_allocated_capacity.i.i2080 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i20732085, i64 0, i32 2, i32 0
%1253 = load i64, i64* %_M_allocated_capacity.i.i2080, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i2081 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp480, i64 0, i32 2, i32 0
store i64 %1253, i64* %_M_allocated_capacity.i.i.i2081, align 8, !tbaa !25, !alias.scope !193
br label %invoke.cont483
invoke.cont483: ; preds = %if.else.i.i2082, %if.then.i.i2078
%_M_string_length.i31.i.i2083 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i20732085, i64 0, i32 1
%1254 = load i64, i64* %_M_string_length.i31.i.i2083, align 8, !tbaa !28
%_M_string_length.i.i2.i2084 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp480, i64 0, i32 1
store i64 %1254, i64* %_M_string_length.i.i2.i2084, align 8, !tbaa !28, !alias.scope !193
%1255 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i20732085 to %union.anon**
store %union.anon* %1252, %union.anon** %1255, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i2083, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i2075, align 1, !tbaa !25
%ref.tmp480.idx = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp480, i64 0, i32 0, i32 0
%ref.tmp480.idx.val = load i8*, i8** %ref.tmp480.idx, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* %ref.tmp480.idx.val)
to label %invoke.cont485 unwind label %lpad484
invoke.cont485: ; preds = %invoke.cont483
%1256 = load i8*, i8** %ref.tmp480.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i2088 = bitcast %union.anon* %1249 to i8*
%cmp.i.i.i2089 = icmp eq i8* %1256, %arraydecay.i.i.i.i2088
br i1 %cmp.i.i.i2089, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2092, label %if.then.i.i2090
if.then.i.i2090: ; preds = %invoke.cont485
call void @_ZdlPv(i8* %1256) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2092
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2092: ; preds = %invoke.cont485, %if.then.i.i2090
%1257 = load i8*, i8** %_M_p.i.i.i.i.i.i2053, align 8, !tbaa !2
%arraydecay.i.i.i.i2094 = bitcast %union.anon* %1233 to i8*
%cmp.i.i.i2095 = icmp eq i8* %1257, %arraydecay.i.i.i.i2094
br i1 %cmp.i.i.i2095, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2098, label %if.then.i.i2096
if.then.i.i2096: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2092
call void @_ZdlPv(i8* %1257) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2098
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2098: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2092, %if.then.i.i2096
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1232) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1231) #21
%1258 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp490 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1258) #21
%1259 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp490, i64 0, i32 2
%1260 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp490 to %union.anon**
store %union.anon* %1259, %union.anon** %1260, align 8, !tbaa !33, !alias.scope !196
%1261 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !196
%1262 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !196
%1263 = bitcast i64* %__dnew.i.i.i.i.i2099 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1263) #21, !noalias !196
store i64 %1262, i64* %__dnew.i.i.i.i.i2099, align 8, !tbaa !54, !noalias !196
%cmp3.i.i.i.i.i2100 = icmp ugt i64 %1262, 15
br i1 %cmp3.i.i.i.i.i2100, label %if.then4.i.i.i.i.i2105, label %if.end.if.end6_crit_edge.i.i.i.i.i2101
if.end.if.end6_crit_edge.i.i.i.i.i2101: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2098
%1264 = bitcast %union.anon* %1259 to i8*
br label %if.end6.i.i.i.i.i2107
if.then4.i.i.i.i.i2105: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2098
%call5.i.i.i14.i.i2102 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp490, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2099, i64 0)
%_M_p.i18.i.i.i.i.i2103 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp490, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2102, i8** %_M_p.i18.i.i.i.i.i2103, align 8, !tbaa !2, !alias.scope !196
%1265 = load i64, i64* %__dnew.i.i.i.i.i2099, align 8, !tbaa !54, !noalias !196
%_M_allocated_capacity.i.i.i.i.i.i2104 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp490, i64 0, i32 2, i32 0
store i64 %1265, i64* %_M_allocated_capacity.i.i.i.i.i.i2104, align 8, !tbaa !25, !alias.scope !196
br label %if.end6.i.i.i.i.i2107
if.end6.i.i.i.i.i2107: ; preds = %if.then4.i.i.i.i.i2105, %if.end.if.end6_crit_edge.i.i.i.i.i2101
%1266 = phi i8* [ %1264, %if.end.if.end6_crit_edge.i.i.i.i.i2101 ], [ %call5.i.i.i14.i.i2102, %if.then4.i.i.i.i.i2105 ]
%_M_p.i.i.i.i.i.i2106 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp490, i64 0, i32 0, i32 0
switch i64 %1262, label %if.end.i.i.i.i.i.i.i.i2109 [
i64 1, label %if.then.i.i.i.i.i.i.i2108
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2115
]
if.then.i.i.i.i.i.i.i2108: ; preds = %if.end6.i.i.i.i.i2107
%1267 = load i8, i8* %1261, align 1, !tbaa !25
store i8 %1267, i8* %1266, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2115
if.end.i.i.i.i.i.i.i.i2109: ; preds = %if.end6.i.i.i.i.i2107
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1266, i8* align 1 %1261, i64 %1262, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2115
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2115: ; preds = %if.end.i.i.i.i.i.i.i.i2109, %if.then.i.i.i.i.i.i.i2108, %if.end6.i.i.i.i.i2107
%1268 = load i64, i64* %__dnew.i.i.i.i.i2099, align 8, !tbaa !54, !noalias !196
%_M_string_length.i.i.i.i.i.i.i2110 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp490, i64 0, i32 1
store i64 %1268, i64* %_M_string_length.i.i.i.i.i.i.i2110, align 8, !tbaa !28, !alias.scope !196
%1269 = load i8*, i8** %_M_p.i.i.i.i.i.i2106, align 8, !tbaa !2, !alias.scope !196
%arrayidx.i.i.i.i.i.i2111 = getelementptr inbounds i8, i8* %1269, i64 %1268
store i8 0, i8* %arrayidx.i.i.i.i.i.i2111, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1263) #21, !noalias !196
%1270 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i2110, align 8, !tbaa !28, !alias.scope !196
%1271 = or i64 %1270, 3
%cmp.i.i.i2114 = icmp eq i64 %1271, 4611686018427387903
br i1 %cmp.i.i.i2114, label %if.then.i.i.i2116, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2119
if.then.i.i.i2116: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2115
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i2117 unwind label %lpad.i2122
.noexc.i2117: ; preds = %if.then.i.i.i2116
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2119: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2115
%call2.i2.i2118 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp490, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.35, i64 0, i64 0), i64 4)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2125 unwind label %lpad.i2122
lpad.i2122: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2119, %if.then.i.i.i2116
%1272 = landingpad { i8*, i32 }
cleanup
%1273 = load i8*, i8** %_M_p.i.i.i.i.i.i2106, align 8, !tbaa !2, !alias.scope !196
%arraydecay.i.i.i.i.i2120 = bitcast %union.anon* %1259 to i8*
%cmp.i.i.i.i2121 = icmp eq i8* %1273, %arraydecay.i.i.i.i.i2120
br i1 %cmp.i.i.i.i2121, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2124, label %if.then.i.i3.i2123
if.then.i.i3.i2123: ; preds = %lpad.i2122
call void @_ZdlPv(i8* %1273) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2124
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2124: ; preds = %if.then.i.i3.i2123, %lpad.i2122
resume { i8*, i32 } %1272
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2125: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2119
%ref.tmp490.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i2106, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp490.idx.val)
to label %invoke.cont492 unwind label %lpad491
invoke.cont492: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2125
%1274 = load i8*, i8** %_M_p.i.i.i.i.i.i2106, align 8, !tbaa !2
%arraydecay.i.i.i.i2127 = bitcast %union.anon* %1259 to i8*
%cmp.i.i.i2128 = icmp eq i8* %1274, %arraydecay.i.i.i.i2127
br i1 %cmp.i.i.i2128, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2131, label %if.then.i.i2129
if.then.i.i2129: ; preds = %invoke.cont492
call void @_ZdlPv(i8* %1274) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2131
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2131: ; preds = %invoke.cont492, %if.then.i.i2129
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1258) #21
br label %if.end495
lpad482: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2072
%1275 = landingpad { i8*, i32 }
cleanup
%1276 = extractvalue { i8*, i32 } %1275, 0
%1277 = extractvalue { i8*, i32 } %1275, 1
br label %ehcleanup487
lpad484: ; preds = %invoke.cont483
%1278 = landingpad { i8*, i32 }
cleanup
%1279 = extractvalue { i8*, i32 } %1278, 0
%1280 = extractvalue { i8*, i32 } %1278, 1
%1281 = load i8*, i8** %ref.tmp480.idx, align 8, !tbaa !2
%arraydecay.i.i.i.i2133 = bitcast %union.anon* %1249 to i8*
%cmp.i.i.i2134 = icmp eq i8* %1281, %arraydecay.i.i.i.i2133
br i1 %cmp.i.i.i2134, label %ehcleanup487, label %if.then.i.i2135
if.then.i.i2135: ; preds = %lpad484
call void @_ZdlPv(i8* %1281) #21
br label %ehcleanup487
ehcleanup487: ; preds = %if.then.i.i2135, %lpad484, %lpad482
%exn.slot.11 = phi i8* [ %1276, %lpad482 ], [ %1279, %lpad484 ], [ %1279, %if.then.i.i2135 ]
%ehselector.slot.11 = phi i32 [ %1277, %lpad482 ], [ %1280, %lpad484 ], [ %1280, %if.then.i.i2135 ]
%1282 = load i8*, i8** %_M_p.i.i.i.i.i.i2053, align 8, !tbaa !2
%arraydecay.i.i.i.i2139 = bitcast %union.anon* %1233 to i8*
%cmp.i.i.i2140 = icmp eq i8* %1282, %arraydecay.i.i.i.i2139
br i1 %cmp.i.i.i2140, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2143, label %if.then.i.i2141
if.then.i.i2141: ; preds = %ehcleanup487
call void @_ZdlPv(i8* %1282) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2143
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2143: ; preds = %ehcleanup487, %if.then.i.i2141
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1232) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1231) #21
br label %ehcleanup675
lpad491: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2125
%1283 = landingpad { i8*, i32 }
cleanup
%1284 = extractvalue { i8*, i32 } %1283, 0
%1285 = extractvalue { i8*, i32 } %1283, 1
%1286 = load i8*, i8** %_M_p.i.i.i.i.i.i2106, align 8, !tbaa !2
%arraydecay.i.i.i.i2145 = bitcast %union.anon* %1259 to i8*
%cmp.i.i.i2146 = icmp eq i8* %1286, %arraydecay.i.i.i.i2145
br i1 %cmp.i.i.i2146, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2149, label %if.then.i.i2147
if.then.i.i2147: ; preds = %lpad491
call void @_ZdlPv(i8* %1286) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2149
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2149: ; preds = %lpad491, %if.then.i.i2147
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1258) #21
br label %ehcleanup675
if.end495: ; preds = %if.end418, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2131
%kc_fe_selvar_1496.02657 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** @Thefnfiles, align 8, !tbaa !9
%1287 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_1496.02657 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable4982658 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %1287, align 8, !tbaa !19
%1288 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable4982658, align 8
%call5002659 = call i32 %1288(%"class.kc::impl_fnfiles"* %kc_fe_selvar_1496.02657)
%cmp5012660 = icmp eq i32 %call5002659, 105
br i1 %cmp5012660, label %while.body502, label %while.end561
while.body502: ; preds = %if.end495, %if.end559
%kc_fe_selvar_1496.02661 = phi %"class.kc::impl_fnfiles"* [ %kc_fe_selvar_1496.0, %if.end559 ], [ %kc_fe_selvar_1496.02657, %if.end495 ]
%fnfile_1504 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_1496.02661, i64 0, i32 1
%1289 = load %"class.kc::impl_fnfile"*, %"class.kc::impl_fnfile"** %fnfile_1504, align 8, !tbaa !97
%1290 = getelementptr %"class.kc::impl_fnfile", %"class.kc::impl_fnfile"* %1289, i64 0, i32 0
%1291 = bitcast %"class.kc::impl_fnfile"* %1289 to i32 (%"class.kc::impl_abstract_phylum"*)***
%vtable508 = load i32 (%"class.kc::impl_abstract_phylum"*)**, i32 (%"class.kc::impl_abstract_phylum"*)*** %1291, align 8, !tbaa !19
%1292 = load i32 (%"class.kc::impl_abstract_phylum"*)*, i32 (%"class.kc::impl_abstract_phylum"*)** %vtable508, align 8
%call510 = call i32 %1292(%"class.kc::impl_abstract_phylum"* %1290)
%cmp511 = icmp eq i32 %call510, 106
br i1 %cmp511, label %if.then512, label %if.else558
if.then512: ; preds = %while.body502
%casestring_1 = getelementptr inbounds %"class.kc::impl_fnfile", %"class.kc::impl_fnfile"* %1289, i64 1
%1293 = bitcast %"class.kc::impl_fnfile"* %casestring_1 to %"class.kc::impl_casestring__Str"**
%1294 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** %1293, align 8, !tbaa !199
%call514 = call i8* @_ZN2kc13f_mk_filenameEPNS_20impl_casestring__StrEPKc(%"class.kc::impl_casestring__Str"* %1294, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.42, i64 0, i64 0))
%1295 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 0, i32 1), align 8, !tbaa !28
%call.i.i.i2150 = call i64 @strlen(i8* nonnull dereferenceable(1) %call514) #21
%call3.i.i2151 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 0), i64 0, i64 %1295, i8* %call514, i64 %call.i.i.i2150)
%call516 = call i8* @_ZN2kc13f_mk_filenameEPNS_20impl_casestring__StrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%"class.kc::impl_casestring__Str"* %1294, %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 23))
%1296 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 1, i32 1), align 8, !tbaa !28
%call.i.i.i2152 = call i64 @strlen(i8* nonnull dereferenceable(1) %call516) #21
%call3.i.i2153 = call dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(%"class.std::__cxx11::basic_string"* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 1), i64 0, i64 %1296, i8* %call516, i64 %call.i.i.i2152)
store %"class.kc::impl_casestring__Str"* %1294, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
call void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 0))
call void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_ccfile_printer, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 1))
%1297 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool518 = icmp eq i8 %1297, 0
br i1 %tobool518, label %if.end524, label %if.then519
if.then519: ; preds = %if.then512
%call1.i2155 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), i64 1)
%call521 = call i8* @_ZN2kc13f_mk_filenameEPNS_20impl_casestring__StrEPKc(%"class.kc::impl_casestring__Str"* %1294, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.43, i64 0, i64 0))
%tobool.i2157 = icmp eq i8* %call521, null
br i1 %tobool.i2157, label %if.then.i2160, label %if.else.i
if.then.i2160: ; preds = %if.then519
%vtable.i2158 = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !19
%vbase.offset.ptr.i = getelementptr i8, i8* %vtable.i2158, i64 -24
%1298 = bitcast i8* %vbase.offset.ptr.i to i64*
%vbase.offset.i = load i64, i64* %1298, align 8
%add.ptr.i2159 = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i
%1299 = bitcast i8* %add.ptr.i2159 to %"class.std::basic_ios"*
%_M_streambuf_state.i.i.i = getelementptr inbounds i8, i8* %add.ptr.i2159, i64 32
%1300 = bitcast i8* %_M_streambuf_state.i.i.i to i32*
%1301 = load i32, i32* %1300, align 8, !tbaa !89
%or.i.i.i = or i32 %1301, 1
call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* nonnull %1299, i32 %or.i.i.i)
br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
if.else.i: ; preds = %if.then519
%call.i.i2161 = call i64 @strlen(i8* nonnull dereferenceable(1) %call521) #21
%call1.i2162 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull %call521, i64 %call.i.i2161)
br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %if.then.i2160, %if.else.i
%call.i2165 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull @_ZSt4cout)
br label %if.end524
if.end524: ; preds = %if.then512, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
%vtable.i2166 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2167 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2166, i64 9
%1302 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2167, align 8
call void %1302(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fns_start_h_class", %"struct.kc::view_gen_fns_start_h_class"* @_ZN2kc20view_gen_fns_start_hE, i64 0, i32 0))
%call525 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %1294)
%inc1.i2168 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call525, i64 0, i32 0, i32 2, i32 0
%1303 = bitcast %"class.kc::impl_includedeclarations"** %inc1.i2168 to %"class.kc::impl_abstract_phylum"**
%1304 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1303, align 8, !tbaa !9
%1305 = bitcast %"class.kc::impl_abstract_phylum"* %1304 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2170 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1305, align 8, !tbaa !19
%vfn.i2171 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2170, i64 9
%1306 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2171, align 8
call void %1306(%"class.kc::impl_abstract_phylum"* %1304, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%call528 = call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL17mkfunctionincnameEPKc(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.44, i64 0, i64 0))
%call529 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call528)
%inc1.i2172 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call529, i64 0, i32 0, i32 2, i32 0
%1307 = bitcast %"class.kc::impl_includedeclarations"** %inc1.i2172 to %"class.kc::impl_abstract_phylum"**
%1308 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1307, align 8, !tbaa !9
%1309 = bitcast %"class.kc::impl_abstract_phylum"* %1308 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2174 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1309, align 8, !tbaa !19
%vfn.i2175 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2174, i64 9
%1310 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2175, align 8
call void %1310(%"class.kc::impl_abstract_phylum"* %1308, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i2176 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2177 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2176, i64 9
%1311 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2177, align 8
call void %1311(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%fns532 = getelementptr inbounds %"class.kc::impl_fnfile", %"class.kc::impl_fnfile"* %1289, i64 0, i32 1
%1312 = bitcast %"class.kc::impl_fndeclarations"** %fns532 to %"class.kc::impl_abstract_phylum"**
%1313 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1312, align 8, !tbaa !95
%1314 = bitcast %"class.kc::impl_abstract_phylum"* %1313 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2178 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1314, align 8, !tbaa !19
%vfn.i2179 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2178, i64 9
%1315 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2179, align 8
call void %1315(%"class.kc::impl_abstract_phylum"* %1313, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fnk_h_class", %"struct.kc::view_gen_fnk_h_class"* @_ZN2kc14view_gen_fnk_hE, i64 0, i32 0))
%vtable.i2180 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2181 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2180, i64 9
%1316 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2181, align 8
call void %1316(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%vtable.i2182 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2183 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2182, i64 9
%1317 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2183, align 8
call void %1317(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fns_end_h_class", %"struct.kc::view_gen_fns_end_h_class"* @_ZN2kc18view_gen_fns_end_hE, i64 0, i32 0))
%vtable.i2184 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2185 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2184, i64 9
%1318 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2185, align 8
call void %1318(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fns_start_c_class", %"struct.kc::view_gen_fns_start_c_class"* @_ZN2kc20view_gen_fns_start_cE, i64 0, i32 0))
%vtable.i2186 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2187 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2186, i64 9
%1319 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2187, align 8
call void %1319(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fns_owninclude_c_class", %"struct.kc::view_gen_fns_owninclude_c_class"* @_ZN2kc25view_gen_fns_owninclude_cE, i64 0, i32 0))
%call533 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %1294)
%inc2.i2189 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call533, i64 0, i32 0, i32 2, i32 1
%1320 = bitcast %"class.kc::impl_includedeclarations"** %inc2.i2189 to %"class.kc::impl_abstract_phylum"**
%1321 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1320, align 8, !tbaa !9
%1322 = bitcast %"class.kc::impl_abstract_phylum"* %1321 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2190 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1322, align 8, !tbaa !19
%vfn.i2191 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2190, i64 9
%1323 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2191, align 8
call void %1323(%"class.kc::impl_abstract_phylum"* %1321, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%call536 = call fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL17mkfunctionincnameEPKc(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.45, i64 0, i64 0))
%call537 = call %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"* %call536)
%inc2.i2193 = getelementptr inbounds %"class.kc::impl_includefile_IncludeFile", %"class.kc::impl_includefile_IncludeFile"* %call537, i64 0, i32 0, i32 2, i32 1
%1324 = bitcast %"class.kc::impl_includedeclarations"** %inc2.i2193 to %"class.kc::impl_abstract_phylum"**
%1325 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1324, align 8, !tbaa !9
%1326 = bitcast %"class.kc::impl_abstract_phylum"* %1325 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2194 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1326, align 8, !tbaa !19
%vfn.i2195 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2194, i64 9
%1327 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2195, align 8
call void %1327(%"class.kc::impl_abstract_phylum"* %1325, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_includes_class", %"struct.kc::view_gen_includes_class"* @_ZN2kc17view_gen_includesE, i64 0, i32 0))
%vtable.i2196 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2197 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2196, i64 9
%1328 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2197, align 8
call void %1328(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_open_namespace_class", %"struct.kc::view_open_namespace_class"* @_ZN2kc19view_open_namespaceE, i64 0, i32 0))
%1329 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1312, align 8, !tbaa !95
%1330 = bitcast %"class.kc::impl_abstract_phylum"* %1329 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2198 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1330, align 8, !tbaa !19
%vfn.i2199 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2198, i64 9
%1331 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2199, align 8
call void %1331(%"class.kc::impl_abstract_phylum"* %1329, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fnkdecls_c_class", %"struct.kc::view_gen_fnkdecls_c_class"* @_ZN2kc19view_gen_fnkdecls_cE, i64 0, i32 0))
%1332 = load %"class.kc::impl_abstract_phylum"*, %"class.kc::impl_abstract_phylum"** %1312, align 8, !tbaa !95
%1333 = bitcast %"class.kc::impl_abstract_phylum"* %1332 to void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)***
%vtable.i2200 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %1333, align 8, !tbaa !19
%vfn.i2201 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2200, i64 9
%1334 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2201, align 8
call void %1334(%"class.kc::impl_abstract_phylum"* %1332, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_fnk_c_class", %"struct.kc::view_gen_fnk_c_class"* @_ZN2kc14view_gen_fnk_cE, i64 0, i32 0))
%vtable.i2202 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2203 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2202, i64 9
%1335 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2203, align 8
call void %1335(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_close_namespace_class", %"struct.kc::view_close_namespace_class"* @_ZN2kc20view_close_namespaceE, i64 0, i32 0))
%1336 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2204 = icmp eq %struct._IO_FILE* %1336, null
br i1 %tobool.i2204, label %_ZN14kc_filePrinter6fcloseEv.exit2209.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2209
_ZN14kc_filePrinter6fcloseEv.exit2209.thread: ; preds = %if.end524
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end549
_ZN14kc_filePrinter6fcloseEv.exit2209: ; preds = %if.end524
%call.i2205 = call i32 @fclose(%struct._IO_FILE* nonnull %1336)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_ccfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp543 = icmp eq i32 %call.i2205, -1
br i1 %cmp543, label %if.then544, label %if.end549
if.then544: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2209
%call545 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1337 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call545 to %"class.kc::impl_fileline"*
%1338 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 1, i32 0, i32 0), align 8, !tbaa !2
%call547 = call %"class.kc::impl_problem"* @_ZN2kc9Problem4SEPKcS1_S1_S1_(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.46, i64 0, i64 0), i8* %1338, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.47, i64 0, i64 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0))
%call548 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1337, %"class.kc::impl_problem"* %call547)
%1339 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call548, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1339)
br label %if.end549
if.end549: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2209.thread, %if.then544, %_ZN14kc_filePrinter6fcloseEv.exit2209
%1340 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2210 = icmp eq %struct._IO_FILE* %1340, null
br i1 %tobool.i2210, label %_ZN14kc_filePrinter6fcloseEv.exit2215.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2215
_ZN14kc_filePrinter6fcloseEv.exit2215.thread: ; preds = %if.end549
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end557
_ZN14kc_filePrinter6fcloseEv.exit2215: ; preds = %if.end549
%call.i2211 = call i32 @fclose(%struct._IO_FILE* nonnull %1340)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp551 = icmp eq i32 %call.i2211, -1
br i1 %cmp551, label %if.then552, label %if.end557
if.then552: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2215
%call553 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1341 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call553 to %"class.kc::impl_fileline"*
%1342 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 0, i32 0, i32 0), align 8, !tbaa !2
%call555 = call %"class.kc::impl_problem"* @_ZN2kc9Problem4SEPKcS1_S1_S1_(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.46, i64 0, i64 0), i8* %1342, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.47, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call556 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1341, %"class.kc::impl_problem"* %call555)
%1343 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call556, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1343)
br label %if.end557
if.end557: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2215.thread, %if.then552, %_ZN14kc_filePrinter6fcloseEv.exit2215
%.idx839.val = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 1, i32 0, i32 0), align 8, !tbaa !2
call fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), i8* %.idx839.val)
%.idx.val = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 0, i32 0, i32 0), align 8, !tbaa !2
call fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %.idx.val)
br label %if.end559
if.else558: ; preds = %while.body502
call void @_ZN2kc21kc_no_default_in_withEPKciS1_(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.48, i64 0, i64 0), i32 1165, i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.49, i64 0, i64 0))
br label %if.end559
if.end559: ; preds = %if.else558, %if.end557
%fnfiles_1560 = getelementptr inbounds %"class.kc::impl_fnfiles", %"class.kc::impl_fnfiles"* %kc_fe_selvar_1496.02661, i64 0, i32 2
%kc_fe_selvar_1496.0 = load %"class.kc::impl_fnfiles"*, %"class.kc::impl_fnfiles"** %fnfiles_1560, align 8, !tbaa !9
%1344 = bitcast %"class.kc::impl_fnfiles"* %kc_fe_selvar_1496.0 to i32 (%"class.kc::impl_fnfiles"*)***
%vtable498 = load i32 (%"class.kc::impl_fnfiles"*)**, i32 (%"class.kc::impl_fnfiles"*)*** %1344, align 8, !tbaa !19
%1345 = load i32 (%"class.kc::impl_fnfiles"*)*, i32 (%"class.kc::impl_fnfiles"*)** %vtable498, align 8
%call500 = call i32 %1345(%"class.kc::impl_fnfiles"* %kc_fe_selvar_1496.0)
%cmp501 = icmp eq i32 %call500, 105
br i1 %cmp501, label %while.body502, label %while.end561
while.end561: ; preds = %if.end559, %if.end495
%1346 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 9), align 1, !tbaa !44, !range !18
%tobool562 = icmp eq i8 %1346, 0
br i1 %tobool562, label %if.end597, label %if.then563
if.then563: ; preds = %while.end561
%1347 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp564 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1347) #21
%1348 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp564, i64 0, i32 2
%1349 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp564 to %union.anon**
store %union.anon* %1348, %union.anon** %1349, align 8, !tbaa !33, !alias.scope !201
%1350 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !201
%1351 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !201
%1352 = bitcast i64* %__dnew.i.i.i.i.i2216 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1352) #21, !noalias !201
store i64 %1351, i64* %__dnew.i.i.i.i.i2216, align 8, !tbaa !54, !noalias !201
%cmp3.i.i.i.i.i2217 = icmp ugt i64 %1351, 15
br i1 %cmp3.i.i.i.i.i2217, label %if.then4.i.i.i.i.i2222, label %if.end.if.end6_crit_edge.i.i.i.i.i2218
if.end.if.end6_crit_edge.i.i.i.i.i2218: ; preds = %if.then563
%1353 = bitcast %union.anon* %1348 to i8*
br label %if.end6.i.i.i.i.i2224
if.then4.i.i.i.i.i2222: ; preds = %if.then563
%call5.i.i.i14.i.i2219 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp564, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2216, i64 0)
%_M_p.i18.i.i.i.i.i2220 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp564, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2219, i8** %_M_p.i18.i.i.i.i.i2220, align 8, !tbaa !2, !alias.scope !201
%1354 = load i64, i64* %__dnew.i.i.i.i.i2216, align 8, !tbaa !54, !noalias !201
%_M_allocated_capacity.i.i.i.i.i.i2221 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp564, i64 0, i32 2, i32 0
store i64 %1354, i64* %_M_allocated_capacity.i.i.i.i.i.i2221, align 8, !tbaa !25, !alias.scope !201
br label %if.end6.i.i.i.i.i2224
if.end6.i.i.i.i.i2224: ; preds = %if.then4.i.i.i.i.i2222, %if.end.if.end6_crit_edge.i.i.i.i.i2218
%1355 = phi i8* [ %1353, %if.end.if.end6_crit_edge.i.i.i.i.i2218 ], [ %call5.i.i.i14.i.i2219, %if.then4.i.i.i.i.i2222 ]
%_M_p.i.i.i.i.i.i2223 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp564, i64 0, i32 0, i32 0
switch i64 %1351, label %if.end.i.i.i.i.i.i.i.i2226 [
i64 1, label %if.then.i.i.i.i.i.i.i2225
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2232
]
if.then.i.i.i.i.i.i.i2225: ; preds = %if.end6.i.i.i.i.i2224
%1356 = load i8, i8* %1350, align 1, !tbaa !25
store i8 %1356, i8* %1355, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2232
if.end.i.i.i.i.i.i.i.i2226: ; preds = %if.end6.i.i.i.i.i2224
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1355, i8* align 1 %1350, i64 %1351, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2232
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2232: ; preds = %if.end.i.i.i.i.i.i.i.i2226, %if.then.i.i.i.i.i.i.i2225, %if.end6.i.i.i.i.i2224
%1357 = load i64, i64* %__dnew.i.i.i.i.i2216, align 8, !tbaa !54, !noalias !201
%_M_string_length.i.i.i.i.i.i.i2227 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp564, i64 0, i32 1
store i64 %1357, i64* %_M_string_length.i.i.i.i.i.i.i2227, align 8, !tbaa !28, !alias.scope !201
%1358 = load i8*, i8** %_M_p.i.i.i.i.i.i2223, align 8, !tbaa !2, !alias.scope !201
%arrayidx.i.i.i.i.i.i2228 = getelementptr inbounds i8, i8* %1358, i64 %1357
store i8 0, i8* %arrayidx.i.i.i.i.i.i2228, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1352) #21, !noalias !201
%1359 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i2227, align 8, !tbaa !28, !alias.scope !201
%sub3.i.i.i2230 = sub i64 4611686018427387903, %1359
%cmp.i.i.i2231 = icmp ult i64 %sub3.i.i.i2230, 11
br i1 %cmp.i.i.i2231, label %if.then.i.i.i2233, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2236
if.then.i.i.i2233: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2232
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i2234 unwind label %lpad.i2239
.noexc.i2234: ; preds = %if.then.i.i.i2233
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2236: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2232
%call2.i2.i2235 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp564, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.50, i64 0, i64 0), i64 11)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2242 unwind label %lpad.i2239
lpad.i2239: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2236, %if.then.i.i.i2233
%1360 = landingpad { i8*, i32 }
cleanup
%1361 = load i8*, i8** %_M_p.i.i.i.i.i.i2223, align 8, !tbaa !2, !alias.scope !201
%arraydecay.i.i.i.i.i2237 = bitcast %union.anon* %1348 to i8*
%cmp.i.i.i.i2238 = icmp eq i8* %1361, %arraydecay.i.i.i.i.i2237
br i1 %cmp.i.i.i.i2238, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2241, label %if.then.i.i3.i2240
if.then.i.i3.i2240: ; preds = %lpad.i2239
call void @_ZdlPv(i8* %1361) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2241
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2241: ; preds = %if.then.i.i3.i2240, %lpad.i2239
resume { i8*, i32 } %1360
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2242: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2236
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp564)
to label %invoke.cont566 unwind label %lpad565
invoke.cont566: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2242
%1362 = load i8*, i8** %_M_p.i.i.i.i.i.i2223, align 8, !tbaa !2
%arraydecay.i.i.i.i2244 = bitcast %union.anon* %1348 to i8*
%cmp.i.i.i2245 = icmp eq i8* %1362, %arraydecay.i.i.i.i2244
br i1 %cmp.i.i.i2245, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2248, label %if.then.i.i2246
if.then.i.i2246: ; preds = %invoke.cont566
call void @_ZdlPv(i8* %1362) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2248
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2248: ; preds = %invoke.cont566, %if.then.i.i2246
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1347) #21
%1363 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool569 = icmp eq i8 %1363, 0
br i1 %tobool569, label %if.end584, label %if.then570
if.then570: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2248
%1364 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp571 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1364) #21
%1365 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp572 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1365) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp572, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%_M_string_length.i.i.i.i2250 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp572, i64 0, i32 1
%1366 = load i64, i64* %_M_string_length.i.i.i.i2250, align 8, !tbaa !28, !noalias !204
%sub3.i.i.i2251 = sub i64 4611686018427387903, %1366
%cmp.i.i.i2252 = icmp ult i64 %sub3.i.i.i2251, 11
br i1 %cmp.i.i.i2252, label %if.then.i.i.i2253, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2258
if.then.i.i.i2253: ; preds = %if.then570
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc2267 unwind label %lpad573
.noexc2267: ; preds = %if.then.i.i.i2253
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2258: ; preds = %if.then570
%call2.i.i22542268 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp572, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.50, i64 0, i64 0), i64 11)
to label %call2.i.i2254.noexc unwind label %lpad573
call2.i.i2254.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2258
%1367 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp571, i64 0, i32 2
%1368 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp571 to %union.anon**
store %union.anon* %1367, %union.anon** %1368, align 8, !tbaa !33, !alias.scope !204
%_M_p.i.i34.i.i2255 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i22542268, i64 0, i32 0, i32 0
%1369 = load i8*, i8** %_M_p.i.i34.i.i2255, align 8, !tbaa !2
%1370 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i22542268, i64 0, i32 2
%arraydecay.i.i.i.i2256 = bitcast %union.anon* %1370 to i8*
%cmp.i.i2.i2257 = icmp eq i8* %1369, %arraydecay.i.i.i.i2256
br i1 %cmp.i.i2.i2257, label %if.then.i.i2260, label %if.else.i.i2264
if.then.i.i2260: ; preds = %call2.i.i2254.noexc
%arraydecay.i.i.i2259 = bitcast %union.anon* %1367 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i2259, i8* nonnull align 1 dereferenceable(16) %1369, i64 16, i1 false) #21
br label %invoke.cont574
if.else.i.i2264: ; preds = %call2.i.i2254.noexc
%_M_p.i32.i.i2261 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp571, i64 0, i32 0, i32 0
store i8* %1369, i8** %_M_p.i32.i.i2261, align 8, !tbaa !2, !alias.scope !204
%_M_allocated_capacity.i.i2262 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i22542268, i64 0, i32 2, i32 0
%1371 = load i64, i64* %_M_allocated_capacity.i.i2262, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i2263 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp571, i64 0, i32 2, i32 0
store i64 %1371, i64* %_M_allocated_capacity.i.i.i2263, align 8, !tbaa !25, !alias.scope !204
br label %invoke.cont574
invoke.cont574: ; preds = %if.else.i.i2264, %if.then.i.i2260
%_M_string_length.i31.i.i2265 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i22542268, i64 0, i32 1
%1372 = load i64, i64* %_M_string_length.i31.i.i2265, align 8, !tbaa !28
%_M_string_length.i.i.i2266 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp571, i64 0, i32 1
store i64 %1372, i64* %_M_string_length.i.i.i2266, align 8, !tbaa !28, !alias.scope !204
%1373 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i22542268 to %union.anon**
store %union.anon* %1370, %union.anon** %1373, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i2265, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i2256, align 1, !tbaa !25
%_M_p.i.i.i2270 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp571, i64 0, i32 0, i32 0
%1374 = load i8*, i8** %_M_p.i.i.i2270, align 8, !tbaa !2
%1375 = load i64, i64* %_M_string_length.i.i.i2266, align 8, !tbaa !28
%call2.i22722273 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %1374, i64 %1375)
to label %invoke.cont576 unwind label %lpad575
invoke.cont576: ; preds = %invoke.cont574
%call.i22782279 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i22722273)
to label %invoke.cont578 unwind label %lpad575
invoke.cont578: ; preds = %invoke.cont576
%1376 = load i8*, i8** %_M_p.i.i.i2270, align 8, !tbaa !2
%arraydecay.i.i.i.i2282 = bitcast %union.anon* %1367 to i8*
%cmp.i.i.i2283 = icmp eq i8* %1376, %arraydecay.i.i.i.i2282
br i1 %cmp.i.i.i2283, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2286, label %if.then.i.i2284
if.then.i.i2284: ; preds = %invoke.cont578
call void @_ZdlPv(i8* %1376) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2286
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2286: ; preds = %invoke.cont578, %if.then.i.i2284
%_M_p.i.i.i.i2287 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp572, i64 0, i32 0, i32 0
%1377 = load i8*, i8** %_M_p.i.i.i.i2287, align 8, !tbaa !2
%1378 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp572, i64 0, i32 2
%arraydecay.i.i.i.i2288 = bitcast %union.anon* %1378 to i8*
%cmp.i.i.i2289 = icmp eq i8* %1377, %arraydecay.i.i.i.i2288
br i1 %cmp.i.i.i2289, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2292, label %if.then.i.i2290
if.then.i.i2290: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2286
call void @_ZdlPv(i8* %1377) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2292
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2292: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2286, %if.then.i.i2290
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1365) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1364) #21
br label %if.end584
lpad565: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2242
%1379 = landingpad { i8*, i32 }
cleanup
%1380 = extractvalue { i8*, i32 } %1379, 0
%1381 = extractvalue { i8*, i32 } %1379, 1
%1382 = load i8*, i8** %_M_p.i.i.i.i.i.i2223, align 8, !tbaa !2
%arraydecay.i.i.i.i2294 = bitcast %union.anon* %1348 to i8*
%cmp.i.i.i2295 = icmp eq i8* %1382, %arraydecay.i.i.i.i2294
br i1 %cmp.i.i.i2295, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2298, label %if.then.i.i2296
if.then.i.i2296: ; preds = %lpad565
call void @_ZdlPv(i8* %1382) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2298
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2298: ; preds = %lpad565, %if.then.i.i2296
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1347) #21
br label %ehcleanup675
lpad573: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2258, %if.then.i.i.i2253
%1383 = landingpad { i8*, i32 }
cleanup
%1384 = extractvalue { i8*, i32 } %1383, 0
%1385 = extractvalue { i8*, i32 } %1383, 1
br label %ehcleanup581
lpad575: ; preds = %invoke.cont576, %invoke.cont574
%1386 = landingpad { i8*, i32 }
cleanup
%1387 = extractvalue { i8*, i32 } %1386, 0
%1388 = extractvalue { i8*, i32 } %1386, 1
%1389 = load i8*, i8** %_M_p.i.i.i2270, align 8, !tbaa !2
%arraydecay.i.i.i.i2300 = bitcast %union.anon* %1367 to i8*
%cmp.i.i.i2301 = icmp eq i8* %1389, %arraydecay.i.i.i.i2300
br i1 %cmp.i.i.i2301, label %ehcleanup581, label %if.then.i.i2302
if.then.i.i2302: ; preds = %lpad575
call void @_ZdlPv(i8* %1389) #21
br label %ehcleanup581
ehcleanup581: ; preds = %if.then.i.i2302, %lpad575, %lpad573
%exn.slot.12 = phi i8* [ %1384, %lpad573 ], [ %1387, %lpad575 ], [ %1387, %if.then.i.i2302 ]
%ehselector.slot.12 = phi i32 [ %1385, %lpad573 ], [ %1388, %lpad575 ], [ %1388, %if.then.i.i2302 ]
%_M_p.i.i.i.i2305 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp572, i64 0, i32 0, i32 0
%1390 = load i8*, i8** %_M_p.i.i.i.i2305, align 8, !tbaa !2
%1391 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp572, i64 0, i32 2
%arraydecay.i.i.i.i2306 = bitcast %union.anon* %1391 to i8*
%cmp.i.i.i2307 = icmp eq i8* %1390, %arraydecay.i.i.i.i2306
br i1 %cmp.i.i.i2307, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2310, label %if.then.i.i2308
if.then.i.i2308: ; preds = %ehcleanup581
call void @_ZdlPv(i8* %1390) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2310
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2310: ; preds = %ehcleanup581, %if.then.i.i2308
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1365) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1364) #21
br label %ehcleanup675
if.end584: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2248, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2292
%vtable.i2311 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2312 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2311, i64 9
%1392 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2312, align 8
call void %1392(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_operatorcast_h_class", %"struct.kc::view_gen_operatorcast_h_class"* @_ZN2kc23view_gen_operatorcast_hE, i64 0, i32 0))
%1393 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2313 = icmp eq %struct._IO_FILE* %1393, null
br i1 %tobool.i2313, label %_ZN14kc_filePrinter6fcloseEv.exit2318.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2318
_ZN14kc_filePrinter6fcloseEv.exit2318.thread: ; preds = %if.end584
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end591
_ZN14kc_filePrinter6fcloseEv.exit2318: ; preds = %if.end584
%call.i2314 = call i32 @fclose(%struct._IO_FILE* nonnull %1393)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp586 = icmp eq i32 %call.i2314, -1
br i1 %cmp586, label %if.then587, label %if.end591
if.then587: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2318
%call588 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1394 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call588 to %"class.kc::impl_fileline"*
%call589 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.51, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call590 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1394, %"class.kc::impl_problem"* %call589)
%1395 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call590, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1395)
br label %if.end591
if.end591: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2318.thread, %if.then587, %_ZN14kc_filePrinter6fcloseEv.exit2318
%1396 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp592 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1396) #21
%1397 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp592, i64 0, i32 2
%1398 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp592 to %union.anon**
store %union.anon* %1397, %union.anon** %1398, align 8, !tbaa !33, !alias.scope !207
%1399 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !207
%1400 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !207
%1401 = bitcast i64* %__dnew.i.i.i.i.i2319 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1401) #21, !noalias !207
store i64 %1400, i64* %__dnew.i.i.i.i.i2319, align 8, !tbaa !54, !noalias !207
%cmp3.i.i.i.i.i2320 = icmp ugt i64 %1400, 15
br i1 %cmp3.i.i.i.i.i2320, label %if.then4.i.i.i.i.i2325, label %if.end.if.end6_crit_edge.i.i.i.i.i2321
if.end.if.end6_crit_edge.i.i.i.i.i2321: ; preds = %if.end591
%1402 = bitcast %union.anon* %1397 to i8*
br label %if.end6.i.i.i.i.i2327
if.then4.i.i.i.i.i2325: ; preds = %if.end591
%call5.i.i.i14.i.i2322 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp592, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2319, i64 0)
%_M_p.i18.i.i.i.i.i2323 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp592, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2322, i8** %_M_p.i18.i.i.i.i.i2323, align 8, !tbaa !2, !alias.scope !207
%1403 = load i64, i64* %__dnew.i.i.i.i.i2319, align 8, !tbaa !54, !noalias !207
%_M_allocated_capacity.i.i.i.i.i.i2324 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp592, i64 0, i32 2, i32 0
store i64 %1403, i64* %_M_allocated_capacity.i.i.i.i.i.i2324, align 8, !tbaa !25, !alias.scope !207
br label %if.end6.i.i.i.i.i2327
if.end6.i.i.i.i.i2327: ; preds = %if.then4.i.i.i.i.i2325, %if.end.if.end6_crit_edge.i.i.i.i.i2321
%1404 = phi i8* [ %1402, %if.end.if.end6_crit_edge.i.i.i.i.i2321 ], [ %call5.i.i.i14.i.i2322, %if.then4.i.i.i.i.i2325 ]
%_M_p.i.i.i.i.i.i2326 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp592, i64 0, i32 0, i32 0
switch i64 %1400, label %if.end.i.i.i.i.i.i.i.i2329 [
i64 1, label %if.then.i.i.i.i.i.i.i2328
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2335
]
if.then.i.i.i.i.i.i.i2328: ; preds = %if.end6.i.i.i.i.i2327
%1405 = load i8, i8* %1399, align 1, !tbaa !25
store i8 %1405, i8* %1404, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2335
if.end.i.i.i.i.i.i.i.i2329: ; preds = %if.end6.i.i.i.i.i2327
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1404, i8* align 1 %1399, i64 %1400, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2335
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2335: ; preds = %if.end.i.i.i.i.i.i.i.i2329, %if.then.i.i.i.i.i.i.i2328, %if.end6.i.i.i.i.i2327
%1406 = load i64, i64* %__dnew.i.i.i.i.i2319, align 8, !tbaa !54, !noalias !207
%_M_string_length.i.i.i.i.i.i.i2330 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp592, i64 0, i32 1
store i64 %1406, i64* %_M_string_length.i.i.i.i.i.i.i2330, align 8, !tbaa !28, !alias.scope !207
%1407 = load i8*, i8** %_M_p.i.i.i.i.i.i2326, align 8, !tbaa !2, !alias.scope !207
%arrayidx.i.i.i.i.i.i2331 = getelementptr inbounds i8, i8* %1407, i64 %1406
store i8 0, i8* %arrayidx.i.i.i.i.i.i2331, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1401) #21, !noalias !207
%1408 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i2330, align 8, !tbaa !28, !alias.scope !207
%sub3.i.i.i2333 = sub i64 4611686018427387903, %1408
%cmp.i.i.i2334 = icmp ult i64 %sub3.i.i.i2333, 11
br i1 %cmp.i.i.i2334, label %if.then.i.i.i2336, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2339
if.then.i.i.i2336: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2335
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i2337 unwind label %lpad.i2342
.noexc.i2337: ; preds = %if.then.i.i.i2336
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2339: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2335
%call2.i2.i2338 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp592, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.50, i64 0, i64 0), i64 11)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2345 unwind label %lpad.i2342
lpad.i2342: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2339, %if.then.i.i.i2336
%1409 = landingpad { i8*, i32 }
cleanup
%1410 = load i8*, i8** %_M_p.i.i.i.i.i.i2326, align 8, !tbaa !2, !alias.scope !207
%arraydecay.i.i.i.i.i2340 = bitcast %union.anon* %1397 to i8*
%cmp.i.i.i.i2341 = icmp eq i8* %1410, %arraydecay.i.i.i.i.i2340
br i1 %cmp.i.i.i.i2341, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2344, label %if.then.i.i3.i2343
if.then.i.i3.i2343: ; preds = %lpad.i2342
call void @_ZdlPv(i8* %1410) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2344
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2344: ; preds = %if.then.i.i3.i2343, %lpad.i2342
resume { i8*, i32 } %1409
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2345: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2339
%ref.tmp592.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i2326, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp592.idx.val)
to label %invoke.cont594 unwind label %lpad593
invoke.cont594: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2345
%1411 = load i8*, i8** %_M_p.i.i.i.i.i.i2326, align 8, !tbaa !2
%arraydecay.i.i.i.i2347 = bitcast %union.anon* %1397 to i8*
%cmp.i.i.i2348 = icmp eq i8* %1411, %arraydecay.i.i.i.i2347
br i1 %cmp.i.i.i2348, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2351, label %if.then.i.i2349
if.then.i.i2349: ; preds = %invoke.cont594
call void @_ZdlPv(i8* %1411) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2351
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2351: ; preds = %invoke.cont594, %if.then.i.i2349
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1396) #21
br label %if.end597
lpad593: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2345
%1412 = landingpad { i8*, i32 }
cleanup
%1413 = extractvalue { i8*, i32 } %1412, 0
%1414 = extractvalue { i8*, i32 } %1412, 1
%1415 = load i8*, i8** %_M_p.i.i.i.i.i.i2326, align 8, !tbaa !2
%arraydecay.i.i.i.i2353 = bitcast %union.anon* %1397 to i8*
%cmp.i.i.i2354 = icmp eq i8* %1415, %arraydecay.i.i.i.i2353
br i1 %cmp.i.i.i2354, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2357, label %if.then.i.i2355
if.then.i.i2355: ; preds = %lpad593
call void @_ZdlPv(i8* %1415) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2357
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2357: ; preds = %lpad593, %if.then.i.i2355
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1396) #21
br label %ehcleanup675
if.end597: ; preds = %while.end561, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2351
%call.i.i2358 = call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.43, i64 0, i64 0)) #21
%cmp.i.i2359 = icmp eq i32 %call.i.i2358, 0
br i1 %cmp.i.i2359, label %if.end634, label %if.then599
if.then599: ; preds = %if.end597
%1416 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp600 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1416) #21
%1417 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp600, i64 0, i32 2
%1418 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp600 to %union.anon**
store %union.anon* %1417, %union.anon** %1418, align 8, !tbaa !33, !alias.scope !210
%1419 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !210
%1420 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !210
%1421 = bitcast i64* %__dnew.i.i.i.i.i2360 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1421) #21, !noalias !210
store i64 %1420, i64* %__dnew.i.i.i.i.i2360, align 8, !tbaa !54, !noalias !210
%cmp3.i.i.i.i.i2361 = icmp ugt i64 %1420, 15
br i1 %cmp3.i.i.i.i.i2361, label %if.then4.i.i.i.i.i2366, label %if.end.if.end6_crit_edge.i.i.i.i.i2362
if.end.if.end6_crit_edge.i.i.i.i.i2362: ; preds = %if.then599
%1422 = bitcast %union.anon* %1417 to i8*
br label %if.end6.i.i.i.i.i2368
if.then4.i.i.i.i.i2366: ; preds = %if.then599
%call5.i.i.i14.i.i2363 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp600, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2360, i64 0)
%_M_p.i18.i.i.i.i.i2364 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp600, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2363, i8** %_M_p.i18.i.i.i.i.i2364, align 8, !tbaa !2, !alias.scope !210
%1423 = load i64, i64* %__dnew.i.i.i.i.i2360, align 8, !tbaa !54, !noalias !210
%_M_allocated_capacity.i.i.i.i.i.i2365 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp600, i64 0, i32 2, i32 0
store i64 %1423, i64* %_M_allocated_capacity.i.i.i.i.i.i2365, align 8, !tbaa !25, !alias.scope !210
br label %if.end6.i.i.i.i.i2368
if.end6.i.i.i.i.i2368: ; preds = %if.then4.i.i.i.i.i2366, %if.end.if.end6_crit_edge.i.i.i.i.i2362
%1424 = phi i8* [ %1422, %if.end.if.end6_crit_edge.i.i.i.i.i2362 ], [ %call5.i.i.i14.i.i2363, %if.then4.i.i.i.i.i2366 ]
%_M_p.i.i.i.i.i.i2367 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp600, i64 0, i32 0, i32 0
switch i64 %1420, label %if.end.i.i.i.i.i.i.i.i2370 [
i64 1, label %if.then.i.i.i.i.i.i.i2369
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2373
]
if.then.i.i.i.i.i.i.i2369: ; preds = %if.end6.i.i.i.i.i2368
%1425 = load i8, i8* %1419, align 1, !tbaa !25
store i8 %1425, i8* %1424, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2373
if.end.i.i.i.i.i.i.i.i2370: ; preds = %if.end6.i.i.i.i.i2368
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1424, i8* align 1 %1419, i64 %1420, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2373
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2373: ; preds = %if.end.i.i.i.i.i.i.i.i2370, %if.then.i.i.i.i.i.i.i2369, %if.end6.i.i.i.i.i2368
%1426 = load i64, i64* %__dnew.i.i.i.i.i2360, align 8, !tbaa !54, !noalias !210
%_M_string_length.i.i.i.i.i.i.i2371 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp600, i64 0, i32 1
store i64 %1426, i64* %_M_string_length.i.i.i.i.i.i.i2371, align 8, !tbaa !28, !alias.scope !210
%1427 = load i8*, i8** %_M_p.i.i.i.i.i.i2367, align 8, !tbaa !2, !alias.scope !210
%arrayidx.i.i.i.i.i.i2372 = getelementptr inbounds i8, i8* %1427, i64 %1426
store i8 0, i8* %arrayidx.i.i.i.i.i.i2372, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1421) #21, !noalias !210
%1428 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 0, i32 0), align 8, !tbaa !2, !noalias !210
%1429 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 1), align 8, !tbaa !28, !noalias !210
%call3.i3.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp600, i8* %1428, i64 %1429)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit unwind label %lpad.i2376
lpad.i2376: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2373
%1430 = landingpad { i8*, i32 }
cleanup
%1431 = load i8*, i8** %_M_p.i.i.i.i.i.i2367, align 8, !tbaa !2, !alias.scope !210
%arraydecay.i.i.i.i.i2374 = bitcast %union.anon* %1417 to i8*
%cmp.i.i.i.i2375 = icmp eq i8* %1431, %arraydecay.i.i.i.i.i2374
br i1 %cmp.i.i.i.i2375, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2378, label %if.then.i.i.i2377
if.then.i.i.i2377: ; preds = %lpad.i2376
call void @_ZdlPv(i8* %1431) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2378
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2378: ; preds = %if.then.i.i.i2377, %lpad.i2376
resume { i8*, i32 } %1430
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2373
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp600)
to label %invoke.cont602 unwind label %lpad601
invoke.cont602: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit
%1432 = load i8*, i8** %_M_p.i.i.i.i.i.i2367, align 8, !tbaa !2
%arraydecay.i.i.i.i2380 = bitcast %union.anon* %1417 to i8*
%cmp.i.i.i2381 = icmp eq i8* %1432, %arraydecay.i.i.i.i2380
br i1 %cmp.i.i.i2381, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2384, label %if.then.i.i2382
if.then.i.i2382: ; preds = %invoke.cont602
call void @_ZdlPv(i8* %1432) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2384
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2384: ; preds = %invoke.cont602, %if.then.i.i2382
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1416) #21
%1433 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool605 = icmp eq i8 %1433, 0
br i1 %tobool605, label %if.end620, label %if.then606
if.then606: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2384
%1434 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp607 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1434) #21
%1435 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp608 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1435) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp608, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%1436 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 0, i32 0), align 8, !tbaa !2, !noalias !213
%1437 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 1), align 8, !tbaa !28, !noalias !213
%call3.i.i23852397 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp608, i8* %1436, i64 %1437)
to label %call3.i.i2385.noexc unwind label %lpad609
call3.i.i2385.noexc: ; preds = %if.then606
%1438 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp607, i64 0, i32 2
%1439 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp607 to %union.anon**
store %union.anon* %1438, %union.anon** %1439, align 8, !tbaa !33, !alias.scope !213
%_M_p.i.i34.i.i2386 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i23852397, i64 0, i32 0, i32 0
%1440 = load i8*, i8** %_M_p.i.i34.i.i2386, align 8, !tbaa !2
%1441 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i23852397, i64 0, i32 2
%arraydecay.i.i.i.i2387 = bitcast %union.anon* %1441 to i8*
%cmp.i.i.i2388 = icmp eq i8* %1440, %arraydecay.i.i.i.i2387
br i1 %cmp.i.i.i2388, label %if.then.i.i2390, label %if.else.i.i2394
if.then.i.i2390: ; preds = %call3.i.i2385.noexc
%arraydecay.i.i.i2389 = bitcast %union.anon* %1438 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i2389, i8* nonnull align 1 dereferenceable(16) %1440, i64 16, i1 false) #21
br label %invoke.cont610
if.else.i.i2394: ; preds = %call3.i.i2385.noexc
%_M_p.i32.i.i2391 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp607, i64 0, i32 0, i32 0
store i8* %1440, i8** %_M_p.i32.i.i2391, align 8, !tbaa !2, !alias.scope !213
%_M_allocated_capacity.i.i2392 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i23852397, i64 0, i32 2, i32 0
%1442 = load i64, i64* %_M_allocated_capacity.i.i2392, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i2393 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp607, i64 0, i32 2, i32 0
store i64 %1442, i64* %_M_allocated_capacity.i.i.i2393, align 8, !tbaa !25, !alias.scope !213
br label %invoke.cont610
invoke.cont610: ; preds = %if.else.i.i2394, %if.then.i.i2390
%_M_string_length.i31.i.i2395 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call3.i.i23852397, i64 0, i32 1
%1443 = load i64, i64* %_M_string_length.i31.i.i2395, align 8, !tbaa !28
%_M_string_length.i.i2.i2396 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp607, i64 0, i32 1
store i64 %1443, i64* %_M_string_length.i.i2.i2396, align 8, !tbaa !28, !alias.scope !213
%1444 = bitcast %"class.std::__cxx11::basic_string"* %call3.i.i23852397 to %union.anon**
store %union.anon* %1441, %union.anon** %1444, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i2395, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i2387, align 1, !tbaa !25
%_M_p.i.i.i2399 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp607, i64 0, i32 0, i32 0
%1445 = load i8*, i8** %_M_p.i.i.i2399, align 8, !tbaa !2
%1446 = load i64, i64* %_M_string_length.i.i2.i2396, align 8, !tbaa !28
%call2.i24012402 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %1445, i64 %1446)
to label %invoke.cont612 unwind label %lpad611
invoke.cont612: ; preds = %invoke.cont610
%call.i24072408 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i24012402)
to label %invoke.cont614 unwind label %lpad611
invoke.cont614: ; preds = %invoke.cont612
%1447 = load i8*, i8** %_M_p.i.i.i2399, align 8, !tbaa !2
%arraydecay.i.i.i.i2411 = bitcast %union.anon* %1438 to i8*
%cmp.i.i.i2412 = icmp eq i8* %1447, %arraydecay.i.i.i.i2411
br i1 %cmp.i.i.i2412, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2415, label %if.then.i.i2413
if.then.i.i2413: ; preds = %invoke.cont614
call void @_ZdlPv(i8* %1447) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2415
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2415: ; preds = %invoke.cont614, %if.then.i.i2413
%_M_p.i.i.i.i2416 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp608, i64 0, i32 0, i32 0
%1448 = load i8*, i8** %_M_p.i.i.i.i2416, align 8, !tbaa !2
%1449 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp608, i64 0, i32 2
%arraydecay.i.i.i.i2417 = bitcast %union.anon* %1449 to i8*
%cmp.i.i.i2418 = icmp eq i8* %1448, %arraydecay.i.i.i.i2417
br i1 %cmp.i.i.i2418, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2421, label %if.then.i.i2419
if.then.i.i2419: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2415
call void @_ZdlPv(i8* %1448) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2421
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2421: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2415, %if.then.i.i2419
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1435) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1434) #21
br label %if.end620
lpad601: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit
%1450 = landingpad { i8*, i32 }
cleanup
%1451 = extractvalue { i8*, i32 } %1450, 0
%1452 = extractvalue { i8*, i32 } %1450, 1
%1453 = load i8*, i8** %_M_p.i.i.i.i.i.i2367, align 8, !tbaa !2
%arraydecay.i.i.i.i2423 = bitcast %union.anon* %1417 to i8*
%cmp.i.i.i2424 = icmp eq i8* %1453, %arraydecay.i.i.i.i2423
br i1 %cmp.i.i.i2424, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2427, label %if.then.i.i2425
if.then.i.i2425: ; preds = %lpad601
call void @_ZdlPv(i8* %1453) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2427
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2427: ; preds = %lpad601, %if.then.i.i2425
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1416) #21
br label %ehcleanup675
lpad609: ; preds = %if.then606
%1454 = landingpad { i8*, i32 }
cleanup
%1455 = extractvalue { i8*, i32 } %1454, 0
%1456 = extractvalue { i8*, i32 } %1454, 1
br label %ehcleanup617
lpad611: ; preds = %invoke.cont612, %invoke.cont610
%1457 = landingpad { i8*, i32 }
cleanup
%1458 = extractvalue { i8*, i32 } %1457, 0
%1459 = extractvalue { i8*, i32 } %1457, 1
%1460 = load i8*, i8** %_M_p.i.i.i2399, align 8, !tbaa !2
%arraydecay.i.i.i.i2429 = bitcast %union.anon* %1438 to i8*
%cmp.i.i.i2430 = icmp eq i8* %1460, %arraydecay.i.i.i.i2429
br i1 %cmp.i.i.i2430, label %ehcleanup617, label %if.then.i.i2431
if.then.i.i2431: ; preds = %lpad611
call void @_ZdlPv(i8* %1460) #21
br label %ehcleanup617
ehcleanup617: ; preds = %if.then.i.i2431, %lpad611, %lpad609
%exn.slot.13 = phi i8* [ %1455, %lpad609 ], [ %1458, %lpad611 ], [ %1458, %if.then.i.i2431 ]
%ehselector.slot.13 = phi i32 [ %1456, %lpad609 ], [ %1459, %lpad611 ], [ %1459, %if.then.i.i2431 ]
%_M_p.i.i.i.i2434 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp608, i64 0, i32 0, i32 0
%1461 = load i8*, i8** %_M_p.i.i.i.i2434, align 8, !tbaa !2
%1462 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp608, i64 0, i32 2
%arraydecay.i.i.i.i2435 = bitcast %union.anon* %1462 to i8*
%cmp.i.i.i2436 = icmp eq i8* %1461, %arraydecay.i.i.i.i2435
br i1 %cmp.i.i.i2436, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2439, label %if.then.i.i2437
if.then.i.i2437: ; preds = %ehcleanup617
call void @_ZdlPv(i8* %1461) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2439
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2439: ; preds = %ehcleanup617, %if.then.i.i2437
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1435) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1434) #21
br label %ehcleanup675
if.end620: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2384, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2421
%vtable.i2440 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2441 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2440, i64 9
%1463 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2441, align 8
call void %1463(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_yaccstacktype_h_class", %"struct.kc::view_gen_yaccstacktype_h_class"* @_ZN2kc24view_gen_yaccstacktype_hE, i64 0, i32 0))
%1464 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2442 = icmp eq %struct._IO_FILE* %1464, null
br i1 %tobool.i2442, label %_ZN14kc_filePrinter6fcloseEv.exit2447.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2447
_ZN14kc_filePrinter6fcloseEv.exit2447.thread: ; preds = %if.end620
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end628
_ZN14kc_filePrinter6fcloseEv.exit2447: ; preds = %if.end620
%call.i2443 = call i32 @fclose(%struct._IO_FILE* nonnull %1464)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp622 = icmp eq i32 %call.i2443, -1
br i1 %cmp622, label %if.then623, label %if.end628
if.then623: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2447
%call624 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1465 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call624 to %"class.kc::impl_fileline"*
%1466 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 0, i32 0), align 8, !tbaa !2
%call626 = call %"class.kc::impl_problem"* @_ZN2kc9Problem4SEPKcS1_S1_S1_(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.46, i64 0, i64 0), i8* %1466, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.47, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call627 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1465, %"class.kc::impl_problem"* %call626)
%1467 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call627, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1467)
br label %if.end628
if.end628: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2447.thread, %if.then623, %_ZN14kc_filePrinter6fcloseEv.exit2447
%1468 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp629 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1468) #21
%1469 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp629, i64 0, i32 2
%1470 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp629 to %union.anon**
store %union.anon* %1469, %union.anon** %1470, align 8, !tbaa !33, !alias.scope !216
%1471 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !216
%1472 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !216
%1473 = bitcast i64* %__dnew.i.i.i.i.i2448 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1473) #21, !noalias !216
store i64 %1472, i64* %__dnew.i.i.i.i.i2448, align 8, !tbaa !54, !noalias !216
%cmp3.i.i.i.i.i2449 = icmp ugt i64 %1472, 15
br i1 %cmp3.i.i.i.i.i2449, label %if.then4.i.i.i.i.i2454, label %if.end.if.end6_crit_edge.i.i.i.i.i2450
if.end.if.end6_crit_edge.i.i.i.i.i2450: ; preds = %if.end628
%1474 = bitcast %union.anon* %1469 to i8*
br label %if.end6.i.i.i.i.i2456
if.then4.i.i.i.i.i2454: ; preds = %if.end628
%call5.i.i.i14.i.i2451 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp629, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2448, i64 0)
%_M_p.i18.i.i.i.i.i2452 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp629, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2451, i8** %_M_p.i18.i.i.i.i.i2452, align 8, !tbaa !2, !alias.scope !216
%1475 = load i64, i64* %__dnew.i.i.i.i.i2448, align 8, !tbaa !54, !noalias !216
%_M_allocated_capacity.i.i.i.i.i.i2453 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp629, i64 0, i32 2, i32 0
store i64 %1475, i64* %_M_allocated_capacity.i.i.i.i.i.i2453, align 8, !tbaa !25, !alias.scope !216
br label %if.end6.i.i.i.i.i2456
if.end6.i.i.i.i.i2456: ; preds = %if.then4.i.i.i.i.i2454, %if.end.if.end6_crit_edge.i.i.i.i.i2450
%1476 = phi i8* [ %1474, %if.end.if.end6_crit_edge.i.i.i.i.i2450 ], [ %call5.i.i.i14.i.i2451, %if.then4.i.i.i.i.i2454 ]
%_M_p.i.i.i.i.i.i2455 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp629, i64 0, i32 0, i32 0
switch i64 %1472, label %if.end.i.i.i.i.i.i.i.i2458 [
i64 1, label %if.then.i.i.i.i.i.i.i2457
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2462
]
if.then.i.i.i.i.i.i.i2457: ; preds = %if.end6.i.i.i.i.i2456
%1477 = load i8, i8* %1471, align 1, !tbaa !25
store i8 %1477, i8* %1476, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2462
if.end.i.i.i.i.i.i.i.i2458: ; preds = %if.end6.i.i.i.i.i2456
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1476, i8* align 1 %1471, i64 %1472, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2462
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2462: ; preds = %if.end.i.i.i.i.i.i.i.i2458, %if.then.i.i.i.i.i.i.i2457, %if.end6.i.i.i.i.i2456
%1478 = load i64, i64* %__dnew.i.i.i.i.i2448, align 8, !tbaa !54, !noalias !216
%_M_string_length.i.i.i.i.i.i.i2459 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp629, i64 0, i32 1
store i64 %1478, i64* %_M_string_length.i.i.i.i.i.i.i2459, align 8, !tbaa !28, !alias.scope !216
%1479 = load i8*, i8** %_M_p.i.i.i.i.i.i2455, align 8, !tbaa !2, !alias.scope !216
%arrayidx.i.i.i.i.i.i2460 = getelementptr inbounds i8, i8* %1479, i64 %1478
store i8 0, i8* %arrayidx.i.i.i.i.i.i2460, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1473) #21, !noalias !216
%1480 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 0, i32 0), align 8, !tbaa !2, !noalias !216
%1481 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 14, i32 1), align 8, !tbaa !28, !noalias !216
%call3.i3.i2461 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp629, i8* %1480, i64 %1481)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit2468 unwind label %lpad.i2465
lpad.i2465: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2462
%1482 = landingpad { i8*, i32 }
cleanup
%1483 = load i8*, i8** %_M_p.i.i.i.i.i.i2455, align 8, !tbaa !2, !alias.scope !216
%arraydecay.i.i.i.i.i2463 = bitcast %union.anon* %1469 to i8*
%cmp.i.i.i.i2464 = icmp eq i8* %1483, %arraydecay.i.i.i.i.i2463
br i1 %cmp.i.i.i.i2464, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2467, label %if.then.i.i.i2466
if.then.i.i.i2466: ; preds = %lpad.i2465
call void @_ZdlPv(i8* %1483) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2467
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2467: ; preds = %if.then.i.i.i2466, %lpad.i2465
resume { i8*, i32 } %1482
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit2468: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2462
%ref.tmp629.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i2455, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp629.idx.val)
to label %invoke.cont631 unwind label %lpad630
invoke.cont631: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit2468
%1484 = load i8*, i8** %_M_p.i.i.i.i.i.i2455, align 8, !tbaa !2
%arraydecay.i.i.i.i2470 = bitcast %union.anon* %1469 to i8*
%cmp.i.i.i2471 = icmp eq i8* %1484, %arraydecay.i.i.i.i2470
br i1 %cmp.i.i.i2471, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2474, label %if.then.i.i2472
if.then.i.i2472: ; preds = %invoke.cont631
call void @_ZdlPv(i8* %1484) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2474
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2474: ; preds = %invoke.cont631, %if.then.i.i2472
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1468) #21
br label %if.end634
lpad630: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_SA_.exit2468
%1485 = landingpad { i8*, i32 }
cleanup
%1486 = extractvalue { i8*, i32 } %1485, 0
%1487 = extractvalue { i8*, i32 } %1485, 1
%1488 = load i8*, i8** %_M_p.i.i.i.i.i.i2455, align 8, !tbaa !2
%arraydecay.i.i.i.i2476 = bitcast %union.anon* %1469 to i8*
%cmp.i.i.i2477 = icmp eq i8* %1488, %arraydecay.i.i.i.i2476
br i1 %cmp.i.i.i2477, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2480, label %if.then.i.i2478
if.then.i.i2478: ; preds = %lpad630
call void @_ZdlPv(i8* %1488) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2480
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2480: ; preds = %lpad630, %if.then.i.i2478
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1468) #21
br label %ehcleanup675
if.end634: ; preds = %if.end597, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2474
%1489 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 15), align 8, !tbaa !38, !range !18
%tobool635 = icmp eq i8 %1489, 0
br i1 %tobool635, label %if.end670, label %if.then636
if.then636: ; preds = %if.end634
%1490 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp637 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1490) #21
%1491 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp637, i64 0, i32 2
%1492 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp637 to %union.anon**
store %union.anon* %1491, %union.anon** %1492, align 8, !tbaa !33, !alias.scope !219
%1493 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !219
%1494 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !219
%1495 = bitcast i64* %__dnew.i.i.i.i.i2481 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1495) #21, !noalias !219
store i64 %1494, i64* %__dnew.i.i.i.i.i2481, align 8, !tbaa !54, !noalias !219
%cmp3.i.i.i.i.i2482 = icmp ugt i64 %1494, 15
br i1 %cmp3.i.i.i.i.i2482, label %if.then4.i.i.i.i.i2487, label %if.end.if.end6_crit_edge.i.i.i.i.i2483
if.end.if.end6_crit_edge.i.i.i.i.i2483: ; preds = %if.then636
%1496 = bitcast %union.anon* %1491 to i8*
br label %if.end6.i.i.i.i.i2489
if.then4.i.i.i.i.i2487: ; preds = %if.then636
%call5.i.i.i14.i.i2484 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp637, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2481, i64 0)
%_M_p.i18.i.i.i.i.i2485 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp637, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2484, i8** %_M_p.i18.i.i.i.i.i2485, align 8, !tbaa !2, !alias.scope !219
%1497 = load i64, i64* %__dnew.i.i.i.i.i2481, align 8, !tbaa !54, !noalias !219
%_M_allocated_capacity.i.i.i.i.i.i2486 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp637, i64 0, i32 2, i32 0
store i64 %1497, i64* %_M_allocated_capacity.i.i.i.i.i.i2486, align 8, !tbaa !25, !alias.scope !219
br label %if.end6.i.i.i.i.i2489
if.end6.i.i.i.i.i2489: ; preds = %if.then4.i.i.i.i.i2487, %if.end.if.end6_crit_edge.i.i.i.i.i2483
%1498 = phi i8* [ %1496, %if.end.if.end6_crit_edge.i.i.i.i.i2483 ], [ %call5.i.i.i14.i.i2484, %if.then4.i.i.i.i.i2487 ]
%_M_p.i.i.i.i.i.i2488 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp637, i64 0, i32 0, i32 0
switch i64 %1494, label %if.end.i.i.i.i.i.i.i.i2491 [
i64 1, label %if.then.i.i.i.i.i.i.i2490
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2497
]
if.then.i.i.i.i.i.i.i2490: ; preds = %if.end6.i.i.i.i.i2489
%1499 = load i8, i8* %1493, align 1, !tbaa !25
store i8 %1499, i8* %1498, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2497
if.end.i.i.i.i.i.i.i.i2491: ; preds = %if.end6.i.i.i.i.i2489
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1498, i8* align 1 %1493, i64 %1494, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2497
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2497: ; preds = %if.end.i.i.i.i.i.i.i.i2491, %if.then.i.i.i.i.i.i.i2490, %if.end6.i.i.i.i.i2489
%1500 = load i64, i64* %__dnew.i.i.i.i.i2481, align 8, !tbaa !54, !noalias !219
%_M_string_length.i.i.i.i.i.i.i2492 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp637, i64 0, i32 1
store i64 %1500, i64* %_M_string_length.i.i.i.i.i.i.i2492, align 8, !tbaa !28, !alias.scope !219
%1501 = load i8*, i8** %_M_p.i.i.i.i.i.i2488, align 8, !tbaa !2, !alias.scope !219
%arrayidx.i.i.i.i.i.i2493 = getelementptr inbounds i8, i8* %1501, i64 %1500
store i8 0, i8* %arrayidx.i.i.i.i.i.i2493, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1495) #21, !noalias !219
%1502 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i2492, align 8, !tbaa !28, !alias.scope !219
%sub3.i.i.i2495 = sub i64 4611686018427387903, %1502
%cmp.i.i.i2496 = icmp ult i64 %sub3.i.i.i2495, 11
br i1 %cmp.i.i.i2496, label %if.then.i.i.i2498, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2501
if.then.i.i.i2498: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2497
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i2499 unwind label %lpad.i2504
.noexc.i2499: ; preds = %if.then.i.i.i2498
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2501: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2497
%call2.i2.i2500 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp637, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.52, i64 0, i64 0), i64 11)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2507 unwind label %lpad.i2504
lpad.i2504: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2501, %if.then.i.i.i2498
%1503 = landingpad { i8*, i32 }
cleanup
%1504 = load i8*, i8** %_M_p.i.i.i.i.i.i2488, align 8, !tbaa !2, !alias.scope !219
%arraydecay.i.i.i.i.i2502 = bitcast %union.anon* %1491 to i8*
%cmp.i.i.i.i2503 = icmp eq i8* %1504, %arraydecay.i.i.i.i.i2502
br i1 %cmp.i.i.i.i2503, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2506, label %if.then.i.i3.i2505
if.then.i.i3.i2505: ; preds = %lpad.i2504
call void @_ZdlPv(i8* %1504) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2506
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2506: ; preds = %if.then.i.i3.i2505, %lpad.i2504
resume { i8*, i32 } %1503
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2507: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2501
invoke void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter* nonnull @v_hfile_printer, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.11, i64 0, i64 0), %"class.std::__cxx11::basic_string"* nonnull dereferenceable(32) %ref.tmp637)
to label %invoke.cont639 unwind label %lpad638
invoke.cont639: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2507
%1505 = load i8*, i8** %_M_p.i.i.i.i.i.i2488, align 8, !tbaa !2
%arraydecay.i.i.i.i2509 = bitcast %union.anon* %1491 to i8*
%cmp.i.i.i2510 = icmp eq i8* %1505, %arraydecay.i.i.i.i2509
br i1 %cmp.i.i.i2510, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2513, label %if.then.i.i2511
if.then.i.i2511: ; preds = %invoke.cont639
call void @_ZdlPv(i8* %1505) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2513
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2513: ; preds = %invoke.cont639, %if.then.i.i2511
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1490) #21
%1506 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool642 = icmp eq i8 %1506, 0
br i1 %tobool642, label %if.end657, label %if.then643
if.then643: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2513
%1507 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp644 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1507) #21
%1508 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp645 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1508) #21
call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* nonnull sret align 8 %ref.tmp645, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), %"class.std::__cxx11::basic_string"* dereferenceable(32) getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22))
%_M_string_length.i.i.i.i2515 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp645, i64 0, i32 1
%1509 = load i64, i64* %_M_string_length.i.i.i.i2515, align 8, !tbaa !28, !noalias !222
%sub3.i.i.i2516 = sub i64 4611686018427387903, %1509
%cmp.i.i.i2517 = icmp ult i64 %sub3.i.i.i2516, 11
br i1 %cmp.i.i.i2517, label %if.then.i.i.i2518, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2523
if.then.i.i.i2518: ; preds = %if.then643
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc2532 unwind label %lpad646
.noexc2532: ; preds = %if.then.i.i.i2518
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2523: ; preds = %if.then643
%call2.i.i25192533 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp645, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.52, i64 0, i64 0), i64 11)
to label %call2.i.i2519.noexc unwind label %lpad646
call2.i.i2519.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2523
%1510 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp644, i64 0, i32 2
%1511 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp644 to %union.anon**
store %union.anon* %1510, %union.anon** %1511, align 8, !tbaa !33, !alias.scope !222
%_M_p.i.i34.i.i2520 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i25192533, i64 0, i32 0, i32 0
%1512 = load i8*, i8** %_M_p.i.i34.i.i2520, align 8, !tbaa !2
%1513 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i25192533, i64 0, i32 2
%arraydecay.i.i.i.i2521 = bitcast %union.anon* %1513 to i8*
%cmp.i.i2.i2522 = icmp eq i8* %1512, %arraydecay.i.i.i.i2521
br i1 %cmp.i.i2.i2522, label %if.then.i.i2525, label %if.else.i.i2529
if.then.i.i2525: ; preds = %call2.i.i2519.noexc
%arraydecay.i.i.i2524 = bitcast %union.anon* %1510 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i2524, i8* nonnull align 1 dereferenceable(16) %1512, i64 16, i1 false) #21
br label %invoke.cont647
if.else.i.i2529: ; preds = %call2.i.i2519.noexc
%_M_p.i32.i.i2526 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp644, i64 0, i32 0, i32 0
store i8* %1512, i8** %_M_p.i32.i.i2526, align 8, !tbaa !2, !alias.scope !222
%_M_allocated_capacity.i.i2527 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i25192533, i64 0, i32 2, i32 0
%1514 = load i64, i64* %_M_allocated_capacity.i.i2527, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i2528 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp644, i64 0, i32 2, i32 0
store i64 %1514, i64* %_M_allocated_capacity.i.i.i2528, align 8, !tbaa !25, !alias.scope !222
br label %invoke.cont647
invoke.cont647: ; preds = %if.else.i.i2529, %if.then.i.i2525
%_M_string_length.i31.i.i2530 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i25192533, i64 0, i32 1
%1515 = load i64, i64* %_M_string_length.i31.i.i2530, align 8, !tbaa !28
%_M_string_length.i.i.i2531 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp644, i64 0, i32 1
store i64 %1515, i64* %_M_string_length.i.i.i2531, align 8, !tbaa !28, !alias.scope !222
%1516 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i25192533 to %union.anon**
store %union.anon* %1513, %union.anon** %1516, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i2530, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i2521, align 1, !tbaa !25
%_M_p.i.i.i2535 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp644, i64 0, i32 0, i32 0
%1517 = load i8*, i8** %_M_p.i.i.i2535, align 8, !tbaa !2
%1518 = load i64, i64* %_M_string_length.i.i.i2531, align 8, !tbaa !28
%call2.i25372538 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* %1517, i64 %1518)
to label %invoke.cont649 unwind label %lpad648
invoke.cont649: ; preds = %invoke.cont647
%call.i25432544 = invoke dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call2.i25372538)
to label %invoke.cont651 unwind label %lpad648
invoke.cont651: ; preds = %invoke.cont649
%1519 = load i8*, i8** %_M_p.i.i.i2535, align 8, !tbaa !2
%arraydecay.i.i.i.i2547 = bitcast %union.anon* %1510 to i8*
%cmp.i.i.i2548 = icmp eq i8* %1519, %arraydecay.i.i.i.i2547
br i1 %cmp.i.i.i2548, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2551, label %if.then.i.i2549
if.then.i.i2549: ; preds = %invoke.cont651
call void @_ZdlPv(i8* %1519) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2551
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2551: ; preds = %invoke.cont651, %if.then.i.i2549
%_M_p.i.i.i.i2552 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp645, i64 0, i32 0, i32 0
%1520 = load i8*, i8** %_M_p.i.i.i.i2552, align 8, !tbaa !2
%1521 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp645, i64 0, i32 2
%arraydecay.i.i.i.i2553 = bitcast %union.anon* %1521 to i8*
%cmp.i.i.i2554 = icmp eq i8* %1520, %arraydecay.i.i.i.i2553
br i1 %cmp.i.i.i2554, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2557, label %if.then.i.i2555
if.then.i.i2555: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2551
call void @_ZdlPv(i8* %1520) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2557
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2557: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2551, %if.then.i.i2555
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1508) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1507) #21
br label %if.end657
lpad638: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2507
%1522 = landingpad { i8*, i32 }
cleanup
%1523 = extractvalue { i8*, i32 } %1522, 0
%1524 = extractvalue { i8*, i32 } %1522, 1
%1525 = load i8*, i8** %_M_p.i.i.i.i.i.i2488, align 8, !tbaa !2
%arraydecay.i.i.i.i2559 = bitcast %union.anon* %1491 to i8*
%cmp.i.i.i2560 = icmp eq i8* %1525, %arraydecay.i.i.i.i2559
br i1 %cmp.i.i.i2560, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2563, label %if.then.i.i2561
if.then.i.i2561: ; preds = %lpad638
call void @_ZdlPv(i8* %1525) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2563
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2563: ; preds = %lpad638, %if.then.i.i2561
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1490) #21
br label %ehcleanup675
lpad646: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i2523, %if.then.i.i.i2518
%1526 = landingpad { i8*, i32 }
cleanup
%1527 = extractvalue { i8*, i32 } %1526, 0
%1528 = extractvalue { i8*, i32 } %1526, 1
br label %ehcleanup654
lpad648: ; preds = %invoke.cont649, %invoke.cont647
%1529 = landingpad { i8*, i32 }
cleanup
%1530 = extractvalue { i8*, i32 } %1529, 0
%1531 = extractvalue { i8*, i32 } %1529, 1
%1532 = load i8*, i8** %_M_p.i.i.i2535, align 8, !tbaa !2
%arraydecay.i.i.i.i2565 = bitcast %union.anon* %1510 to i8*
%cmp.i.i.i2566 = icmp eq i8* %1532, %arraydecay.i.i.i.i2565
br i1 %cmp.i.i.i2566, label %ehcleanup654, label %if.then.i.i2567
if.then.i.i2567: ; preds = %lpad648
call void @_ZdlPv(i8* %1532) #21
br label %ehcleanup654
ehcleanup654: ; preds = %if.then.i.i2567, %lpad648, %lpad646
%exn.slot.14 = phi i8* [ %1527, %lpad646 ], [ %1530, %lpad648 ], [ %1530, %if.then.i.i2567 ]
%ehselector.slot.14 = phi i32 [ %1528, %lpad646 ], [ %1531, %lpad648 ], [ %1531, %if.then.i.i2567 ]
%_M_p.i.i.i.i2570 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp645, i64 0, i32 0, i32 0
%1533 = load i8*, i8** %_M_p.i.i.i.i2570, align 8, !tbaa !2
%1534 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp645, i64 0, i32 2
%arraydecay.i.i.i.i2571 = bitcast %union.anon* %1534 to i8*
%cmp.i.i.i2572 = icmp eq i8* %1533, %arraydecay.i.i.i.i2571
br i1 %cmp.i.i.i2572, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2575, label %if.then.i.i2573
if.then.i.i2573: ; preds = %ehcleanup654
call void @_ZdlPv(i8* %1533) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2575
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2575: ; preds = %ehcleanup654, %if.then.i.i2573
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1508) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1507) #21
br label %ehcleanup675
if.end657: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2513, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2557
%vtable.i2576 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)**, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*** %679, align 8, !tbaa !19
%vfn.i2577 = getelementptr inbounds void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vtable.i2576, i64 9
%1535 = load void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)*, void (%"class.kc::impl_abstract_phylum"*, %"class.kc::printer_functor_class"*, %"class.kc::uview_class"*)** %vfn.i2577, align 8
call void %1535(%"class.kc::impl_abstract_phylum"* %678, %"class.kc::printer_functor_class"* nonnull dereferenceable(8) getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 0), %"class.kc::uview_class"* nonnull dereferenceable(4) getelementptr inbounds (%"struct.kc::view_gen_yxx_union_h_class", %"struct.kc::view_gen_yxx_union_h_class"* @_ZN2kc20view_gen_yxx_union_hE, i64 0, i32 0))
%1536 = load %struct._IO_FILE*, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%tobool.i2578 = icmp eq %struct._IO_FILE* %1536, null
br i1 %tobool.i2578, label %_ZN14kc_filePrinter6fcloseEv.exit2583.thread, label %_ZN14kc_filePrinter6fcloseEv.exit2583
_ZN14kc_filePrinter6fcloseEv.exit2583.thread: ; preds = %if.end657
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
br label %if.end664
_ZN14kc_filePrinter6fcloseEv.exit2583: ; preds = %if.end657
%call.i2579 = call i32 @fclose(%struct._IO_FILE* nonnull %1536)
store %struct._IO_FILE* null, %struct._IO_FILE** getelementptr inbounds (%class.kc_filePrinter, %class.kc_filePrinter* @v_hfile_printer, i64 0, i32 1), align 8, !tbaa !12
%cmp659 = icmp eq i32 %call.i2579, -1
br i1 %cmp659, label %if.then660, label %if.end664
if.then660: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2583
%call661 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%1537 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call661 to %"class.kc::impl_fileline"*
%call662 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([43 x i8], [43 x i8]* @.str.53, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0))
%call663 = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %1537, %"class.kc::impl_problem"* %call662)
%1538 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call663, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1538)
br label %if.end664
if.end664: ; preds = %_ZN14kc_filePrinter6fcloseEv.exit2583.thread, %if.then660, %_ZN14kc_filePrinter6fcloseEv.exit2583
%1539 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp665 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1539) #21
%1540 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp665, i64 0, i32 2
%1541 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp665 to %union.anon**
store %union.anon* %1540, %union.anon** %1541, align 8, !tbaa !33, !alias.scope !225
%1542 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 0, i32 0), align 8, !tbaa !2, !noalias !225
%1543 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 22, i32 1), align 8, !tbaa !28, !noalias !225
%1544 = bitcast i64* %__dnew.i.i.i.i.i2584 to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1544) #21, !noalias !225
store i64 %1543, i64* %__dnew.i.i.i.i.i2584, align 8, !tbaa !54, !noalias !225
%cmp3.i.i.i.i.i2585 = icmp ugt i64 %1543, 15
br i1 %cmp3.i.i.i.i.i2585, label %if.then4.i.i.i.i.i2590, label %if.end.if.end6_crit_edge.i.i.i.i.i2586
if.end.if.end6_crit_edge.i.i.i.i.i2586: ; preds = %if.end664
%1545 = bitcast %union.anon* %1540 to i8*
br label %if.end6.i.i.i.i.i2592
if.then4.i.i.i.i.i2590: ; preds = %if.end664
%call5.i.i.i14.i.i2587 = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp665, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i2584, i64 0)
%_M_p.i18.i.i.i.i.i2588 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp665, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i2587, i8** %_M_p.i18.i.i.i.i.i2588, align 8, !tbaa !2, !alias.scope !225
%1546 = load i64, i64* %__dnew.i.i.i.i.i2584, align 8, !tbaa !54, !noalias !225
%_M_allocated_capacity.i.i.i.i.i.i2589 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp665, i64 0, i32 2, i32 0
store i64 %1546, i64* %_M_allocated_capacity.i.i.i.i.i.i2589, align 8, !tbaa !25, !alias.scope !225
br label %if.end6.i.i.i.i.i2592
if.end6.i.i.i.i.i2592: ; preds = %if.then4.i.i.i.i.i2590, %if.end.if.end6_crit_edge.i.i.i.i.i2586
%1547 = phi i8* [ %1545, %if.end.if.end6_crit_edge.i.i.i.i.i2586 ], [ %call5.i.i.i14.i.i2587, %if.then4.i.i.i.i.i2590 ]
%_M_p.i.i.i.i.i.i2591 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp665, i64 0, i32 0, i32 0
switch i64 %1543, label %if.end.i.i.i.i.i.i.i.i2594 [
i64 1, label %if.then.i.i.i.i.i.i.i2593
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2600
]
if.then.i.i.i.i.i.i.i2593: ; preds = %if.end6.i.i.i.i.i2592
%1548 = load i8, i8* %1542, align 1, !tbaa !25
store i8 %1548, i8* %1547, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2600
if.end.i.i.i.i.i.i.i.i2594: ; preds = %if.end6.i.i.i.i.i2592
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %1547, i8* align 1 %1542, i64 %1543, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2600
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2600: ; preds = %if.end.i.i.i.i.i.i.i.i2594, %if.then.i.i.i.i.i.i.i2593, %if.end6.i.i.i.i.i2592
%1549 = load i64, i64* %__dnew.i.i.i.i.i2584, align 8, !tbaa !54, !noalias !225
%_M_string_length.i.i.i.i.i.i.i2595 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp665, i64 0, i32 1
store i64 %1549, i64* %_M_string_length.i.i.i.i.i.i.i2595, align 8, !tbaa !28, !alias.scope !225
%1550 = load i8*, i8** %_M_p.i.i.i.i.i.i2591, align 8, !tbaa !2, !alias.scope !225
%arrayidx.i.i.i.i.i.i2596 = getelementptr inbounds i8, i8* %1550, i64 %1549
store i8 0, i8* %arrayidx.i.i.i.i.i.i2596, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1544) #21, !noalias !225
%1551 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i2595, align 8, !tbaa !28, !alias.scope !225
%sub3.i.i.i2598 = sub i64 4611686018427387903, %1551
%cmp.i.i.i2599 = icmp ult i64 %sub3.i.i.i2598, 11
br i1 %cmp.i.i.i2599, label %if.then.i.i.i2601, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2604
if.then.i.i.i2601: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2600
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i2602 unwind label %lpad.i2607
.noexc.i2602: ; preds = %if.then.i.i.i2601
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2604: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i2600
%call2.i2.i2603 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp665, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.52, i64 0, i64 0), i64 11)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2610 unwind label %lpad.i2607
lpad.i2607: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2604, %if.then.i.i.i2601
%1552 = landingpad { i8*, i32 }
cleanup
%1553 = load i8*, i8** %_M_p.i.i.i.i.i.i2591, align 8, !tbaa !2, !alias.scope !225
%arraydecay.i.i.i.i.i2605 = bitcast %union.anon* %1540 to i8*
%cmp.i.i.i.i2606 = icmp eq i8* %1553, %arraydecay.i.i.i.i.i2605
br i1 %cmp.i.i.i.i2606, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2609, label %if.then.i.i3.i2608
if.then.i.i3.i2608: ; preds = %lpad.i2607
call void @_ZdlPv(i8* %1553) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2609
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i2609: ; preds = %if.then.i.i3.i2608, %lpad.i2607
resume { i8*, i32 } %1552
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2610: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i2604
%ref.tmp665.idx.val = load i8*, i8** %_M_p.i.i.i.i.i.i2591, align 8, !tbaa !2
invoke fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.10, i64 0, i64 0), i8* %ref.tmp665.idx.val)
to label %invoke.cont667 unwind label %lpad666
invoke.cont667: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2610
%1554 = load i8*, i8** %_M_p.i.i.i.i.i.i2591, align 8, !tbaa !2
%arraydecay.i.i.i.i2612 = bitcast %union.anon* %1540 to i8*
%cmp.i.i.i2613 = icmp eq i8* %1554, %arraydecay.i.i.i.i2612
br i1 %cmp.i.i.i2613, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2616, label %if.then.i.i2614
if.then.i.i2614: ; preds = %invoke.cont667
call void @_ZdlPv(i8* %1554) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2616
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2616: ; preds = %invoke.cont667, %if.then.i.i2614
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1539) #21
br label %if.end670
lpad666: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit2610
%1555 = landingpad { i8*, i32 }
cleanup
%1556 = extractvalue { i8*, i32 } %1555, 0
%1557 = extractvalue { i8*, i32 } %1555, 1
%1558 = load i8*, i8** %_M_p.i.i.i.i.i.i2591, align 8, !tbaa !2
%arraydecay.i.i.i.i2618 = bitcast %union.anon* %1540 to i8*
%cmp.i.i.i2619 = icmp eq i8* %1558, %arraydecay.i.i.i.i2618
br i1 %cmp.i.i.i2619, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2622, label %if.then.i.i2620
if.then.i.i2620: ; preds = %lpad666
call void @_ZdlPv(i8* %1558) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2622
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2622: ; preds = %lpad666, %if.then.i.i2620
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1539) #21
br label %ehcleanup675
if.end670: ; preds = %if.end634, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2616
%1559 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool671 = icmp eq i8 %1559, 0
br i1 %tobool671, label %if.end674, label %if.then672
if.then672: ; preds = %if.end670
%call1.i2624 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([10 x i8], [10 x i8]* @.str.7, i64 0, i64 0), i64 9)
br label %if.end674
if.end674: ; preds = %if.end670, %if.then672
call void @_ZN2kc5leaveEi(i32 0)
unreachable
ehcleanup675: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2622, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2575, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2563, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2480, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2439, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2427, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2357, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2310, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2298, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2149, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2143, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1999, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1987, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1975, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1839, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1833, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1687, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1675, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1663, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1527, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1521, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1381, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1369, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1357, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1351, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1345, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1025, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1013, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1001
%exn.slot.15 = phi i8* [ %1556, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2622 ], [ %exn.slot.14, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2575 ], [ %1523, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2563 ], [ %1486, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2480 ], [ %exn.slot.13, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2439 ], [ %1451, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2427 ], [ %1413, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2357 ], [ %exn.slot.12, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2310 ], [ %1380, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2298 ], [ %1284, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2149 ], [ %exn.slot.11, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2143 ], [ %exn.slot.10, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1999 ], [ %exn.slot.9, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1987 ], [ %1184, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1975 ], [ %1118, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1839 ], [ %exn.slot.8, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1833 ], [ %exn.slot.7, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1687 ], [ %exn.slot.6, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1675 ], [ %1017, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1663 ], [ %952, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1527 ], [ %exn.slot.5, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1521 ], [ %exn.slot.4, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1381 ], [ %exn.slot.3, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1369 ], [ %854, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1357 ], [ %850, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1351 ], [ %exn.slot.2, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1345 ], [ %exn.slot.1, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1025 ], [ %exn.slot.0, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1013 ], [ %658, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1001 ]
%ehselector.slot.15 = phi i32 [ %1557, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2622 ], [ %ehselector.slot.14, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2575 ], [ %1524, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2563 ], [ %1487, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2480 ], [ %ehselector.slot.13, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2439 ], [ %1452, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2427 ], [ %1414, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2357 ], [ %ehselector.slot.12, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2310 ], [ %1381, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2298 ], [ %1285, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2149 ], [ %ehselector.slot.11, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit2143 ], [ %ehselector.slot.10, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1999 ], [ %ehselector.slot.9, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1987 ], [ %1185, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1975 ], [ %1119, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1839 ], [ %ehselector.slot.8, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1833 ], [ %ehselector.slot.7, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1687 ], [ %ehselector.slot.6, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1675 ], [ %1018, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1663 ], [ %953, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1527 ], [ %ehselector.slot.5, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1521 ], [ %ehselector.slot.4, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1381 ], [ %ehselector.slot.3, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1369 ], [ %855, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1357 ], [ %851, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1351 ], [ %ehselector.slot.2, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1345 ], [ %ehselector.slot.1, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1025 ], [ %ehselector.slot.0, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1013 ], [ %659, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit1001 ]
%lpad.val = insertvalue { i8*, i32 } undef, i8* %exn.slot.15, 0
%lpad.val676 = insertvalue { i8*, i32 } %lpad.val, i32 %ehselector.slot.15, 1
resume { i8*, i32 } %lpad.val676
}
declare dso_local %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8*, i32) local_unnamed_addr #0
; Function Attrs: norecurse uwtable
define internal fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL16make_pg_filenameEPKc(i8* nocapture readonly %s) unnamed_addr #7 {
entry:
%call = tail call i64 @strlen(i8* nonnull dereferenceable(1) %s) #25
%add = add i64 %call, 3
%call1 = tail call noalias nonnull i8* @_Znam(i64 %add) #26
%call2 = tail call i8* @strcpy(i8* nonnull %call1, i8* nonnull dereferenceable(1) %s) #21
%call313 = tail call i8* @strchr(i8* nonnull dereferenceable(1) %call1, i32 92) #25
%tobool14 = icmp eq i8* %call313, null
br i1 %tobool14, label %for.end, label %for.body
for.body: ; preds = %entry, %for.body
%call315 = phi i8* [ %call3, %for.body ], [ %call313, %entry ]
store i8 47, i8* %call315, align 1, !tbaa !25
%call3 = tail call i8* @strchr(i8* nonnull dereferenceable(1) %call315, i32 92) #25
%tobool = icmp eq i8* %call3, null
br i1 %tobool, label %for.end, label %for.body
for.end: ; preds = %for.body, %entry
%call4 = tail call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* nonnull %call1, i32 -1)
tail call void @_ZdaPv(i8* nonnull %call1) #27
ret %"class.kc::impl_casestring__Str"* %call4
}
; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #8
; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #8
declare dso_local void @_ZN2kc17f_collect_membersEPNS_19impl_fndeclarationsE(%"class.kc::impl_fndeclarations"*) local_unnamed_addr #0
declare dso_local void @_ZN2kc20prepare_base_classesEPNS_27impl_baseclass_declarationsE(%"class.kc::impl_baseclass_declarations"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_unparseviewsinfo"* @_ZN2kc33f_unparseviewsinfo_of_alternativeEPNS_16impl_alternativeEPNS_14impl_viewnamesE(%"class.kc::impl_alternative"*, %"class.kc::impl_viewnames"*) local_unnamed_addr #0
declare dso_local void @_ZN2kc22check_unparse_patternsEPNS_21impl_unparsedeclsinfoE(%"class.kc::impl_unparsedeclsinfo"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_rewriteviewsinfo"* @_ZN2kc33f_rewriteviewsinfo_of_alternativeEPNS_16impl_alternativeEPNS_14impl_viewnamesE(%"class.kc::impl_alternative"*, %"class.kc::impl_viewnames"*) local_unnamed_addr #0
declare dso_local void @_ZN2kc22check_rewrite_patternsEPNS_21impl_rewriterulesinfoE(%"class.kc::impl_rewriterulesinfo"*) local_unnamed_addr #0
declare dso_local void @_ZN2kc15collect_stringsEv() local_unnamed_addr #0
declare dso_local %"class.kc::impl_phylumdeclarationsroot_PhylumDeclarations"* @_ZN2kc18PhylumDeclarationsEPNS_23impl_phylumdeclarationsE(%"class.kc::impl_phylumdeclarations"*) local_unnamed_addr #0
declare dso_local i32 @_ZNK2kc18impl_abstract_list6lengthEv(%"class.kc::impl_abstract_list"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_argsnumbers"* @_ZN2kc15ConsargsnumbersEPNS_17impl_integer__IntEPNS_16impl_argsnumbersE(%"class.kc::impl_integer__Int"*, %"class.kc::impl_argsnumbers"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_integer__Int"* @_ZN2kc9mkintegerEi(i32) local_unnamed_addr #0
declare dso_local void @_ZN14kc_filePrinter4initEPKcS1_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%class.kc_filePrinter*, i8*, i8*, %"class.std::__cxx11::basic_string"* dereferenceable(32)) local_unnamed_addr #0
declare dso_local i32 @__gxx_personality_v0(...)
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(%"class.std::__cxx11::basic_string"* noalias sret align 8 %agg.result, i8* %__lhs, %"class.std::__cxx11::basic_string"* dereferenceable(32) %__rhs) local_unnamed_addr #9 comdat personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%call.i = tail call i64 @strlen(i8* nonnull dereferenceable(1) %__lhs) #21
%0 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %agg.result, i64 0, i32 2
%1 = bitcast %"class.std::__cxx11::basic_string"* %agg.result to %union.anon**
store %union.anon* %0, %union.anon** %1, align 8, !tbaa !33
%_M_string_length.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %agg.result, i64 0, i32 1
store i64 0, i64* %_M_string_length.i.i.i, align 8, !tbaa !28
%.cast.i = bitcast %union.anon* %0 to i8*
store i8 0, i8* %.cast.i, align 8, !tbaa !25
%_M_string_length.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__rhs, i64 0, i32 1
%2 = load i64, i64* %_M_string_length.i, align 8, !tbaa !28
%add = add i64 %2, %call.i
invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7reserveEm(%"class.std::__cxx11::basic_string"* %agg.result, i64 %add)
to label %invoke.cont unwind label %lpad
invoke.cont: ; preds = %entry
%3 = load i64, i64* %_M_string_length.i.i.i, align 8, !tbaa !28
%sub3.i.i = sub i64 4611686018427387903, %3
%cmp.i.i = icmp ult i64 %sub3.i.i, %call.i
br i1 %cmp.i.i, label %if.then.i.i14, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i
if.then.i.i14: ; preds = %invoke.cont
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc unwind label %lpad
.noexc: ; preds = %if.then.i.i14
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i: ; preds = %invoke.cont
%call.i1516 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %agg.result, i8* %__lhs, i64 %call.i)
to label %invoke.cont2 unwind label %lpad
invoke.cont2: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i
%_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__rhs, i64 0, i32 0, i32 0
%4 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !2
%5 = load i64, i64* %_M_string_length.i, align 8, !tbaa !28
%call3.i12 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %agg.result, i8* %4, i64 %5)
to label %nrvo.skipdtor unwind label %lpad
lpad: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i, %if.then.i.i14, %invoke.cont2, %entry
%6 = landingpad { i8*, i32 }
cleanup
%_M_p.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %agg.result, i64 0, i32 0, i32 0
%7 = load i8*, i8** %_M_p.i.i.i.i, align 8, !tbaa !2
%cmp.i.i.i = icmp eq i8* %7, %.cast.i
br i1 %cmp.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i
if.then.i.i: ; preds = %lpad
tail call void @_ZdlPv(i8* %7) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %lpad, %if.then.i.i
resume { i8*, i32 } %6
nrvo.skipdtor: ; preds = %invoke.cont2
ret void
}
declare dso_local %"class.kc::impl_includefile_IncludeFile"* @_ZN2kc11IncludeFileEPNS_20impl_casestring__StrE(%"class.kc::impl_casestring__Str"*) local_unnamed_addr #0
declare dso_local void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"*, %"class.kc::impl_problem"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv() local_unnamed_addr #0
declare dso_local %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8*, i8*) local_unnamed_addr #0
; Function Attrs: norecurse uwtable
define internal fastcc void @_ZN2kcL26compare_and_delete_or_moveEPKcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i8* %tmp_filename, i8* %filenamestring.0.0.0.val) unnamed_addr #7 personality i32 (...)* @__gxx_personality_v0 {
entry:
%__c.addr.i = alloca i8, align 1
%buf1.i = alloca [8192 x i8], align 16
%buf2.i = alloca [8192 x i8], align 16
%stbuf1.i = alloca %struct.stat, align 8
%stbuf2.i = alloca %struct.stat, align 8
%call1 = tail call %struct._IO_FILE* @fopen(i8* %filenamestring.0.0.0.val, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.84, i64 0, i64 0))
%cmp = icmp eq %struct._IO_FILE* %call1, null
br i1 %cmp, label %if.then, label %if.else
if.then: ; preds = %entry
%call.i52 = tail call i32 @rename(i8* %tmp_filename, i8* %filenamestring.0.0.0.val) #21
%cmp.i53 = icmp eq i32 %call.i52, 0
br i1 %cmp.i53, label %if.end35, label %if.then.i57
if.then.i57: ; preds = %if.then
tail call void @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.117, i64 0, i64 0)) #22
%call1.i54 = tail call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%0 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i54 to %"class.kc::impl_fileline"*
%call2.i55 = tail call %"class.kc::impl_problem"* @_ZN2kc9Problem4SEPKcS1_S1_S1_(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.118, i64 0, i64 0), i8* %tmp_filename, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.119, i64 0, i64 0), i8* %filenamestring.0.0.0.val)
%call3.i56 = tail call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %0, %"class.kc::impl_problem"* %call2.i55)
%1 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i56, i64 0, i32 0
tail call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %1)
br label %if.end35
if.else: ; preds = %entry
%call2 = tail call %struct._IO_FILE* @fopen(i8* %tmp_filename, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.84, i64 0, i64 0))
%cmp3 = icmp eq %struct._IO_FILE* %call2, null
br i1 %cmp3, label %if.then4, label %if.else8
if.then4: ; preds = %if.else
tail call void @perror(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.113, i64 0, i64 0)) #22
%call5 = tail call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%2 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call5 to %"class.kc::impl_fileline"*
%call6 = tail call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.114, i64 0, i64 0), i8* %tmp_filename)
%call7 = tail call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %2, %"class.kc::impl_problem"* %call6)
%3 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call7, i64 0, i32 0
tail call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %3)
br label %if.end35
if.else8: ; preds = %if.else
%4 = getelementptr inbounds [8192 x i8], [8192 x i8]* %buf1.i, i64 0, i64 0
call void @llvm.lifetime.start.p0i8(i64 8192, i8* nonnull %4) #21
%5 = getelementptr inbounds [8192 x i8], [8192 x i8]* %buf2.i, i64 0, i64 0
call void @llvm.lifetime.start.p0i8(i64 8192, i8* nonnull %5) #21
%6 = bitcast %struct.stat* %stbuf1.i to i8*
call void @llvm.lifetime.start.p0i8(i64 144, i8* nonnull %6) #21
%7 = bitcast %struct.stat* %stbuf2.i to i8*
call void @llvm.lifetime.start.p0i8(i64 144, i8* nonnull %7) #21
%call.i.i = call i32 @__xstat(i32 1, i8* nonnull %tmp_filename, %struct.stat* nonnull %stbuf1.i) #21
%cmp.i58 = icmp eq i32 %call.i.i, 0
br i1 %cmp.i58, label %if.end.i, label %if.then.i62
if.then.i62: ; preds = %if.else8
call void @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.120, i64 0, i64 0)) #22
%call1.i59 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%8 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i59 to %"class.kc::impl_fileline"*
%call2.i60 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.121, i64 0, i64 0), i8* nonnull %tmp_filename)
%call3.i61 = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %8, %"class.kc::impl_problem"* %call2.i60)
%9 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i61, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %9)
br label %if.end.i
if.end.i: ; preds = %if.then.i62, %if.else8
%call.i58.i = call i32 @__xstat(i32 1, i8* nonnull %filenamestring.0.0.0.val, %struct.stat* nonnull %stbuf2.i) #21
%cmp5.i = icmp eq i32 %call.i58.i, 0
br i1 %cmp5.i, label %if.end10.i, label %if.then6.i
if.then6.i: ; preds = %if.end.i
call void @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.120, i64 0, i64 0)) #22
%call7.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%10 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call7.i to %"class.kc::impl_fileline"*
%call8.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.121, i64 0, i64 0), i8* nonnull %filenamestring.0.0.0.val)
%call9.i = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %10, %"class.kc::impl_problem"* %call8.i)
%11 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call9.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %11)
br label %if.end10.i
if.end10.i: ; preds = %if.then6.i, %if.end.i
%st_size.i = getelementptr inbounds %struct.stat, %struct.stat* %stbuf1.i, i64 0, i32 8
%12 = load i64, i64* %st_size.i, align 8, !tbaa !228
%st_size11.i = getelementptr inbounds %struct.stat, %struct.stat* %stbuf2.i, i64 0, i32 8
%13 = load i64, i64* %st_size11.i, align 8, !tbaa !228
%cmp12.i = icmp eq i64 %12, %13
br i1 %cmp12.i, label %while.cond.i, label %_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit
while.cond.i: ; preds = %if.end10.i, %lor.lhs.false.i
%call15.i = call i64 @fread(i8* nonnull %4, i64 1, i64 8192, %struct._IO_FILE* nonnull %call2)
%call16.i = call i32 @ferror(%struct._IO_FILE* nonnull %call2) #21
%tobool.i = icmp eq i32 %call16.i, 0
br i1 %tobool.i, label %if.end21.i, label %if.then17.i
if.then17.i: ; preds = %while.cond.i
call void @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.120, i64 0, i64 0)) #22
%call18.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%14 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call18.i to %"class.kc::impl_fileline"*
%call19.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.122, i64 0, i64 0), i8* nonnull %tmp_filename)
%call20.i = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %14, %"class.kc::impl_problem"* %call19.i)
%15 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call20.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %15)
br label %if.end21.i
if.end21.i: ; preds = %if.then17.i, %while.cond.i
%call23.i = call i64 @fread(i8* nonnull %5, i64 1, i64 8192, %struct._IO_FILE* nonnull %call1)
%call24.i = call i32 @ferror(%struct._IO_FILE* nonnull %call1) #21
%tobool25.i = icmp eq i32 %call24.i, 0
br i1 %tobool25.i, label %if.end30.i, label %if.then26.i
if.then26.i: ; preds = %if.end21.i
call void @perror(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.120, i64 0, i64 0)) #22
%call27.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%16 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call27.i to %"class.kc::impl_fileline"*
%call28.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.122, i64 0, i64 0), i8* nonnull %filenamestring.0.0.0.val)
%call29.i = call %"class.kc::impl_error_Fatal"* @_ZN2kc5FatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %16, %"class.kc::impl_problem"* %call28.i)
%17 = getelementptr %"class.kc::impl_error_Fatal", %"class.kc::impl_error_Fatal"* %call29.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %17)
br label %if.end30.i
if.end30.i: ; preds = %if.then26.i, %if.end21.i
%18 = or i64 %call23.i, %call15.i
%19 = icmp eq i64 %18, 0
br i1 %19, label %_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit, label %if.else.i
if.else.i: ; preds = %if.end30.i
%cmp34.i = icmp eq i64 %call15.i, %call23.i
br i1 %cmp34.i, label %lor.lhs.false.i, label %_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit
lor.lhs.false.i: ; preds = %if.else.i
%bcmp.i = call i32 @bcmp(i8* nonnull %4, i8* nonnull %5, i64 %call15.i)
%cmp38.i = icmp eq i32 %bcmp.i, 0
br i1 %cmp38.i, label %while.cond.i, label %_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit
_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit: ; preds = %if.end30.i, %if.else.i, %lor.lhs.false.i, %if.end10.i
%retval.0.i = phi i1 [ false, %if.end10.i ], [ true, %if.end30.i ], [ false, %lor.lhs.false.i ], [ false, %if.else.i ]
call void @llvm.lifetime.end.p0i8(i64 144, i8* nonnull %7) #21
call void @llvm.lifetime.end.p0i8(i64 144, i8* nonnull %6) #21
call void @llvm.lifetime.end.p0i8(i64 8192, i8* nonnull %5) #21
call void @llvm.lifetime.end.p0i8(i64 8192, i8* nonnull %4) #21
%call10 = call i32 @fclose(%struct._IO_FILE* nonnull %call2)
%cmp11 = icmp eq i32 %call10, -1
br i1 %cmp11, label %if.then12, label %if.end
if.then12: ; preds = %_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit
call void @perror(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.113, i64 0, i64 0)) #22
%call13 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%20 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call13 to %"class.kc::impl_fileline"*
%call14 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.115, i64 0, i64 0), i8* %tmp_filename)
%call15 = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %20, %"class.kc::impl_problem"* %call14)
%21 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call15, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %21)
br label %if.end
if.end: ; preds = %if.then12, %_ZN2kcL9differentEP8_IO_FILES1_PKcS3_.exit
%call16 = call i32 @fclose(%struct._IO_FILE* nonnull %call1)
%cmp17 = icmp eq i32 %call16, -1
br i1 %cmp17, label %if.then18, label %if.end22
if.then18: ; preds = %if.end
call void @perror(i8* getelementptr inbounds ([45 x i8], [45 x i8]* @.str.113, i64 0, i64 0)) #22
%call19 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%22 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call19 to %"class.kc::impl_fileline"*
%call20 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.115, i64 0, i64 0), i8* %filenamestring.0.0.0.val)
%call21 = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %22, %"class.kc::impl_problem"* %call20)
%23 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call21, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %23)
br label %if.end22
if.end22: ; preds = %if.then18, %if.end
%24 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 16), align 1
%tobool23 = icmp eq i8 %24, 0
%or.cond = and i1 %retval.0.i, %tobool23
br i1 %or.cond, label %if.else25, label %if.then24
if.then24: ; preds = %if.end22
%call.i63 = call i32 @remove(i8* %filenamestring.0.0.0.val) #21
%cmp.i64 = icmp eq i32 %call.i63, 0
br i1 %cmp.i64, label %_ZN2kcL7eremoveEPKc.exit70, label %if.then.i68
if.then.i68: ; preds = %if.then24
call void @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.123, i64 0, i64 0)) #22
%call1.i65 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%25 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i65 to %"class.kc::impl_fileline"*
%call2.i66 = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.124, i64 0, i64 0), i8* %filenamestring.0.0.0.val)
%call3.i67 = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %25, %"class.kc::impl_problem"* %call2.i66)
%26 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i67, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %26)
br label %_ZN2kcL7eremoveEPKc.exit70
_ZN2kcL7eremoveEPKc.exit70: ; preds = %if.then24, %if.then.i68
%call.i71 = call i32 @rename(i8* %tmp_filename, i8* %filenamestring.0.0.0.val) #21
%cmp.i72 = icmp eq i32 %call.i71, 0
br i1 %cmp.i72, label %if.end35, label %if.then.i76
if.then.i76: ; preds = %_ZN2kcL7eremoveEPKc.exit70
call void @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.117, i64 0, i64 0)) #22
%call1.i73 = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%27 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i73 to %"class.kc::impl_fileline"*
%call2.i74 = call %"class.kc::impl_problem"* @_ZN2kc9Problem4SEPKcS1_S1_S1_(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.118, i64 0, i64 0), i8* %tmp_filename, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.119, i64 0, i64 0), i8* %filenamestring.0.0.0.val)
%call3.i75 = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %27, %"class.kc::impl_problem"* %call2.i74)
%28 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i75, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %28)
br label %if.end35
if.else25: ; preds = %if.end22
%29 = load i8, i8* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 3), align 1, !tbaa !16, !range !18
%tobool26 = icmp eq i8 %29, 0
br i1 %tobool26, label %if.end32, label %if.then27
if.then27: ; preds = %if.else25
%call1.i80 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull getelementptr inbounds ([12 x i8], [12 x i8]* @.str.116, i64 0, i64 0), i64 11)
%tobool.i83 = icmp eq i8* %filenamestring.0.0.0.val, null
br i1 %tobool.i83, label %if.then.i84, label %if.else.i87
if.then.i84: ; preds = %if.then27
%vtable.i = load i8*, i8** bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8**), align 8, !tbaa !19
%vbase.offset.ptr.i = getelementptr i8, i8* %vtable.i, i64 -24
%30 = bitcast i8* %vbase.offset.ptr.i to i64*
%vbase.offset.i = load i64, i64* %30, align 8
%add.ptr.i = getelementptr inbounds i8, i8* bitcast (%"class.std::basic_ostream"* @_ZSt4cout to i8*), i64 %vbase.offset.i
%31 = bitcast i8* %add.ptr.i to %"class.std::basic_ios"*
%_M_streambuf_state.i.i.i = getelementptr inbounds i8, i8* %add.ptr.i, i64 32
%32 = bitcast i8* %_M_streambuf_state.i.i.i to i32*
%33 = load i32, i32* %32, align 8, !tbaa !89
%or.i.i.i = or i32 %33, 1
call void @_ZNSt9basic_iosIcSt11char_traitsIcEE5clearESt12_Ios_Iostate(%"class.std::basic_ios"* nonnull %31, i32 %or.i.i.i)
br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
if.else.i87: ; preds = %if.then27
%call.i.i85 = call i64 @strlen(i8* nonnull dereferenceable(1) %filenamestring.0.0.0.val) #21
%call1.i86 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull %filenamestring.0.0.0.val, i64 %call.i.i85)
br label %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %if.then.i84, %if.else.i87
call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %__c.addr.i)
store i8 41, i8* %__c.addr.i, align 1, !tbaa !25
%call.i89 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(%"class.std::basic_ostream"* nonnull dereferenceable(8) @_ZSt4cout, i8* nonnull %__c.addr.i, i64 1)
call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %__c.addr.i)
%call.i91 = call dereferenceable(8) %"class.std::basic_ostream"* @_ZNSo5flushEv(%"class.std::basic_ostream"* nonnull %call.i89)
br label %if.end32
if.end32: ; preds = %if.else25, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit
%call.i = call i32 @remove(i8* %tmp_filename) #21
%cmp.i = icmp eq i32 %call.i, 0
br i1 %cmp.i, label %if.end35, label %if.then.i
if.then.i: ; preds = %if.end32
call void @perror(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.123, i64 0, i64 0)) #22
%call1.i = call %"class.kc::impl_fileline_NoFileLine"* @_ZN2kc10NoFileLineEv()
%34 = bitcast %"class.kc::impl_fileline_NoFileLine"* %call1.i to %"class.kc::impl_fileline"*
%call2.i = call %"class.kc::impl_problem"* @_ZN2kc9Problem2SEPKcS1_(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.124, i64 0, i64 0), i8* %tmp_filename)
%call3.i = call %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"* %34, %"class.kc::impl_problem"* %call2.i)
%35 = getelementptr %"class.kc::impl_error_NonFatal", %"class.kc::impl_error_NonFatal"* %call3.i, i64 0, i32 0
call void @_ZN2kc8v_reportEPNS_10impl_errorE(%"class.kc::impl_error"* %35)
br label %if.end35
if.end35: ; preds = %if.then.i, %if.end32, %if.then.i76, %_ZN2kcL7eremoveEPKc.exit70, %if.then.i57, %if.then, %if.then4
ret void
}
declare dso_local void @_ZN2kc25unparse_string_collectionEv() local_unnamed_addr #0
declare dso_local i8* @_ZN2kc13f_mk_filenameEPNS_20impl_casestring__StrEPKc(%"class.kc::impl_casestring__Str"*, i8*) local_unnamed_addr #0
declare dso_local i8* @_ZN2kc13f_mk_filenameEPNS_20impl_casestring__StrERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(%"class.kc::impl_casestring__Str"*, %"class.std::__cxx11::basic_string"* dereferenceable(32)) local_unnamed_addr #0
; Function Attrs: norecurse uwtable
define internal fastcc %"class.kc::impl_casestring__Str"* @_ZN2kcL17mkfunctionincnameEPKc(i8* nocapture readonly %pattern) unnamed_addr #7 {
entry:
%0 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @pg_filename, align 8, !tbaa !9
%name1 = getelementptr inbounds %"class.kc::impl_casestring__Str", %"class.kc::impl_casestring__Str"* %0, i64 0, i32 1
%1 = load i8*, i8** %name1, align 8, !tbaa !10
%call = tail call i64 @strlen(i8* nonnull dereferenceable(1) %1) #25
%add = add i64 %call, 1
%call2 = tail call noalias nonnull i8* @_Znam(i64 %add) #26
%2 = load i8*, i8** %name1, align 8, !tbaa !10
%call4 = tail call i8* @strcpy(i8* nonnull %call2, i8* nonnull dereferenceable(1) %2) #21
%call5 = tail call i8* @strrchr(i8* nonnull %call2, i32 46) #25
%tobool = icmp eq i8* %call5, null
br i1 %tobool, label %if.end, label %if.then
if.then: ; preds = %entry
store i8 0, i8* %call5, align 1, !tbaa !25
br label %if.end
if.end: ; preds = %entry, %if.then
%call6 = tail call i64 @strlen(i8* nonnull dereferenceable(1) %pattern) #25
%call7 = tail call i64 @strlen(i8* nonnull %call2) #25
%add8 = add i64 %call6, 1
%add9 = add i64 %add8, %call7
%call10 = tail call noalias nonnull i8* @_Znam(i64 %add9) #26
%call11 = tail call i32 (i8*, i8*, ...) @sprintf(i8* nonnull %call10, i8* nonnull dereferenceable(1) %pattern, i8* nonnull %call2) #21
%3 = load i8, i8* %call10, align 1, !tbaa !25
%tobool1239 = icmp eq i8 %3, 0
br i1 %tobool1239, label %for.cond.cleanup, label %for.body
for.cond.cleanup: ; preds = %for.inc, %if.end
%call18 = tail call %"class.kc::impl_casestring__Str"* @_ZN2kc12mkcasestringEPKci(i8* nonnull %call10, i32 -1)
tail call void @_ZdaPv(i8* nonnull %call2) #27
tail call void @_ZdaPv(i8* nonnull %call10) #27
ret %"class.kc::impl_casestring__Str"* %call18
for.body: ; preds = %if.end, %for.inc
%4 = phi i8 [ %5, %for.inc ], [ %3, %if.end ]
%ptr.040 = phi i8* [ %incdec.ptr, %for.inc ], [ %call10, %if.end ]
%conv = sext i8 %4 to i32
%call13 = tail call i32 @isalnum(i32 %conv) #25
%tobool14 = icmp ne i32 %call13, 0
%cmp = icmp eq i8 %4, 95
%or.cond = or i1 %cmp, %tobool14
br i1 %or.cond, label %for.inc, label %if.then16
if.then16: ; preds = %for.body
store i8 95, i8* %ptr.040, align 1, !tbaa !25
br label %for.inc
for.inc: ; preds = %for.body, %if.then16
%incdec.ptr = getelementptr inbounds i8, i8* %ptr.040, i64 1
%5 = load i8, i8* %incdec.ptr, align 1, !tbaa !25
%tobool12 = icmp eq i8 %5, 0
br i1 %tobool12, label %for.cond.cleanup, label %for.body
}
declare dso_local %"class.kc::impl_problem"* @_ZN2kc9Problem4SEPKcS1_S1_S1_(i8*, i8*, i8*, i8*) local_unnamed_addr #0
declare dso_local void @_ZN2kc21kc_no_default_in_withEPKciS1_(i8*, i32, i8*) local_unnamed_addr #0
; Function Attrs: noreturn nounwind
declare dso_local void @exit(i32) local_unnamed_addr #10
declare dso_local i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"*, i64* dereferenceable(8), i64) local_unnamed_addr #0
declare dso_local i8* @__cxa_begin_catch(i8*) local_unnamed_addr
declare dso_local void @__cxa_end_catch() local_unnamed_addr
; Function Attrs: argmemonly nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #8
; Function Attrs: nobuiltin nounwind
declare dso_local void @_ZdlPv(i8*) local_unnamed_addr #11
; Function Attrs: argmemonly nofree nounwind readonly
declare dso_local i64 @strlen(i8* nocapture) local_unnamed_addr #12
; Function Attrs: nounwind
declare dso_local i32 @getopt(i32, i8**, i8*) local_unnamed_addr #1
; Function Attrs: nofree norecurse nounwind uwtable
define internal fastcc void @_ZN2kcL13print_versionEv() unnamed_addr #13 {
entry:
%call = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([265 x i8], [265 x i8]* @.str.86, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @_ZL15kimwitu_version, i64 0, i64 0))
ret void
}
; Function Attrs: nofree norecurse nounwind uwtable
define internal fastcc void @_ZN2kcL10print_helpEv() unnamed_addr #13 {
entry:
%0 = load %"class.kc::impl_casestring__Str"*, %"class.kc::impl_casestring__Str"** @g_progname, align 8, !tbaa !9
%name = getelementptr inbounds %"class.kc::impl_casestring__Str", %"class.kc::impl_casestring__Str"* %0, i64 0, i32 1
%1 = load i8*, i8** %name, align 8, !tbaa !10
%call = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.87, i64 0, i64 0), i8* %1)
%puts = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([551 x i8], [551 x i8]* @str, i64 0, i64 0))
%puts6 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([555 x i8], [555 x i8]* @str.128, i64 0, i64 0))
%puts7 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([404 x i8], [404 x i8]* @str.129, i64 0, i64 0))
%puts8 = tail call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([402 x i8], [402 x i8]* @str.130, i64 0, i64 0))
%call5 = tail call i32 (i8*, ...) @printf(i8* nonnull dereferenceable(1) getelementptr inbounds ([924 x i8], [924 x i8]* @.str.92, i64 0, i64 0))
ret void
}
declare dso_local %"class.kc::impl_error_Warning"* @_ZN2kc7WarningEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"*, %"class.kc::impl_problem"*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_problem"* @_ZN2kc9Problem1SEPKc(i8*) local_unnamed_addr #0
; Function Attrs: nounwind
declare dso_local i8* @getcwd(i8*, i64) local_unnamed_addr #1
; Function Attrs: nounwind
declare dso_local void @free(i8* nocapture) local_unnamed_addr #1
declare dso_local %"class.kc::impl_problem"* @_ZN2kc9Problem3SEPKcS1_S1_(i8*, i8*, i8*) local_unnamed_addr #0
declare dso_local %"class.kc::impl_error_NonFatal"* @_ZN2kc8NonFatalEPNS_13impl_filelineEPNS_12impl_problemE(%"class.kc::impl_fileline"*, %"class.kc::impl_problem"*) local_unnamed_addr #0
; Function Attrs: nofree nounwind readonly
declare dso_local i32 @strcmp(i8* nocapture, i8* nocapture) local_unnamed_addr #14
; Function Attrs: nofree nounwind
declare dso_local noalias %struct._IO_FILE* @fopen(i8* nocapture readonly, i8* nocapture readonly) local_unnamed_addr #5
; Function Attrs: nofree nounwind
declare dso_local i32 @fclose(%struct._IO_FILE* nocapture) local_unnamed_addr #5
; Function Attrs: norecurse uwtable
define internal fastcc noalias %struct._IO_FILE* @_ZN2kcL8openfileEPKcS1_(i8* %file) unnamed_addr #7 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
entry:
%__dnew.i.i.i.i.i = alloca i64, align 8
%ref.tmp = alloca %"class.std::__cxx11::basic_string", align 8
%ref.tmp2 = alloca %"class.std::__cxx11::basic_string", align 8
%call.i = tail call i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(%"class.std::__cxx11::basic_string"* nonnull getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 24), i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.43, i64 0, i64 0)) #21
%cmp.i = icmp eq i32 %call.i, 0
br i1 %cmp.i, label %if.then, label %if.else
if.then: ; preds = %entry
%call1 = tail call %struct._IO_FILE* @fopen(i8* %file, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.84, i64 0, i64 0))
br label %return
if.else: ; preds = %entry
%0 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %0) #21
%1 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp2 to i8*
call void @llvm.lifetime.start.p0i8(i64 32, i8* nonnull %1) #21
%2 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp2, i64 0, i32 2
%3 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp2 to %union.anon**
store %union.anon* %2, %union.anon** %3, align 8, !tbaa !33, !alias.scope !231
%4 = load i8*, i8** getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 24, i32 0, i32 0), align 8, !tbaa !2, !noalias !231
%5 = load i64, i64* getelementptr inbounds (%struct.cmdline_options, %struct.cmdline_options* @g_options, i64 0, i32 24, i32 1), align 8, !tbaa !28, !noalias !231
%6 = bitcast i64* %__dnew.i.i.i.i.i to i8*
call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %6) #21, !noalias !231
store i64 %5, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !54, !noalias !231
%cmp3.i.i.i.i.i = icmp ugt i64 %5, 15
br i1 %cmp3.i.i.i.i.i, label %if.then4.i.i.i.i.i, label %if.end.if.end6_crit_edge.i.i.i.i.i
if.end.if.end6_crit_edge.i.i.i.i.i: ; preds = %if.else
%7 = bitcast %union.anon* %2 to i8*
br label %if.end6.i.i.i.i.i
if.then4.i.i.i.i.i: ; preds = %if.else
%call5.i.i.i14.i.i = call i8* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp2, i64* nonnull dereferenceable(8) %__dnew.i.i.i.i.i, i64 0)
%_M_p.i18.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp2, i64 0, i32 0, i32 0
store i8* %call5.i.i.i14.i.i, i8** %_M_p.i18.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !231
%8 = load i64, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !54, !noalias !231
%_M_allocated_capacity.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp2, i64 0, i32 2, i32 0
store i64 %8, i64* %_M_allocated_capacity.i.i.i.i.i.i, align 8, !tbaa !25, !alias.scope !231
br label %if.end6.i.i.i.i.i
if.end6.i.i.i.i.i: ; preds = %if.then4.i.i.i.i.i, %if.end.if.end6_crit_edge.i.i.i.i.i
%9 = phi i8* [ %7, %if.end.if.end6_crit_edge.i.i.i.i.i ], [ %call5.i.i.i14.i.i, %if.then4.i.i.i.i.i ]
%_M_p.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp2, i64 0, i32 0, i32 0
switch i64 %5, label %if.end.i.i.i.i.i.i.i.i [
i64 1, label %if.then.i.i.i.i.i.i.i
i64 0, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
]
if.then.i.i.i.i.i.i.i: ; preds = %if.end6.i.i.i.i.i
%10 = load i8, i8* %4, align 1, !tbaa !25
store i8 %10, i8* %9, align 1, !tbaa !25
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
if.end.i.i.i.i.i.i.i.i: ; preds = %if.end6.i.i.i.i.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %9, i8* align 1 %4, i64 %5, i1 false) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i: ; preds = %if.end.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i, %if.end6.i.i.i.i.i
%11 = load i64, i64* %__dnew.i.i.i.i.i, align 8, !tbaa !54, !noalias !231
%_M_string_length.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp2, i64 0, i32 1
store i64 %11, i64* %_M_string_length.i.i.i.i.i.i.i, align 8, !tbaa !28, !alias.scope !231
%12 = load i8*, i8** %_M_p.i.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !231
%arrayidx.i.i.i.i.i.i = getelementptr inbounds i8, i8* %12, i64 %11
store i8 0, i8* %arrayidx.i.i.i.i.i.i, align 1, !tbaa !25
call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %6) #21, !noalias !231
%13 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i, align 8, !tbaa !28, !alias.scope !231
%cmp.i.i.i = icmp eq i64 %13, 4611686018427387903
br i1 %cmp.i.i.i, label %if.then.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i
if.then.i.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc.i unwind label %lpad.i
.noexc.i: ; preds = %if.then.i.i.i
unreachable
_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_.exit.i
%call2.i2.i = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp2, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.15, i64 0, i64 0), i64 1)
to label %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit unwind label %lpad.i
lpad.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i, %if.then.i.i.i
%14 = landingpad { i8*, i32 }
cleanup
%15 = load i8*, i8** %_M_p.i.i.i.i.i.i, align 8, !tbaa !2, !alias.scope !231
%arraydecay.i.i.i.i.i = bitcast %union.anon* %2 to i8*
%cmp.i.i.i.i = icmp eq i8* %15, %arraydecay.i.i.i.i.i
br i1 %cmp.i.i.i.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i, label %if.then.i.i3.i
if.then.i.i3.i: ; preds = %lpad.i
call void @_ZdlPv(i8* %15) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i: ; preds = %if.then.i.i3.i, %lpad.i
resume { i8*, i32 } %14
_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i
%call.i.i.i1 = call i64 @strlen(i8* nonnull dereferenceable(1) %file) #21, !noalias !234
%16 = load i64, i64* %_M_string_length.i.i.i.i.i.i.i, align 8, !tbaa !28, !noalias !234
%sub3.i.i.i2 = sub i64 4611686018427387903, %16
%cmp.i.i.i3 = icmp ult i64 %sub3.i.i.i2, %call.i.i.i1
br i1 %cmp.i.i.i3, label %if.then.i.i.i4, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i
if.then.i.i.i4: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
invoke void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.127, i64 0, i64 0)) #23
to label %.noexc unwind label %lpad
.noexc: ; preds = %if.then.i.i.i4
unreachable
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit
%call2.i.i5 = invoke dereferenceable(32) %"class.std::__cxx11::basic_string"* @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(%"class.std::__cxx11::basic_string"* nonnull %ref.tmp2, i8* %file, i64 %call.i.i.i1)
to label %call2.i.i.noexc unwind label %lpad
call2.i.i.noexc: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i
%17 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 2
%18 = bitcast %"class.std::__cxx11::basic_string"* %ref.tmp to %union.anon**
store %union.anon* %17, %union.anon** %18, align 8, !tbaa !33, !alias.scope !234
%_M_p.i.i34.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i5, i64 0, i32 0, i32 0
%19 = load i8*, i8** %_M_p.i.i34.i.i, align 8, !tbaa !2
%20 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i5, i64 0, i32 2
%arraydecay.i.i.i.i = bitcast %union.anon* %20 to i8*
%cmp.i.i2.i = icmp eq i8* %19, %arraydecay.i.i.i.i
br i1 %cmp.i.i2.i, label %if.then.i.i, label %if.else.i.i
if.then.i.i: ; preds = %call2.i.i.noexc
%arraydecay.i.i.i = bitcast %union.anon* %17 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 dereferenceable(16) %arraydecay.i.i.i, i8* nonnull align 1 dereferenceable(16) %19, i64 16, i1 false) #21
br label %invoke.cont
if.else.i.i: ; preds = %call2.i.i.noexc
%_M_p.i32.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 0, i32 0
store i8* %19, i8** %_M_p.i32.i.i, align 8, !tbaa !2, !alias.scope !234
%_M_allocated_capacity.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i5, i64 0, i32 2, i32 0
%21 = load i64, i64* %_M_allocated_capacity.i.i, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 2, i32 0
store i64 %21, i64* %_M_allocated_capacity.i.i.i, align 8, !tbaa !25, !alias.scope !234
%.pre = bitcast %union.anon* %17 to i8*
br label %invoke.cont
invoke.cont: ; preds = %if.else.i.i, %if.then.i.i
%arraydecay.i.i.i.i6.pre-phi = phi i8* [ %.pre, %if.else.i.i ], [ %arraydecay.i.i.i, %if.then.i.i ]
%_M_string_length.i31.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %call2.i.i5, i64 0, i32 1
%22 = load i64, i64* %_M_string_length.i31.i.i, align 8, !tbaa !28
%_M_string_length.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 1
store i64 %22, i64* %_M_string_length.i.i.i, align 8, !tbaa !28, !alias.scope !234
%23 = bitcast %"class.std::__cxx11::basic_string"* %call2.i.i5 to %union.anon**
store %union.anon* %20, %union.anon** %23, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i, align 1, !tbaa !25
%_M_p.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %ref.tmp, i64 0, i32 0, i32 0
%24 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !2
%call6 = call %struct._IO_FILE* @popen(i8* %24, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.84, i64 0, i64 0))
%25 = load i8*, i8** %_M_p.i.i, align 8, !tbaa !2
%cmp.i.i.i7 = icmp eq i8* %25, %arraydecay.i.i.i.i6.pre-phi
br i1 %cmp.i.i.i7, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, label %if.then.i.i8
if.then.i.i8: ; preds = %invoke.cont
call void @_ZdlPv(i8* %25) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %invoke.cont, %if.then.i.i8
%26 = load i8*, i8** %_M_p.i.i.i.i.i.i, align 8, !tbaa !2
%arraydecay.i.i.i.i10 = bitcast %union.anon* %2 to i8*
%cmp.i.i.i11 = icmp eq i8* %26, %arraydecay.i.i.i.i10
br i1 %cmp.i.i.i11, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit13, label %if.then.i.i12
if.then.i.i12: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit
call void @_ZdlPv(i8* %26) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit13
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit13: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit, %if.then.i.i12
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %0) #21
br label %return
lpad: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc.exit.i, %if.then.i.i.i4
%27 = landingpad { i8*, i32 }
cleanup
%28 = load i8*, i8** %_M_p.i.i.i.i.i.i, align 8, !tbaa !2
%arraydecay.i.i.i.i15 = bitcast %union.anon* %2 to i8*
%cmp.i.i.i16 = icmp eq i8* %28, %arraydecay.i.i.i.i15
br i1 %cmp.i.i.i16, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit18, label %if.then.i.i17
if.then.i.i17: ; preds = %lpad
call void @_ZdlPv(i8* %28) #21
br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit18
_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit18: ; preds = %lpad, %if.then.i.i17
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %1) #21
call void @llvm.lifetime.end.p0i8(i64 32, i8* nonnull %0) #21
resume { i8*, i32 } %27
return: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit13, %if.then
%retval.0 = phi %struct._IO_FILE* [ %call1, %if.then ], [ %call6, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit13 ]
ret %struct._IO_FILE* %retval.0
}
; Function Attrs: nofree nounwind readonly
declare dso_local i8* @strrchr(i8*, i32) local_unnamed_addr #14
; Function Attrs: nofree nounwind
declare dso_local i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr #5
; Function Attrs: uwtable
define linkonce_odr dso_local void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_(%"class.std::vector"* %this, %"class.std::__cxx11::basic_string"* %__position.coerce, %"class.std::__cxx11::basic_string"* dereferenceable(32) %__args) local_unnamed_addr #9 comdat align 2 personality i32 (...)* @__gxx_personality_v0 {
entry:
%_M_finish.i20.i = getelementptr inbounds %"class.std::vector", %"class.std::vector"* %this, i64 0, i32 0, i32 0, i32 0, i32 1
%0 = bitcast %"class.std::__cxx11::basic_string"** %_M_finish.i20.i to i64*
%1 = load i64, i64* %0, align 8, !tbaa !34
%2 = bitcast %"class.std::vector"* %this to i64*
%3 = load i64, i64* %2, align 8, !tbaa !37
%sub.ptr.sub.i21.i = sub i64 %1, %3
%sub.ptr.div.i22.i = ashr exact i64 %sub.ptr.sub.i21.i, 5
%cmp.i = icmp eq i64 %sub.ptr.sub.i21.i, 9223372036854775776
%4 = inttoptr i64 %3 to %"class.std::__cxx11::basic_string"*
%5 = inttoptr i64 %1 to %"class.std::__cxx11::basic_string"*
br i1 %cmp.i, label %if.then.i, label %_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.exit
if.then.i: ; preds = %entry
tail call void @_ZSt20__throw_length_errorPKc(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.93, i64 0, i64 0)) #23
unreachable
_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.exit: ; preds = %entry
%6 = ptrtoint %"class.std::__cxx11::basic_string"* %__position.coerce to i64
%cmp.i.i = icmp eq i64 %sub.ptr.sub.i21.i, 0
%.sroa.speculated.i = select i1 %cmp.i.i, i64 1, i64 %sub.ptr.div.i22.i
%add.i = add nsw i64 %.sroa.speculated.i, %sub.ptr.div.i22.i
%cmp7.i = icmp ult i64 %add.i, %sub.ptr.div.i22.i
%cmp9.i = icmp ugt i64 %add.i, 288230376151711743
%or.cond.i = or i1 %cmp7.i, %cmp9.i
%cond.i = select i1 %or.cond.i, i64 288230376151711743, i64 %add.i
%_M_start = getelementptr %"class.std::vector", %"class.std::vector"* %this, i64 0, i32 0, i32 0, i32 0, i32 0
%sub.ptr.sub.i = sub i64 %6, %3
%sub.ptr.div.i = ashr exact i64 %sub.ptr.sub.i, 5
%cmp.i62 = icmp eq i64 %cond.i, 0
br i1 %cmp.i62, label %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit, label %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m.exit.i
_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m.exit.i: ; preds = %_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.exit
%mul.i.i.i = shl nuw nsw i64 %cond.i, 5
%call2.i.i.i = tail call noalias nonnull i8* @_Znwm(i64 %mul.i.i.i) #28
%7 = bitcast i8* %call2.i.i.i to %"class.std::__cxx11::basic_string"*
br label %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit
_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit: ; preds = %_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.exit, %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m.exit.i
%cond.i64 = phi %"class.std::__cxx11::basic_string"* [ %7, %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE8allocateERS6_m.exit.i ], [ null, %_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_M_check_lenEmPKc.exit ]
%add.ptr = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %cond.i64, i64 %sub.ptr.div.i
%8 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %cond.i64, i64 %sub.ptr.div.i, i32 2
%9 = bitcast %"class.std::__cxx11::basic_string"* %add.ptr to %union.anon**
store %union.anon* %8, %union.anon** %9, align 8, !tbaa !33
%_M_p.i.i34.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__args, i64 0, i32 0, i32 0
%10 = load i8*, i8** %_M_p.i.i34.i.i.i, align 8, !tbaa !2
%11 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__args, i64 0, i32 2
%arraydecay.i.i.i.i.i = bitcast %union.anon* %11 to i8*
%cmp.i.i.i.i61 = icmp eq i8* %10, %arraydecay.i.i.i.i.i
br i1 %cmp.i.i.i.i61, label %if.then.i.i.i, label %if.else.i.i.i
if.then.i.i.i: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit
%arraydecay.i.i.i.i = bitcast %union.anon* %8 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 1 dereferenceable(16) %arraydecay.i.i.i.i, i8* nonnull align 1 dereferenceable(16) %10, i64 16, i1 false) #21
br label %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit
if.else.i.i.i: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit
%_M_p.i32.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %add.ptr, i64 0, i32 0, i32 0
store i8* %10, i8** %_M_p.i32.i.i.i, align 8, !tbaa !2
%_M_allocated_capacity.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__args, i64 0, i32 2, i32 0
%12 = load i64, i64* %_M_allocated_capacity.i.i.i, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %cond.i64, i64 %sub.ptr.div.i, i32 2, i32 0
store i64 %12, i64* %_M_allocated_capacity.i.i.i.i, align 8, !tbaa !25
br label %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit
_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit: ; preds = %if.then.i.i.i, %if.else.i.i.i
%_M_string_length.i31.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__args, i64 0, i32 1
%13 = load i64, i64* %_M_string_length.i31.i.i.i, align 8, !tbaa !28
%_M_string_length.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %cond.i64, i64 %sub.ptr.div.i, i32 1
store i64 %13, i64* %_M_string_length.i.i.i.i, align 8, !tbaa !28
%14 = bitcast %"class.std::__cxx11::basic_string"* %__args to %union.anon**
store %union.anon* %11, %union.anon** %14, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i.i, align 1, !tbaa !25
%cmp7.i.i.i.i39 = icmp eq %"class.std::__cxx11::basic_string"* %4, %__position.coerce
br i1 %cmp7.i.i.i.i39, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59, label %for.body.i.i.i.i45
for.body.i.i.i.i45: ; preds = %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57
%__cur.010.i.i.i.i40 = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr2.i.i.i.i55, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57 ], [ %cond.i64, %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit ]
%__first.addr.08.i.i.i.i41 = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr.i.i.i.i54, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57 ], [ %4, %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit ]
%15 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i40, i64 0, i32 2
%16 = bitcast %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i40 to %union.anon**
store %union.anon* %15, %union.anon** %16, align 8, !tbaa !33
%_M_p.i.i34.i.i.i.i.i.i.i.i42 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i41, i64 0, i32 0, i32 0
%17 = load i8*, i8** %_M_p.i.i34.i.i.i.i.i.i.i.i42, align 8, !tbaa !2
%18 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i41, i64 0, i32 2
%arraydecay.i.i.i.i.i.i.i.i.i.i43 = bitcast %union.anon* %18 to i8*
%cmp.i.i.i.i.i.i.i.i.i44 = icmp eq i8* %17, %arraydecay.i.i.i.i.i.i.i.i.i.i43
br i1 %cmp.i.i.i.i.i.i.i.i.i44, label %if.then.i.i.i.i.i.i.i.i47, label %if.else.i.i.i.i.i.i.i.i51
if.then.i.i.i.i.i.i.i.i47: ; preds = %for.body.i.i.i.i45
%arraydecay.i.i.i.i.i.i.i.i.i46 = bitcast %union.anon* %15 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 1 dereferenceable(16) %arraydecay.i.i.i.i.i.i.i.i.i46, i8* nonnull align 1 dereferenceable(16) %17, i64 16, i1 false) #21
br label %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57
if.else.i.i.i.i.i.i.i.i51: ; preds = %for.body.i.i.i.i45
%_M_p.i32.i.i.i.i.i.i.i.i48 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i40, i64 0, i32 0, i32 0
store i8* %17, i8** %_M_p.i32.i.i.i.i.i.i.i.i48, align 8, !tbaa !2
%_M_allocated_capacity.i.i.i.i.i.i.i.i49 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i41, i64 0, i32 2, i32 0
%19 = load i64, i64* %_M_allocated_capacity.i.i.i.i.i.i.i.i49, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i.i.i.i.i.i.i50 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i40, i64 0, i32 2, i32 0
store i64 %19, i64* %_M_allocated_capacity.i.i.i.i.i.i.i.i.i50, align 8, !tbaa !25
br label %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57
_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57: ; preds = %if.else.i.i.i.i.i.i.i.i51, %if.then.i.i.i.i.i.i.i.i47
%_M_string_length.i31.i.i.i.i.i.i.i.i52 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i41, i64 0, i32 1
%20 = load i64, i64* %_M_string_length.i31.i.i.i.i.i.i.i.i52, align 8, !tbaa !28
%_M_string_length.i.i.i.i.i.i.i.i.i53 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i40, i64 0, i32 1
store i64 %20, i64* %_M_string_length.i.i.i.i.i.i.i.i.i53, align 8, !tbaa !28
%21 = bitcast %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i41 to %union.anon**
store %union.anon* %18, %union.anon** %21, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i.i.i.i.i.i.i52, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i.i.i.i.i.i.i43, align 1, !tbaa !25
%incdec.ptr.i.i.i.i54 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i41, i64 1
%incdec.ptr2.i.i.i.i55 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i40, i64 1
%cmp.i.i.i.i56 = icmp eq %"class.std::__cxx11::basic_string"* %incdec.ptr.i.i.i.i54, %__position.coerce
br i1 %cmp.i.i.i.i56, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59, label %for.body.i.i.i.i45
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59: ; preds = %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57, %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit
%__cur.0.lcssa.i.i.i.i58 = phi %"class.std::__cxx11::basic_string"* [ %cond.i64, %_ZNSt16allocator_traitsISaINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE9constructIS5_JS5_EEEvRS6_PT_DpOT0_.exit ], [ %incdec.ptr2.i.i.i.i55, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i57 ]
%incdec.ptr = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.0.lcssa.i.i.i.i58, i64 1
%cmp7.i.i.i.i = icmp eq %"class.std::__cxx11::basic_string"* %5, %__position.coerce
br i1 %cmp7.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit, label %for.body.i.i.i.i
for.body.i.i.i.i: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i
%__cur.010.i.i.i.i = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr2.i.i.i.i, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i ], [ %incdec.ptr, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59 ]
%__first.addr.08.i.i.i.i = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr.i.i.i.i, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i ], [ %__position.coerce, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59 ]
%22 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i, i64 0, i32 2
%23 = bitcast %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i to %union.anon**
store %union.anon* %22, %union.anon** %23, align 8, !tbaa !33
%_M_p.i.i34.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i, i64 0, i32 0, i32 0
%24 = load i8*, i8** %_M_p.i.i34.i.i.i.i.i.i.i.i, align 8, !tbaa !2
%25 = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i, i64 0, i32 2
%arraydecay.i.i.i.i.i.i.i.i.i.i = bitcast %union.anon* %25 to i8*
%cmp.i.i.i.i.i.i.i.i.i = icmp eq i8* %24, %arraydecay.i.i.i.i.i.i.i.i.i.i
br i1 %cmp.i.i.i.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i.i.i
if.then.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i
%arraydecay.i.i.i.i.i.i.i.i.i = bitcast %union.anon* %22 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 1 dereferenceable(16) %arraydecay.i.i.i.i.i.i.i.i.i, i8* nonnull align 1 dereferenceable(16) %24, i64 16, i1 false) #21
br label %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i
if.else.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i
%_M_p.i32.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i, i64 0, i32 0, i32 0
store i8* %24, i8** %_M_p.i32.i.i.i.i.i.i.i.i, align 8, !tbaa !2
%_M_allocated_capacity.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i, i64 0, i32 2, i32 0
%26 = load i64, i64* %_M_allocated_capacity.i.i.i.i.i.i.i.i, align 8, !tbaa !25
%_M_allocated_capacity.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i, i64 0, i32 2, i32 0
store i64 %26, i64* %_M_allocated_capacity.i.i.i.i.i.i.i.i.i, align 8, !tbaa !25
br label %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i
_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i: ; preds = %if.else.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i
%_M_string_length.i31.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i, i64 0, i32 1
%27 = load i64, i64* %_M_string_length.i31.i.i.i.i.i.i.i.i, align 8, !tbaa !28
%_M_string_length.i.i.i.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i, i64 0, i32 1
store i64 %27, i64* %_M_string_length.i.i.i.i.i.i.i.i.i, align 8, !tbaa !28
%28 = bitcast %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i to %union.anon**
store %union.anon* %25, %union.anon** %28, align 8, !tbaa !2
store i64 0, i64* %_M_string_length.i31.i.i.i.i.i.i.i.i, align 8, !tbaa !28
store i8 0, i8* %arraydecay.i.i.i.i.i.i.i.i.i.i, align 1, !tbaa !25
%incdec.ptr.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__first.addr.08.i.i.i.i, i64 1
%incdec.ptr2.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string"* %__cur.010.i.i.i.i, i64 1
%cmp.i.i.i.i = icmp eq %"class.std::__cxx11::basic_string"* %incdec.ptr.i.i.i.i, %5
br i1 %cmp.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit, label %for.body.i.i.i.i
_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit: ; preds = %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59
%__cur.0.lcssa.i.i.i.i = phi %"class.std::__cxx11::basic_string"* [ %incdec.ptr, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit59 ], [ %incdec.ptr2.i.i.i.i, %_ZSt19__relocate_object_aINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_SaIS5_EEvPT_PT0_RT1_.exit.i.i.i.i ]
%_M_end_of_storage = getelementptr inbounds %"class.std::vector", %"class.std::vector"* %this, i64 0, i32 0, i32 0, i32 0, i32 2
%tobool.i = icmp eq i64 %3, 0
br i1 %tobool.i, label %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit, label %if.then.i38
if.then.i38: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit
%29 = inttoptr i64 %3 to i8*
tail call void @_ZdlPv(i8* nonnull %29) #21
View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment