Skip to content

Instantly share code, notes, and snippets.

@nikic nikic/diff Secret
Created Apr 23, 2020

Embed
What would you like to do?
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 ]